我有一堆标记,我加载到谷歌地图上。我的问题是,相机不在标记的顶部。我可以将它放在所有标记之上吗?
我正在使用此代码添加标记:
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
但背后有很多背景,我不确定如何实现它。
答案 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));