如何基于标记计数动态缩放谷歌地图?

问题描述 投票:1回答:1

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

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

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正在将当前位置更改为该边界而不是缩小地图。

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

android google-maps-markers google-maps-android-api-2
1个回答
0
投票

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

public static CameraUpdate zoomTo(float zoom)返回将摄像机视点移动到特定缩放级别的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 update)根据更新中定义的说明重新定位摄像机。移动是即时的,随后的getCameraPosition()将反映新的位置。有关一组更新,请参阅CameraUpdateFactory。

参数更新应应用于摄像机的更改。

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

© www.soinside.com 2019 - 2024. All rights reserved.