2014-12-03 27 views
8

Używam Google Maps API v2, a otrzymuję współrzędne lokalizacji pojedynczy ciąg "-34.8799074,174.7565664" z moich SharedPreferences, które muszę przekonwertować na LatLng.Konwertuj ciąg na LatLng

Czy ktoś może w tym pomóc?

Thx!

+0

Odp: patrz https: // stackoverflow. com/a/26891191/4425004 – Vijayaraghavan

+0

Możliwy duplikat ciągu [Konwertuj długi ciąg na Google maps API LatLng Object] (https://stackoverflow.com/questions/26890514/convert-lat-long-string-into-google-maps- api-latlng-object) – Vijayaraghavan

Odpowiedz

25

[Mapy Google Android API]

można podzielić ciąg przecinkiem, a następnie zanalizować ciąg długich

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

Aby konstruuje LatLng z danej szerokości i długości geograficznej

LatLng location = new LatLng(latitude, longitude); 

[Google Maps JavaScript API]

Aby wykonać tę samą operację z serwisu Mapy JavaScript API (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

w przeciwieństwie do innej odpowiedzi, to nie wyjaśnia, że ​​LatLng jest klasą – Muz

+0

@ Mam zaktualizowałem odpowiedź bardziej szczegółami i przykładami zastosowań. –

9

Po pierwsze będzie chciał podzielić ciąg na przecinkami:

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

Będzie to daje dwa String zmienne, które chcesz przeanalizować jako podwójne, ponieważ konstruktor LatLng potrzebuje dwóch podwójnych dla szerokości i długości geograficznej lokalizacji:

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

Wreszcie, dodając do poprzedniej odpowiedzi, będzie potem chcesz umieścić je w LatLng obiektu, który jest klasą często używane przez Google Maps:

LatLng location = new LatLng(latitude, longitude);