2014-12-03 21 views
8

Utilizzo l'API di Google Maps v2 e ottengo una posizione con una singola stringa "-34.8799074.174.7565664" dalle mie SharedPreferences che devo convertire in LatLng.Converti stringa in LatLng

Qualcuno può aiutare con questo per favore?

Thx!

+0

Ans: riferirsi https: // StackOverflow. com/a/26891191/4425004 – Vijayaraghavan

+0

Possibile duplicato di [Converti stringa lunga lat in google maps API LatLng Object] (https://stackoverflow.com/questions/26890514/convert-lat-long-string-into-google-maps- api-latlng-object) – Vijayaraghavan

risposta

25

[Google Maps Android API]

È possibile dividere la stringa da virgola e quindi analizzare la stringa a lungo

String[] latlong = "-34.8799074,174.7565664".split(","); 
double latitude = Double.parseDouble(latlong[0]); 
double longitude = Double.parseDouble(latlong[1]); 

Per costruisce un LatLng con la latitudine dato e longitudine

LatLng location = new LatLng(latitude, longitude); 

[API JavaScript di Google Maps]

Per fare stessa operazione con il servizio Maps API JavaScript (JSFiddle demo) -

var latlong = '-34.397,150.644'.split(','); 
    var latitude = parseFloat(latlong[0]); 
    var longitude = parseFloat(latlong[1]); 
    var mapOptions = { 
    zoom: 8, 
    center: {lat: latitude, lng: longitude} 
    }; 
+0

a differenza dell'altra risposta, questo non spiega che LatLng è una classe – Muz

+0

@Muz Ho aggiornato la risposta con ulteriori dettagli ed esempi di utilizzo. –

9

In primo luogo si vuole dividere la stringa in virgola:

String[] latLng = "-34.8799074,174.7565664".split(","); 

Questo sarà quindi dare a due String variabili, che si desidera analizzare come doppi in questo modo perché il costruttore LatLng accetta due doppi per la latitudine e la longitudine del luogo:

double latitude = Double.parseDouble(latLng[0]); 
double longitude = Double.parseDouble(latLng[1]); 

Infine, l'aggiunta alla risposta precedente, è quindi possibile mettere questi in un oggetto LatLng che è la classe frequentemente usato da Google Maps:

LatLng location = new LatLng(latitude, longitude);