Android: Setting Zoom Level in Google Maps to include all Marker points

后端 未结 3 757
野性不改
野性不改 2021-01-30 05:07

I am trying to set zoom level for Maps in android such that it includes all the points in my list. I am using following code.

int minLatitude = Integer.MAX_VALU         


        
相关标签:
3条回答
  • 2021-01-30 05:44

    Yet another approach with Android Map API v2:

    private void fixZoom() {
        List<LatLng> points = route.getPoints(); // route is instance of PolylineOptions 
    
        LatLngBounds.Builder bc = new LatLngBounds.Builder();
    
        for (LatLng item : points) {
            bc.include(item);
        }
    
        map.moveCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 50));
    }
    
    0 讨论(0)
  • 2021-01-30 06:00

    I found out the answer myself, the Zoom level was correct. I need to add following code to display all points on screen.

    objMapController.animateTo(new GeoPoint( 
        (maxLatitude + minLatitude)/2, 
        (maxLongitude + minLongitude)/2 )); 
    

    The center point was not propery aligned creating problem for me. This works.

    0 讨论(0)
  • 2021-01-30 06:00

    Part of the problem could be that MIN_VALUE is still a positive number, but latitudes and longitudes can be negative numbers. Try using NEGATIVE_INFINITY instead of MIN_VALUE.

    0 讨论(0)
提交回复
热议问题