如何在谷歌地图android中显示我的所有标记?

时间:2011-08-29 00:24:18

标签: android google-maps zoom

我有一系列纬度和经度点。我用它们在地图上制作标记。我该怎么做才能同时在地图上显示所有标记。例如,如果标记在一个城市内,我会放大它只显示城市,而不是整个州,国家等...

由于

2 个答案:

答案 0 :(得分:2)

这样的事情可能会有所帮助

private void centerGroup(int groupId){
    if(groupId>0){
        int minLat = Integer.MAX_VALUE;
        int maxLat = Integer.MIN_VALUE;
        int minLon = Integer.MAX_VALUE;
        int maxLon = Integer.MIN_VALUE;


        Cursor cursor = getYourLantLongs(groupId);

        if (cursor.moveToFirst()){
            final int LAT_INDEX = cursor.getColumnIndex(T.Waypoints.LATITUDE);
            final int LON_INDEX = cursor.getColumnIndex(T.Waypoints.LONGITUDE);

            do {
                final int lat = (int) (cursor.getFloat(LAT_INDEX)*1E6);
                final int lon = (int) (cursor.getFloat(LON_INDEX)*1E6);

                maxLat = Math.max(lat, maxLat);
                minLat = Math.min(lat, minLat);
                maxLon = Math.max(lon, maxLon);
                minLon = Math.min(lon, minLon);

            } while(cursor.moveToNext());


            mapController.zoomToSpan(Math.abs(maxLat - minLat), Math.abs(maxLon - minLon));
            mapController.animateTo(new GeoPoint((maxLat + minLat)/2, (maxLon + minLon)/2 ));

            /*
            final int cLat =  (int)((maxLat*1E6 + minLat*1E6)/2);
            final int cLon =  (int)((maxLon*1E6 + minLon*1E6)/2);

            final int zLat =  (int)Math.abs(maxLat - minLat);
            final int zLon =  (int)Math.abs(maxLon - minLon);

            //mapController.zoomToSpan(zLat, zLon);
            mapController.animateTo(new GeoPoint(cLat, cLon));
             */
        }
    }           
}

总之,你制作一个正方形并放大。

答案 1 :(得分:1)

浏览阵列并保存纬度和经度的最小值和最大值。 然后使用

mMapController.zoomToSpan((maxLatitude - minLatitude), (maxLongitude - minLongitude));

获得正确的缩放级别。并且

mMapController.animateTo(new GeoPoint(

                                (maxLatitude + minLatitude)/2 ,

                                (maxLongitude + minLongitude)/2 ));

将地图移动到标记的中心。

玩得开心!

相关问题