このマップに関連付けられたオーバーレイ レイヤーにルートが描かれた Google マップを表示するレイアウトを開発しようとしています。この mapView を、ユーザーがたどった主なルートをサムネイルとして表示する小さな静的マップにしたいと考えています。次に、ユーザーがそれをクリックすると、インテントによって別のアクティビティに移動し、マップがルートとともに全画面表示されます。そしてすべてのズーム機能。
問題は、Overlay の onTap メソッドをオーバーライドして新しいアクティビティの意図を設定することですが、MapView を setEnabled(true) に設定した場合にのみ機能しますが、そうすると、サムネイル マップをドラッグしてドラッグすることができます。ユーザーによって移動されました。
わかりにくかったら申し訳ありませんが、もっとうまく説明する方法がわかりません。
前もって感謝します
これは、Overlay を拡張して onTap メソッドをオーバーライドする、私のカスタマイズしたクラスです。
class MapOverlay extends Overlay {
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
Intent i = new Intent(getApplicationContext(),
RouteMapActivity.class);
startActivity(i);
return false;
};
そして、これは私の onCreate メソッドです:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detailrun_activity);
map = (MapView) findViewById(R.id.mvMain);
map.setEnabled(true);
map.setClickable(true);
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = map.getOverlays();
projection = map.getProjection();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
double lat = 28.063119 * 1E6, longi = -82.41128 * 1E6;
GeoPoint point = new GeoPoint((int) lat, (int) longi);
MapController myMapController = map.getController();
myMapController.setCenter(point);
}
今のところ、2 つの GeoPoint 間に直線を引いているだけで、logcat エラーは発生していません。
ルートを含むマップは実際に描画され、オーバーライドされた onTap メソッドは機能しますが、mapView が有効でクリック可能として定義されている場合にのみタップを認識するようですが、そうすると、ユーザーはマップを移動およびドラッグすることもできます彼が画面を押し続ける限り。