以编程方式添加和删除标记

时间:2012-02-16 13:55:47

标签: android android-mapview

我一直在关注NooYawk MapView示例并取得了相当的成功。我已经根据一些系统更新消息替换了硬编码的地理位置和描述。发生新更新时,添加新标记就可以了。问题是当问题解决时,标记不会消失。

我很高兴在按下刷新按钮时删除所有标记,因为它们会被重新添加。

有什么想法吗?

以下有点消毒。

private class SitesOverlay extends ItemizedOverlay<OverlayItem> {
    private List<OverlayItem> items=new ArrayList<OverlayItem>();
    private Drawable marker=null;

    public SitesOverlay(Drawable marker) {
        super(marker);
        this.marker=marker;

        try {
            data = getData();
        } catch (MalformedURLException e) {
            //
        }

        if (!data.equals("")) {
                            // process data
            for (Integer i = 0; i < outages.length; i++) {
                items.add(new OverlayItem(
                    getPoint(lat, lng, headerMsg, bodyMsg));
            }
        }

        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
        return(items.get(i));
    }

    @Override
    public void draw(Canvas canvas, MapView mapView,
                boolean shadow) {
        super.draw(canvas, mapView, false);
        boundCenterBottom(marker);
    }

    @Override
    protected boolean onTap(int i) {
        Toast.makeText(getBaseContext(),
            items.get(i).getSnippet(),
            Toast.LENGTH_LONG).show();
        return(true);
    }

    @Override
    public int size() {
        return(items.size());
    }
}

1 个答案:

答案 0 :(得分:4)

点击刷新按钮点击mapview.getOverlays().clear();然后在地图中启动推针,添加叠加后,您应该mapview.postinvalidate()