有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android谷歌地图API V2中心标记

有没有一种方法可以使地图尽可能放大,但同时保持所有标记在屏幕上。 我有六个形状不一致的记号笔。我想把他们的中心定位到地图上,但我仍然不知道我可以通过编程将地图放大多远

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

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

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

共 (1) 个答案

  1. # 1 楼答案

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

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

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

    然后使用factory: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