2013-03-07 17 views
8

sto cercando di ottenere latitudine e longitudine sulla v2 Googlemap .. mi hanno fissato l'ascoltatore onclick per oggetto mapragment utilizzando il codiceOttenere latitudine e longitudine da oggetto LatLng in Android

map.setOnMapClickListener(new OnMapClickListener() { 

    @Override 
    public void onMapClick(LatLng latln) { 
     // TODO Auto-generated method stub 


     String s=latln.toString(); 

     Log.w("dsfdsf",""+s); 

    } 
}); 

Esso fornisce la latitudine e longitudine coordinate nel formato lat/lng: (xx.xxxxxx, yy.yyyyy) Ho bisogno del metodo esatto per ottenere dati di latitudine e longitudine .. Non voglio analizzare i dati usando split e ottenere le coordinate ..

risposta

30

Questo può essere facilmente trovato nel Google Maps API reference:

public final class LatLng

public double latitudine finale

Latitude, in gradi. Questo valore è compreso nell'intervallo [-90, 90].

pubblico finale doppia longitudine

Longitudine, in gradi. Questo valore è compreso nell'intervallo [-180, 180).

Quindi nel tuo esempio, si dovrebbe chiamare:

double lat = latlng.latitude; 
double lng = latlng.longitude; 
+0

Grazie mille .. Funziona .. mi sono confuso .. Grazie per averlo chiarito .. –

+10

sembra che molti googler vengano qui su come ottenere latitudine/longitudine da latlng oggetto in google maps V3, la risposta è ** usa i metodi .lat() e .lng() ** esempio: 'var mylat = LatLngObject.lat(); var mylng = LatLngObject.lng(); ' – Sharky

-1
var res = results1[key][key1].toString().split("("); 
console.log(" latlong::"+res); 
var res2= res[1].split(","); 
console.log(" latlong::"+res2); 
latlongFrom[0]=res2[0]; 
console.log(" latlong::"+latlongFrom[0]); 
var res3=res2[1].split(")"); 
console.log(" latlong::"+res3[0]); 
latlongFrom[1]=res3[0]; 
console.log(" latlong::"+latlongFrom[1]); 

Questo è quello che ho fatto. La res contiene il valore di (lat, long).

-2

Questo è per soluzione Android

public void onMapClick(LatLng latln) { 
    String s = latln.toString(); 
    String[] latLng = s.substring(10, s.length() - 1).split(","); 
    String sLat = latLng[0]; 
    String sLng = latLng[1]; 
    Toast.makeText(MapsActivity.this, "Latitude is: "+sLat+", Longtitude is: "+sLng, Toast.LENGTH_LONG).show(); 
} 
+0

Perché convertire in stringa solo per analizzare di nuovo? Perché giocare con la lunghezza della stringa invece di dividere con la virgola? –

-1

Per ottenere latitudine e la longitudine vostro dichiarare 2 variabili doppie.

map.setOnMapClickListener(new OnMapClickListener() { 

    @Override 
    public void onMapClick(LatLng latln) { 
     double latitude, longitude; 
     latitude(latln.latitude); 
     longitude(latln.longitude); 

    } 
}); 
0

Per la versione più recente per favore usa:

double lat = latlng.lat; 
double lng = latlng.lng; 

come latlng.latitude e latlng.longitude o latlng.lat() e latlng.lng() darà errore di compilazione.

+0

Ciao utente1267449, puoi per favore, se possibile, fornire un collegamento a qualsiasi documentazione che supporti la tua risposta? Puoi modificare e migliorare la tua risposta cliccando sul link ** [modifica] ** sotto il post. Grazie. – Pang

Problemi correlati