我最初为谷歌地图设置了缩放级别,我想根据边界中存在的标记数量动态更改缩放级别。如果初始地图缩放中没有标记,我无法通过更改地图边界动态更改缩放。
如果边界中没有标记,我将在边界中添加新标记并为相机设置动画以合并新边界,但实际上它正在做的是将地图中心更改为新位置而不是当前位置。我不想改变我现在的位置,我只是想缩小地图以包含那些标记。
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
正在将当前位置更改为该边界而不是缩小地图。
任何人都可以帮助或告诉我实现这一目标的方法。
我不确定我是否理解正确,但如果您只想设置缩放级别,那么就这样做:
public static CameraUpdate zoomTo(float zoom)返回将摄像机视点移动到特定缩放级别的CameraUpdate。
参数可缩放所需的缩放级别,范围为2.0到21.0。低于此范围的值设置为2.0,高于此值的值设置为21.0。增加值以放大。并非所有区域都具有最大缩放级别的图块。
public void moveCamera(CameraUpdate update)根据更新中定义的说明重新定位摄像机。移动是即时的,随后的getCameraPosition()将反映新的位置。有关一组更新,请参阅CameraUpdateFactory。
参数更新应应用于摄像机的更改。