2014-12-03 27 views
8

我正在使用Google Maps API v2,並從SharedPreferences中獲取位置座標單個字符串「-34.8799074,174.7565664」,我需要將其轉換爲LatLng。將字符串轉換爲LatLng

任何人都可以幫忙嗎?

Thx!

+0

答:是指https://開頭計算器。 com/a/26891191/4425004 – Vijayaraghavan 2018-02-14 08:29:08

+0

[將lat lat long string轉換爲google maps API LatLng對象](https://stackoverflow.com/questions/26890514/convert-lat-long-string-into-google-maps- api-latlng-object) – Vijayaraghavan 2018-02-14 08:30:44

回答

25

[谷歌地圖的Android API]

您可以用逗號將字符串分割字符串,然後解析長

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

要構建一個LatLng與給定的緯度和經度座標

LatLng location = new LatLng(latitude, longitude); 

[Google Maps JavaScript API]

做同樣的操作與地圖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

不像其他的答案,這並不能解釋LatLng是一個類 – Muz 2018-02-16 03:16:56

+0

@Muz我已經用更多的細節和用法的例子更新了答案。 – 2018-02-22 22:51:21

9

首先你將要拆分的逗號的字符串:

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

這將然後給你兩個String變量,因爲LatLng構造函數需要位置的緯度和經度兩個雙打,所以您將要解析爲這樣的雙精度:

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

最後,加入到以前的答案,然後你會希望把這些變成LatLng對象,它是經常使用的谷歌地圖類:

LatLng location = new LatLng(latitude, longitude);