Android нажимает на карту и получает координаты

Привет, ребята, я пытаюсь создать приложение, которое, когда пользователь нажимает на карту, получает координаты этой конкретной точки.

Среди прочего я также прочитал: Получить координаты при нажатии на карту в android

Кажется, что это самый важный пост, но я хочу, чтобы он мог нажимать в любом месте карты, а не на элемент маркера / наложения. На самом деле я хочу создать маркер в этой конкретной точке, чтобы пользователь постучал и получил координаты.

Это возможно?

благодаря

Майк

Да. Фактически, ответ, который я дал в этом другом вопросе, – это то, что вам нужно.

Должно быть тривиально с небольшим количеством математики. Вы можете использовать getLatitudeSpan() и getLongitudeSpan() чтобы получить экстенты видимой карты, и getMapCenter() чтобы увидеть центральную точку. Просто сопоставьте это с координатами события касания.

EDIT: Mark, как всегда, имеет еще более элегантное решение.

Вам нужно будет переопределить onTouchEvent ().

Я надеюсь, что следующий код поможет вам … показывая использование onTouchEvent (), пока пользователь поднимает палец с карты …

Учитывая координаты экрана касания, вы можете использовать Projection (от getProjection () на MapView), чтобы преобразовать его в широту и долготу …

 @Override public boolean onTouchEvent(MotionEvent event, MapView mapView) { GeoPoint point_touch; MapController map_controller=mapView.getController(); //---when user lifts his finger--- if (event.getAction() == event.ACTION_UP) { point_touch = mapView.getProjection().fromPixels((int) event.getX(),(int) event.getY()); Log.i("Cordinates","Lattitude="+point_touch.getLatitudeE6() / 1E6 +" Longitude="+point_touch.getLongitudeE6() /1E6 ); map_controller.animateTo(point_touch); return true; } else { return false; } }