OverlayItem不显示标记!
问题描述:
我有以下代码,标记根本没有出现在地图上!OverlayItem不显示标记!
private class SitesOverlay extends ItemizedOverlay<pfOverlayItem> {
private List<pfOverlayItem> items=new ArrayList<pfOverlayItem>();
//private PopupPanel panel=new PopupPanel(R.layout.popup);
public SitesOverlay() {
super(null);
items = mainOverlayArray;
populate();
}
@Override
protected pfOverlayItem createItem(int i) {
return(items.get(i));
}
@Override
public void draw(Canvas canvas, MapView mapView,
boolean shadow) {
super.draw(canvas, mapView, shadow);
}
@Override
public int size() {
return(items.size());
}
private Drawable getMarker(int resource) {
Drawable marker=getResources().getDrawable(resource);
marker.setBounds(0, 0, marker.getIntrinsicWidth(),
marker.getIntrinsicHeight());
boundCenter(marker);
return(marker);
}
}
mainOverlayArray充满pfOverlayItem的和那个类的代码是
public class pfOverlayItem extends OverlayItem {
private String coolText;
public String getcoolText() {
return coolText;
}
public void setcoolText(String coolText) {
this.coolText = coolText;
}
public pfOverlayItem(GeoPoint point, String title, String snippet) {
super(point, title, snippet);
// TODO Auto-generated constructor stub
}
}
我还设置这个以外的标记处理XML文件后...
ArrayList<pfOverlayItem> overArray = myXMLHandler.getOverlayArray();
mainOverlayArray = overArray;
pfOverlayItem tempOver = null;
Drawable marker = getResources().getDrawable(R.drawable.icon);
for (int i = 0; i < mainOverlayArray.size(); i++) {
tempOver = mainOverlayArray.get(i);
tempOver.setMarker(marker);
}
sites=new SitesOverlay();
myMapView.getOverlays().add(sites);
myMapView.invalidate(); [/code]
答
看起来好像你从我的的one开始sampleGoogleMapapplications。此处显示的代码不完整(例如,根据此处的代码,您从不创建任何OverlayItem
实例)。
我的建议是回滚到上面链接的样本之一,并从那里开始修改,或者开始尝试找出哪些方法正在调用,哪些不是。
是的,谢谢。我确实从样本开始,但用我自己的替代OverlayItem,因为我想进一步扩展它。什么位让你觉得它从来没有被称为? 我有一个方法可以创建一个完整的pfOverlayItems数组(mainOverlayArray) – 2010-07-05 20:13:30
@Lee Armstrong:填充'mainOverlayArray'不在你上面显示的代码中。 – CommonsWare 2010-07-05 20:25:51
我明白了。我只是做了一个测试与另一个例子,它的工作原理.....这是一个使用“公共SitesOverlay(可绘制标记)”。看起来标记没有被拉到我的自定义对象上,我是否在延伸OverlayItem的第二个代码块中缺少任何东西? (0,0,marker.getIntrinsicWidth(),marker.getIntrinsicHeight()); – 2010-07-05 20:42:12