中心android谷歌地图上的一组标记?

时间:2014-05-15 17:33:35

标签: android google-maps

我有一堆标记,我加载到谷歌地图上。我的问题是,相机不在标记的顶部。我可以将它放在所有标记之上吗?

我正在使用此代码添加标记:

for(int i = 0; i < jsonArray.length(); i++) {

                String breweryName = jsonArray.getJSONObject(i).getString("brewery");
                String lat = jsonArray.getJSONObject(i).getString("lat");
                String lng = jsonArray.getJSONObject(i).getString("lng");
                String bID = jsonArray.getJSONObject(i).getString("breweryID");

                double latD = Double.parseDouble(lat);
                double lngD = Double.parseDouble(lng);



                m.addMarker(new MarkerOptions()
                        .position(new LatLng(latD, lngD))
                        .title(breweryName));


            }

我查看了堆栈,发现了这个问题,与我的问题相同:

Android Google maps API V2 center markers

但背后有很多背景,我不确定如何实现它。

1 个答案:

答案 0 :(得分:3)

您可以在特定范围内为相机设置动画。假设您有一个标记的ArrayList,类似于(这也可以是LatLngs,double,以及包含标记的纬度/经度的任何内容的列表)

List<MarkerOptions> markers = new ArrayList<MarkerOptions>();

然后,您可以通过执行以下操作确保它们在地图上都可见

LatLngBounds.Builder builder = new LatLngBounds.Builder();
LatLng position;
for(int i = 0; i < markers.size(); i++){
    position = markers.get(i).getPosition();
    builder.include(new LatLng(position.latitude, position.longitude));
}
LatLngBounds bounds = builder.build();
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 15));