实现标记多个覆盖物
一些代码都是雷同,不赘述。
如下代码定义了用于标记的图片。注意这个时候不用指定地图的中点。
Drawable drawable = getResources().getDrawable(R.drawable.iconmarka);
mapView 添加覆盖物。
mapView.getOverlays().add(new MyOverLayItem(drawable));
定义内部类MyOverLayItem{}继承ItemizedOverlay类,并实现其中的抽象方法。
public class MyOverlayItem extends ItemizedOverlay<OverlayItem>{
private List<OverlayItem> list=new ArrayList<OverlayItem>();
private double mlat1=43.81631;
private double mlon1=125.26484;
private double mlat2=43.8101;
private double mlon2=125.2678;
private double mlat3=43.8147;
private double mlon3=125.2700;
public MyOverlayItem(Drawable drawable) {
super(drawable);
GeoPoint geoPoint1=new GeoPoint((int)(mlat1*1E6), (int)(mlon1*1E6));
GeoPoint geoPoint2=new GeoPoint((int)(mlat2*1E6), (int)(mlon2*1E6));
GeoPoint geoPoint3=new GeoPoint((int)(mlat3*1E6), (int)(mlon3*1E6));
list.add(new OverlayItem(geoPoint1, "point1", "这儿是经信"));
list.add(new OverlayItem(geoPoint2, "point2", "经信附近"));
list.add(new OverlayItem(geoPoint3, "point3", "经信附近"));
populate();
}
@Override
protected OverlayItem createItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
@Override
public int size() {
// TODO Auto-generated method stub
return 0;
}
public boolean onTap(int i){
Toast.makeText(MainActivity.this, list.get(i).getSnippet(), 1).show();
return true;
}
}
目测版本好像有点低~~ 下次争取改良 出现了一个好大的BUG!