生产中用到多个点要显示在视觉地图中,试过几种方法,这个最好:
mBaiduMap.setOnMapLoadedCallback(new OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
// 路线
LatLng p1 = new LatLng(31.209933, 121.608515);
LatLng p2 = new LatLng(30.905841, 121.927665);
LatLng p3 = new LatLng(31.049502, 121.432088);
LatLng p4 = new LatLng(31.160318, 121.434962);
LatLng p5 = new LatLng(34.283806, 117.198051);
LatLng p6 = new LatLng(29.545097, 106.568581);
LatLng p7 = new LatLng(34.358342, 108.922285);
List<LatLng> points = new ArrayList<LatLng>();
points.add(p1);
points.add(p2);
points.add(p3);
points.add(p4);
points.add(p5);
points.add(p6);
points.add(p7);
OverlayOptions ooPolyline = new PolylineOptions().width(10)
.color(0xAAFF0000).points(points);
mBaiduMap.addOverlay(ooPolyline);
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (LatLng p : points) {
builder = builder.include(p);
}
LatLngBounds latlngBounds = builder.build();
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(latlngBounds,mMapView.getWidth(),mMapView.getHeight());
mBaiduMap.animateMapStatus(u);
}
});
简单明了,在OnMapLoadedCallback中实现是关键,否则mapview的with和height取得是0.
转自:https://blog.csdn.net/zengchao2013/article/details/50456547