2010-12-15 23 views

Trả lời

13

Đối với nhấp chuột dài, tôi khuyên bạn nên xem http://www.kind-kristiansen.no/2010/handling-longpresslongclick-in-mapactivity/. Điều này sẽ đi sâu vào chi tiết về cách nghe các sự kiện nhấp chuột dài trong API Maps vì có rất ít hoặc không có chức năng tích hợp mà tôi biết.

Đối với mã lat/lng, sau khi bạn nhận được nhấp chuột dài, bạn có thể dịch các pixel thành tọa độ.

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 
} 
+3

Liên kết trong này điểm câu trả lời cho một bài đăng blog tôi đã viết một khi trở lại. Tôi vừa viết một bài mới với một giải pháp sạch hơn và hoạt động tốt hơn. Nó có thể được quan tâm: http://www.kind-kristiansen.no/2011/android-handling-longpresslongclick-on-map-revisited/ – rogerkk

4

Bạn sẽ phải quản lý sự kiện LongClick, và sau đó sử dụng mã để tìm hiểu kinh độ và vĩ độ với đoạn mã sau:

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

nơi 'sự kiện' là đối tượng của 'MotionEvent'.

Sử dụng bất kỳ sự kiện nào khác tùy theo trường hợp của bạn.

0

Nó cung cấp cho vĩ độ và kinh độ vào thời điểm đó của bản đồ nhấp

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

     } 
    }); 
Các vấn đề liên quan