0

我是 android 新手,我正在制作具有 Google Map V2 的应用程序。我想在运行时对相机缩放值进行动画处理。它应该取决于当前位置(经纬度)和目的地位置(目的地纬度和经度)。

它应该是缩放,这样它应该尽可能地显示两个标记,并且不需要在 mapv2 上进行任何平移、放大/缩小手势。

我使用了这段代码,但我需要平移手势才能在地图上看到这两个市场。我希望它应该尽可能接近默认值,并且不需要任何平移手势。

map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 12.0f));

提前致谢。

4

1 回答 1

1

你需要使用newLatLngBounds()

Returns a CameraUpdate that transforms the camera such that the specified latitude/longitude bounds are centered on screen at the greatest possible zoom level. You can specify padding, in order to inset the bounding box from the map view's edges. The returned CameraUpdate has a bearing of 0 and a tilt of 0.

找出2个点的边界框并给出最西南点和最东北点

例子:

map.animateCamera(CameraUpdateFactory.newLatLngBounds(new LatLngBounds(southWest,northEast),10));

要获得边界框,您需要遍历您的点并找到最大/最小 lat/lng

例子:

for(//for loop){
    LatLng point = new LatLng(lat,lng)

    if(point.getLatitude() > maxLat){
        maxLat = point.getLatitude();
    }
    if(point.getLatitude() < minLat){
        minLat = point.getLatitude();
    }
    if(point.getLongitude() > maxLon){
        maxLon = point.getLongitude();
    }
    if(point.getLongitude() < minLon){
        minLon = point.getLongitude();
    }
}

northEast = new LatLng(maxLat,maxLon);
southWest = new LatLng(minLat,minLon);
于 2013-08-08T17:49:31.423 回答