如何根据标记数动态缩放Google地图?

时间:2019-03-31 17:53:54

标签: android google-maps-markers google-maps-android-api-2

我最初为Google地图设置了缩放级别,我想根据边界中存在的标记数动态更改缩放级别。如果初始地图缩放中没有标记,则无法通过更改地图边界来动态更改缩放。

如果边界中没有标记,我会在边界中添加新标记,并为摄像机设置动画以合并新的边界,但实际上它正在做的是将地图的中心更改为新的位置,而不是当前的位置位置。我不想更改当前位置,只想缩小地图以包括这些标记。

if(noMarkersInBound){
    LatLngBounds.Builder builder = new LatLngBounds.Builder();
    builder.include(new LatLng(28.5795431, 77.317322));
    builder.include(new LatLng(28.5805431, 77.328322));
    LatLngBounds bounds = builder.build();
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds,0);
}

此方法CameraUpdateFactory.newLatLngBounds会将当前位置更改为该范围,而不是缩小地图。

任何人都可以帮忙或告诉我实现这一目标的方法。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但是如果您只想设置缩放级别,就可以这样做:

  

公共静态CameraUpdate zoomTo(浮动缩放)返回CameraUpdate   可以将相机视点移动到特定的缩放级别。

     

参数缩放所需的缩放级别,范围为2.0到21.0。   低于此范围的值设置为2.0,高于该范围的值设置为   21.0。增加该值以放大。并非所有区域都具有最大缩放级别的图块。

https://developers.google.com/android/reference/com/google/android/gms/maps/CameraUpdateFactory#zoomTo(float)

  

public void moveCamera(CameraUpdate更新)重新定位相机   根据更新中定义的说明。此举是   瞬间,随后的getCameraPosition()将反映   新的位置。有关一组更新,请参见CameraUpdateFactory。

     

参数更新应应用于相机的更改。

https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.html#moveCamera(com.google.android.gms.maps.CameraUpdate)