2010-12-15 7 views

Antwort

13

Für den langen Klick, empfehle ich Ihnen, http://www.kind-kristiansen.no/2010/handling-longpresslongclick-in-mapactivity/. In diesem Thema wird ausführlich erläutert, wie Sie in der Google Maps-API lange Klickereignisse abhören können, da nur wenige oder keine integrierten Funktionen vorhanden sind, die ich kenne.

Wie für den lat/lng-Code können Sie nach dem langen Klick die Pixel in Koordinaten umrechnen.

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

den Link in dieser Antwort zeigt auf einen Blog-Post klicken ich eine Weile zurück schrieb. Ich habe gerade einen neuen Beitrag mit einer Lösung geschrieben, die sauberer ist und besser funktioniert. Es könnte von Interesse sein: http://www.kind-kristiansen.no/2011/android-handling-longpresslongclick-on-map-revisited/ – rogerkk

4

Sie finden das LongClick Ereignis verwalten müssen, und dann den Code verwenden, Längen- und Breitengrad mit dem folgenden Code, um herauszufinden:

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

wo ‚Ereignis‘ das Objekt ‚Motion‘ ist.

Verwenden Sie ein anderes Ereignis entsprechend Ihrem Fall.

0

Es gibt Breiten- und Längengrad, auf dem Punkt der Karte

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

     } 
    }); 
Verwandte Themen