读书人

ItemizedOverlay的低级使用

发布时间: 2012-08-29 08:40:14 作者: rapoo

ItemizedOverlay的初级使用
实现一个ItemizedOverlay其实很简单,首先一个装载item的list,用于读取并绘制每一个item,创建一个添加方法 add 剩下的事情留给框架处理吧

}

// 处理地图标记
class MarkMyMap extends ItemizedOverlay<OverlayItem> {
ArrayList<OverlayItem> itemsOverlay = new ArrayList<OverlayItem>();
Context context;
GeoPoint tg;

public MarkMyMap(Drawable defaultMarker) {
//这里一定要加上boundCenterBottom 否则图片根本显示不出来 而不是显示效果不佳
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
}

public MarkMyMap(Drawable defaultMaker, Context context) {
this(defaultMaker);//调用上一个构造器
this.context = context;
}

@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
//GeoPoint和location转换使用1E6 精度不会丢失很严重
System.out.println("itemsOverlay.get(i).getMarker(i)====>"+ itemsOverlay.get(i).getPoint());
return itemsOverlay.get(i);
}

@Override
public int size() {
// TODO Auto-generated method stub
return itemsOverlay.size();
}
//mapview里使用
@Override
protected boolean onTap(int index) {
// TODO Auto-generated method stub
//如果同一个对象 添加了很多item 这里可以显示被点击的item ID
System.out.println("index is "+index);
Toast.makeText(context, getDistance(tg), Toast.LENGTH_SHORT).show();
return true;
}

public void addOverlay(OverlayItem item) {
itemsOverlay.add(item);
System.out.println("itemsOverlay.size()=====" + itemsOverlay.size());
tg=item.getPoint();
this.populate();//通知overlay添加数据
}

}

}

读书人网 >移动开发

热点推荐