我正在玩Android MapView并且遇到了一个要求,我必须在用户点击的地方放置一个标记。 在我的场景中,用户可以平移地图,放大和缩小,并点击她喜欢的任何地方。 在这种情况下,标记应放在用户点击地图的任何位置。 如果地图上有前一个标记,那么在点击事件中它应该被清除并放在新的地方。 每次案件重复时都应重复这一过程。
将来,我将会有更多的抽象,例如范围代表和指向可以拖动的选择范围的指针。
我可以将标记放在首位,但是当用户点击其他任何地方时,我的代码无效。
以下是我正在使用的类的代码:http://pastebin.com/6idn7VwK 扩展MapActivity的完整类和扩展ItemizedOverlay的类可以在上面的链接中找到。
我知道我可能会做错事,所以请纠正我。
谢谢!
答案 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();
}