2
我使用谷歌地图API 2并在其上显示多个标记。我的问题是我希望我的相机能够定位在我的所有标记上。 我已经做了单标记为谷歌地图相机在多个标记上的位置
myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MyLocation, 22));
我使用谷歌地图API 2并在其上显示多个标记。我的问题是我希望我的相机能够定位在我的所有标记上。 我已经做了单标记为谷歌地图相机在多个标记上的位置
myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MyLocation, 22));
我用下面的方式来查看视图中的所有标记。它将绑定您的Mapview,包括您的数据列表中的所有Lat-Long位置。
// Pan to see all markers in view.
// Cannot zoom to bounds until the map has a size.
final View mapView = getSupportFragmentManager().findFragmentById(R.id.map).getView();
if (mapView.getViewTreeObserver().isAlive()) {
mapView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@SuppressLint("NewApi")
@Override
public void onGlobalLayout() {
LatLngBounds.Builder bld = new LatLngBounds.Builder();
for (int i = 0; i < YOUR_ARRAYLIST.size(); i++) {
LatLng ll = new LatLng(YOUR_ARRAYLIST.get(i).getPos().getLat(), YOUR_ARRAYLIST.get(i).getPos().getLon());
bld.include(ll);
}
LatLngBounds bounds = bld.build();
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 70));
mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
}
希望它会帮助。
像魅力一样工作。谢谢 – Andy 2013-03-21 06:27:38
像魅力一样工作! – TharakaNirmana 2013-10-25 04:49:59
removeGlobalOnLayoutListener已弃用,请改为使用removeOnGlobalLayoutListener。 – 2017-07-12 07:29:30