我正在使用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();
答案 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(',')