Android谷歌地图API V2中心标记

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缩放以显示所有标记