使用字符串作为GPS坐标

时间:2012-09-09 06:25:28

标签: javascript html google-maps-api-3 gps

我正在使用javascript,我有一个字符串形式的GPS坐标,我试图把它们放到google.maps.LatLng(59.327383, 18.06747)格式,但我很难决定如何做到这一点。我有一个变量:

GPSlocation = "(37.700421688980136, -81.84535319999998)"

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

谢谢!

2 个答案:

答案 0 :(得分:10)

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

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)

答案 1 :(得分:1)

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

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

或者,您可以替换括号并使用split创建数组,并以常规方式调用方法LatLng。此方法需要额外转换为Number数组值。

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]);