Как получить широту и долготу на карте в Android? - PullRequest
14 голосов
/ 15 декабря 2010

Как я могу получить значения широты и долготы определенного местоположения, которое я долго нажимал на карте в Android?

Ответы [ 3 ]

13 голосов
/ 15 декабря 2010

Для длинного клика я предлагаю вам проверить http://www.kind -kristiansen.no / 2010 / processing-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
}
4 голосов
/ 15 декабря 2010

Вам придется управлять событием LongClick, а затем использовать код для определения долготы и широты с помощью следующего кода:

GeoPoint geoPoint=mapView.getProjection().fromPixels((int)event.getX(),(int)event.getY());
int latitude = geoPoint.getLatitudeE6();
int longitude = geoPoint.getLongitudeE6();

где 'событие' - это объект 'MotionEvent'.

Используйте любое другое событие в зависимости от вашего случая.

0 голосов
/ 10 апреля 2014

Указывает широту и долготу, в какой точке карты нажмите

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);

        }
    });
.
...