Android谷歌地图API V2中心标记

时间:2013-07-12 11:27:48

标签: java android google-maps

有没有办法让地图尽可能放大,但同时将所有标记保留在屏幕上。 我有六个非均匀形状的标记。我只是想把他们的中心和地图定位到那个地方,但我仍然不知道我可以通过编程方式放大地图。

每次创建地图时,这些标记都会更改位置。理想情况下,我会有一个缩放地图的脚本,因此所有内容都包含在视图中。

所以你明白了。我正在从json一次创建一个标记,循环中包含以下行。

mMap.addMarker(new MarkerOptions().position(new LatLng(lat,lng)).title(c.getString("title")));

2 个答案:

答案 0 :(得分:23)

您应该使用CameraUpdate类(可能)执行所有程序化地图移动。

为此,首先计算所有标记的边界,如下所示:

LatLngBounds.Builder builder = new LatLngBounds.Builder();
for each (Marker m : markers) {
    builder.include(m.getPosition());
}

LatLngBounds bounds = builder.build();

然后使用工厂获取移动描述对象:CameraUpdateFactory:

int padding = 0; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);

最后移动地图:

googleMap.moveCamera(cu);

或者如果你想要动画:

googleMap.animateCamera(cu);

*来自其他帖子:Android map v2 zoom to show all the markers

答案 1 :(得分:1)