每次用户点击地图时,将标记可绘制在mapview上的有效方法是什么

时间:2010-11-30 09:37:50

标签: android android-sdk-2.1 android-maps

我正在玩Android MapView并且遇到了一个要求,我必须在用户点击的地方放置一个标记。 在我的场景中,用户可以平移地图,放大和缩小,并点击她喜欢的任何地方。 在这种情况下,标记应放在用户点击地图的任何位置。 如果地图上有前一个标记,那么在点击事件中它应该被清除并放在新的地方。 每次案件重复时都应重复这一过程。

将来,我将会有更多的抽象,例如范围代表和指向可以拖动的选择范围的指针。

我可以将标记放在首位,但是当用户点击其他任何地方时,我的代码无效。

以下是我正在使用的类的代码:http://pastebin.com/6idn7VwK 扩展MapActivity的完整类和扩展ItemizedOverlay的类可以在上面的链接中找到。

我知道我可能会做错事,所以请纠正我。

谢谢!

1 个答案:

答案 0 :(得分:3)

您应该为此类功能覆盖onTap方法:

    @Override
    public boolean onTap(GeoPoint point, MapView view) {
         // add your marker to the map by creating an overlayItem and calling addOverlay
    }

 public void addOverlay(OverlayItem overlay) {
     mOverlays.add(overlay);
     populate();
 }