2014-12-03 69 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);