Note that there are some explanatory texts on larger screens.

plurals
  1. POhow to get the latitude and longitude of a particular overlay item?
    text
    copied!<p>My map code is this:</p> <pre><code>public class ExampleActivity extends MapActivity { private MapView map = null; private MyLocationOverlay me = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); map = (MapView) findViewById(R.id.map); map.getController().setCenter(getPoint(18.5236296, 73.8478429)); map.getController().setZoom(17); map.setBuiltInZoomControls(true); Drawable marker = getResources().getDrawable(R.drawable.marker); marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight()); map.getOverlays().add(new SitesOverlay(marker)); me = new MyLocationOverlay(this, map); map.getOverlays().add(me); } @Override public void onResume() { super.onResume(); me.enableCompass(); } @Override public void onPause() { super.onPause(); me.disableCompass(); } @Override protected boolean isRouteDisplayed() { return (false); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_S) { map.setSatellite(!map.isSatellite()); return (true); } else if (keyCode == KeyEvent.KEYCODE_Z) { map.displayZoomControls(true); return (true); } return (super.onKeyDown(keyCode, event)); } private GeoPoint getPoint(double lat, double lon) { return (new GeoPoint((int) (lat * 1000000.0), (int) (lon * 1000000.0))); } private class SitesOverlay extends ItemizedOverlay&lt;OverlayItem&gt; { private List&lt;OverlayItem&gt; items = new ArrayList&lt;OverlayItem&gt;(); private Drawable marker = null; private OverlayItem inDrag = null; private ImageView dragImage = null; private int xDragImageOffset = 0; private int yDragImageOffset = 0; private int xDragTouchOffset = 0; private int yDragTouchOffset = 0; public SitesOverlay(Drawable marker) { super(marker); this.marker = marker; dragImage = (ImageView) findViewById(R.id.drag); xDragImageOffset = dragImage.getDrawable().getIntrinsicWidth() / 2; yDragImageOffset = dragImage.getDrawable().getIntrinsicHeight(); items.add(new OverlayItem(getPoint(18.5236296, 73.8478429), "Pune", "Wakad")); populate(); } @Override protected OverlayItem createItem(int i) { return (items.get(i)); } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); boundCenterBottom(marker); } @Override public int size() { return (items.size()); } @Override public boolean onTouchEvent(MotionEvent event, MapView mapView) { final int action = event.getAction(); final int x = (int) event.getX(); final int y = (int) event.getY(); boolean result = false; if (action == MotionEvent.ACTION_DOWN) { for (OverlayItem item : items) { Point p = new Point(0, 0); map.getProjection().toPixels(item.getPoint(), p); if (hitTest(item, marker, x - p.x, y - p.y)) { result = true; inDrag = item; items.remove(inDrag); populate(); xDragTouchOffset = 0; yDragTouchOffset = 0; setDragImagePosition(p.x, p.y); dragImage.setVisibility(View.VISIBLE); xDragTouchOffset = x - p.x; yDragTouchOffset = y - p.y; break; } } } else if (action == MotionEvent.ACTION_MOVE &amp;&amp; inDrag != null) { setDragImagePosition(x, y); result = true; } else if (action == MotionEvent.ACTION_UP &amp;&amp; inDrag != null) { dragImage.setVisibility(View.GONE); GeoPoint pt = map.getProjection().fromPixels( x - xDragTouchOffset, y - yDragTouchOffset); OverlayItem toDrop = new OverlayItem(pt, inDrag.getTitle(), inDrag.getSnippet()); items.add(toDrop); populate(); inDrag = null; result = true; } return (result || super.onTouchEvent(event, mapView)); } private void setDragImagePosition(int x, int y) { RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) dragImage .getLayoutParams(); lp.setMargins(x - xDragImageOffset - xDragTouchOffset, y - yDragImageOffset - yDragTouchOffset, 0, 0); dragImage.setLayoutParams(lp); } } } </code></pre> <p>this shows a marker on the map, and i can drag and drop this marker to some other place on the map....so now, my question is how to get the latitude and longitude of the current position of the marker??</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload