我正在使用javascript,我有一个字符串形式的GPS坐标,我试图把它们放到google.maps.LatLng(59.327383, 18.06747)
格式,但我很难决定如何做到这一点。我有一个变量:
GPSlocation = "(37.700421688980136, -81.84535319999998)"
我需要它进入google.maps.LatLng(num,num)格式。我怎么能把这个字符串放在那里?
谢谢!
答案 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]);