4

我正在使用 javascript,并且我有字符串形式的 GPS 坐标,我正在尝试将它们放入google.maps.LatLng(59.327383, 18.06747)格式中,但在决定如何做时遇到了麻烦。我有一个变量:

GPSlocation = "(37.700421688980136, -81.84535319999998)"

我需要它进入 google.maps.LatLng(num, num) 格式。我怎样才能把这个字符串放在那里?

谢谢!

4

2 回答 2

13

您可以使用标准字符串操作来提取值:

var GPSlocation = "(37.700421688980136, -81.84535319999998)";
var LatLng = GPSlocation.replace("(", "").replace(")", "").split(", ")
var Lat = parseFloat(LatLng[0]);
var Lng = parseFloat(LatLng[1]);

google.maps.LatLng(Lat, Lng)
于 2012-09-09T06:41:04.317 回答
1

您可以从中创建一个数组(使用JSON.parse),然后使用apply将坐标“提供”给该方法:

GPSlocation = JSON.parse( "(37.700421688980136, -81.84535319999998)" 
                          .replace(/^\(/,'[')
                          .replace(/\)$/,']')
                        );
google.maps.LatLng.apply(null,GPSlocation);

或者,您可以替换括号并使用split来创建一个数组,并LatLng以常规方式调用该方法。此方法需要Number对 Array 值进行额外的转换。

GPSlocation = "(37.700421688980136, -81.84535319999998)"
               .replace(/^\(|\)$/,'')
               .split(',');
google.maps.LatLng(+GPSlocation[0],+GPSlocation[1]);

要从字符串中检索坐标数组,您还可以使用:

GPSlocation = ''.slice.call('(37.700421688980136, -81.84535319999998)',
                             1,this.length-1)
                       .split(',')
                       .map(function(a){return +a;});
google.maps.LatLng(GPSlocation[0],GPSlocation[1]);
于 2012-09-09T06:32:52.673 回答