2

Open Street Map マップは初めてです。マップ上のタップした場所にマーカーを置きたいです。前のマーカーも削除したい。私を助けてください。前もって感謝します。これが私のコードです。このProblem Pleaseで2日から苦労しています。

Overlay touchOverlay = new Overlay(this) {
 ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay = null;

 @Override
 protected void draw(Canvas arg0, MapView arg1, boolean arg2) {

 }

 @Override
 public boolean onSingleTapConfirmed(final MotionEvent e,
 final MapView mapView) {
 Projection proj = mapView.getProjection();
 GeoPoint loc = (GeoPoint) proj.fromPixels((int) e.getX(),
 (int) e.getY());
 String longitude = Double
 .toString(((double) loc.getLongitudeE6()) / 1000000);
 String latitude = Double
 .toString(((double) loc.getLatitudeE6()) / 1000000);
 Toast toast = Toast.makeText(getApplicationContext(), "Longitude:"
 + longitude + " Latitude: " + latitude, Toast.LENGTH_SHORT);
 toast.show();
 ArrayList<OverlayItem> overlayArray = new ArrayList<OverlayItem>();
 OverlayItem mapItem = new OverlayItem("", "", new GeoPoint(
 (((double) loc.getLatitudeE6()) / 1000000),
 (((double) loc.getLongitudeE6()) / 1000000)));

 mapItem.setMarker(marker);
 overlayArray.add(mapItem);
 if (anotherItemizedIconOverlay == null) {
 anotherItemizedIconOverlay = new ItemizedIconOverlay<OverlayItem>(
 getApplicationContext(), overlayArray, null);
 mapView.getOverlays().add(anotherItemizedIconOverlay);
 mapView.invalidate();
 } else {
 mapView.getOverlays().remove(anotherItemizedIconOverlay);
 mapView.invalidate();
 anotherItemizedIconOverlay = new ItemizedIconOverlay<OverlayItem>(
 getApplicationContext(), overlayArray, null);
 mapView.getOverlays().add(anotherItemizedIconOverlay);
 }
 return true;
 }

 };
4

1 に答える 1