Som*_*omk 7 java android google-maps
有没有办法让地图尽可能放大,但同时保留屏幕上的所有标记.我有六个非均匀形状的标记.我正在考虑只是把他们的中心和地图定位到那个,但我仍然不知道我可以通过编程方式放大地图.
每次创建地图时,这些标记都会更改位置.理想情况下,我会有一个缩放地图的脚本,因此所有都包含在视图中.
所以你理解.我在json中一次创建一个标记,循环中包含以下行.
mMap.addMarker(new MarkerOptions().position(new LatLng(lat,lng)).title(c.getString("title")));
Run Code Online (Sandbox Code Playgroud)
Jai*_*mar 24
您应该使用CameraUpdate类(可能)执行所有程序化地图移动.
为此,首先计算所有标记的边界,如下所示:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for each (Marker m : markers) {
builder.include(m.getPosition());
}
LatLngBounds bounds = builder.build();
Run Code Online (Sandbox Code Playgroud)
然后使用工厂获取运动描述对象:CameraUpdateFactory:
int padding = 0; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
Run Code Online (Sandbox Code Playgroud)
最后移动地图:
googleMap.moveCamera(cu);
Run Code Online (Sandbox Code Playgroud)
或者如果你想要一个动画:
googleMap.animateCamera(cu);
Run Code Online (Sandbox Code Playgroud)
*来自另一篇文章:Android地图v2缩放以显示所有标记