タッチイベントがあるMapActivityがあります。
タッチイベントの場合:
現在の地理コードを取得します
その場所にオーバーレイ画像を配置します。
マップビューの中心として設定します。
これは正常に機能しているようで、しばらくの間は期待どおりです。しかし、その後、適用力は閉じます。何も触れていなくても、タッチイベントは狂ったように発火していると思います。タッチした位置の経度と緯度を表示するトーストを設定したので、それを知っています。何も触れていなくても表示され続けます。
問題を修正するどころか、問題を正確に特定できないようです。これが私のmapActivityのタッチイベントです
private void LocationStuffs(double latitude, double longitude){
itemizedOverlay.clear();
itemizedOverlay.addOverlayItem((int)latitude, (int)longitude, "place");
mapView.invalidate();
mapView.getOverlays().add(itemizedOverlay);
MapController mc = mapView.getController();
mc.setCenter(new GeoPoint((int)latitude, (int)longitude));
mc.setZoom(20);
}
public boolean onTouchEvent(MotionEvent event, MapView mapView){
//---when user lifts his finger---
if (event.getAction() == 1) {
GeoPoint p = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
Toast.makeText(getBaseContext(),
p.getLatitudeE6() / 1E6 + "," +
p.getLongitudeE6() /1E6 ,
Toast.LENGTH_SHORT).show();
latitude = p.getLatitudeE6() / 1E6;
longitude = p.getLongitudeE6() / 1E6;
LocationStuffs(latitude*1E6, longitude*1E6);
}
return false;
}