私は現在、Androidマップベースのアプリを作成しています。このアプリの目的は、マップビューに複雑なオーバーレイを表示することです。これを行うために、カスタムオーバーレイとオーバーライド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のようなものが欲しいです。
ありがとう