Android百度地图添加多个覆盖物

1,写一个类继承ItemizedOverlay<OverlayItem>

(要处理该覆盖物的点击事件,请重写其中的ontap()方法)

152302924.png

2,自定义覆盖物的样式及要显示的内容

(1)创建一个xml文件 添加你想要显示的类型控件

(2)将该xml转换成drawble(注意!!!)

View v=context.getLayoutInflater().inflate(R.layout.custom_text_view, null);

TextView text=v.findViewById(R.id.xxxxx);

text.setText("你要在覆盖物上显示的文字!");

将view传如下面方法中,转换成Drawable

153300194.png

(3)添加

Drawable drawable = BMapUtil.getDrawableFromView(v);
ArrayList<OverlayItem> l = new ArrayList<OverlayItem>();
OverlayItem item = new OverlayItem(Geopoint对象(要显示覆盖物的点),String arg1 , String title);
l.add(item);
MultOverlayUtil util = new MultOverlayUtil(d, mMapView, this, l);
util.addItem(l);

mapView.getOverlays().add(util);

mapView.refresh();

3,多个不同的覆盖物可以将经纬度点的集合封装成一个java类,通过循环进行添加显示不同的覆盖物