从字符串中剥离GPS坐标

时间:2013-12-05 15:00:05

标签: jquery

我正在使用Mapbox在我的网页上显示地图。当用户移动标记时,我想获得新的lat / lng坐标并存储它们。

要获得lat / lng坐标我正在使用函数:

marker.getLatLng()

返回以下内容:

LatLng(51.5096, -0.20256)

这个工作正常,但我希望坐标分为两个变量,如下:

var lat = 51.5096;
var lng = -0.20256;

如何在Jquery中分离它们?我想过简单地删除第一次出现LatLng(,然后删除最后一次出现的),然后用逗号分隔字符串。然而,这似乎有点过头了,并且想知道这样做的首选方式。

我的工作修正

var latlng = marker.getLatLng();
var new_latlng = latlng.toString().split('(').pop().split(')').shift().split(',')
var marker_lat = new_latlng[0].trim();
var marker_lng = new_latlng[1].trim();

3 个答案:

答案 0 :(得分:2)

你的方式不会有点矫枉过正,对于处理字符串来说是完全正常的。我没有看到问题。无论如何,如果你想做更奇特的事情,不一定更好,这里有一个解决方案:

var str = "LatLng(51.5096, -0.20256)";
eval(str); // do try... catch here

function LatLng(lat,lng){
    alert(lat);
    alert(lng);
    // do what you want with them
}

所以要创建一个函数LatLng并评估字符串

答案 1 :(得分:1)

使用正则表达式 -

var coordArray = "LatLng(51.5096, -0.20256)".match(/LatLng\(([^,]*)\,\s([^,]*)\)/),
    lat = coordArray[1],
    long = coordArray[2];

答案 2 :(得分:1)

如果字符串没有以某种方式改变,但保持不变,那么拆分它实际上并不是一个坏主意,并且通过使用shift()pop(),您可以在一行中完成所有操作:< / p>

str.split('(').pop().split(')').shift().split(',')