我目前正在制作一个基于安卓地图的应用程序。这个应用程序的目的是在地图视图上显示复杂的叠加层。为此,我使用自定义覆盖和覆盖draw()
功能。
那部分工作得很好,现在我想为每个叠加层处理 onTap 事件。我目前在做什么:
public class MapOverlay extends Overlay {
public MapOverlay(Kml kml,String color,Projection projection){
}
public void draw(Canvas canvas, MapView mapv, boolean shadow){
super.draw(canvas, mapv, shadow);
// draw path...
}
@Override
public boolean onTap(GeoPoint gp, MapView mapView) {
Log.i("Overlay","Say whaaaat!");
return super.onTap(gp, mapView);
}
}
正如预期的那样,每个叠加层都覆盖了整个地图视图,因此当我点击叠加层时,每个叠加层都会触发 onTap 事件。假设我有 6 个叠加层,我不知道点击了哪条路径。
有解决方案吗?
更新:
现在,我已经成功地使用 ItemizedOverlay 在我的地图上显示了标记(也与 ItemizedBaloonOverlay 并列),但这并不是我想要的。
我想要一个像 PolygonOverlay 这样的东西,它会检测是否在多边形内完成了点击,并且在这种情况下只触发一个点击事件。
谢谢