OverlayItem不显示标记!

时间:2010-07-05 18:54:30

标签: android overlay android-mapview

我有以下代码,并且标记根本没有出现在地图上!

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]

1 个答案:

答案 0 :(得分:3)

您好像是从one many sample Google Mapapplications开始。此处显示的代码不完整(例如,根据此处的代码,您永远不会创建任何OverlayItem个实例)。

我的建议是你回滚到我链接到上面的一个样本并从那里开始修改,或者你开始试图弄清楚哪些方法被调用,哪些不是。