如何在Android中获取地图上的纬度和经度?

时间:2010-12-15 04:53:18

标签: android google-maps android-mapview

如何获取我在Android上长时间点击地图的特定位置的纬度和经度值?

3 个答案:

答案 0 :(得分:13)

长按一下,我建议您查看http://www.kind-kristiansen.no/2010/handling-longpresslongclick-in-mapactivity/。这将详细介绍如何在Maps API中监听长按事件,因为我知道很少或没有内置功能。<​​/ p>

对于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
}

答案 1 :(得分:4)

您必须管理LongClick事件,然后使用代码通过以下代码查找经度和纬度:

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

其中'event'是'MotionEvent'的对象。

根据您的情况使用任何其他活动。

答案 2 :(得分:0)

它给出了地图点击

的纬度和经度
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);

        }
    });