Как получить Локатор и долготу на карте в Android?
Как я могу получить значения широты и долготы определенного местоположения, которые я давно нажал на карте в Android?
Ответы
Ответ 1
Для длинного клика я предлагаю вам проверить http://www.kind-kristiansen.no/2010/handling-longpresslongclick-in-mapactivity/. Это подробно расскажет о том, как прослушивать события с длинным кликом в API Карт, поскольку для меня мало или вообще нет встроенных функций.
Что касается кода lat/lng, после того, как вы получите длинный щелчок, вы можете перевести пиксели в координаты.
public void recieveLongClick(MotionEvent ev)
{
Projection p = mapView.getProjection();
GeoPoint geoPoint = p.fromPixels((int) ev.getX(), (int) ev.getY());
// You can now pull lat/lng from geoPoint
}
Ответ 2
Вам нужно будет управлять событием LongClick, а затем использовать код, чтобы узнать долготу и широту со следующим кодом:
GeoPoint geoPoint=mapView.getProjection().fromPixels((int)event.getX(),(int)event.getY());
int latitude = geoPoint.getLatitudeE6();
int longitude = geoPoint.getLongitudeE6();
где "событие" является объектом "MotionEvent".
Используйте любое другое событие в соответствии с вашим случаем.
Ответ 3
Он дает широту и долготу, по которым точка карты нажимает
map.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
//myMap.addMarker(new MarkerOptions().position(point).title(point.toString()));
//The code below demonstrate how to convert between LatLng and Location
//Convert LatLng to Location
Location location = new Location("Test");
location.setLatitude(point.latitude);
location.setLongitude(point.longitude);
location.setTime(new Date().getTime()); //Set time as current Date
txtinfo.setText(location.toString());
//Convert Location to LatLng
LatLng newLatLng = new LatLng(location.getLatitude(), location.getLongitude());
MarkerOptions markerOptions = new MarkerOptions()
.position(newLatLng)
.title(newLatLng.toString());
map.addMarker(markerOptions);
}
});