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实例)。

我的建议是回滚到上面链接的样本之一,并从那里开始修改,或者开始尝试找出哪些方法正在调用,哪些不是。

+0

是的,谢谢。我确实从样本开始,但用我自己的替代OverlayItem,因为我想进一步扩展它。什么位让你觉得它从来没有被称为? 我有一个方法可以创建一个完整的pfOverlayItems数组(mainOverlayArray) – 2010-07-05 20:13:30

+1

@Lee Armstrong:填充'mainOverlayArray'不在你上面​​显示的代码中。 – CommonsWare 2010-07-05 20:25:51

+0

我明白了。我只是做了一个测试与另一个例子,它的工作原理.....这是一个使用“公共SitesOverlay(可绘制标记)”。看起来标记没有被拉到我的自定义对象上,我是否在延伸OverlayItem的第二个代码块中缺少任何东西? (0,0,marker.getIntrinsicWidth(),marker.getIntrinsicHeight()); – 2010-07-05 20:42:12