Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从字符串中提取GPS坐标_Jquery - Fatal编程技术网

Jquery 从字符串中提取GPS坐标

Jquery 从字符串中提取GPS坐标,jquery,Jquery,我正在使用在我的网页上显示地图。当用户移动标记时,我希望获得新的lat/lng坐标并存储它们 为了获得纬度/液化天然气坐标,我使用了一个函数: marker.getLatLng() 返回以下内容: LatLng(51.5096, -0.20256) 这很好,但我希望坐标在两个变量中分开,如下所示: var lat = 51.5096; var lng = -0.20256; 如何在Jquery中分离它们?我想简单地删除第一次出现的LatLng(,然后删除最后一次出现的),然后用逗号拆分字符

我正在使用在我的网页上显示地图。当用户移动标记时,我希望获得新的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();

你的方式不会太过分,处理字符串也很正常。我看不出有什么问题。不管怎样,如果你想做一些更奇特的事情,而不是更好的事情,这里有一个解决方案:

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并计算字符串

,您的方法不会过分,并且对于处理字符串来说是完全正常的。我看不出有什么问题。不管怎样,如果你想做一些更奇特的事情,而不是更好的事情,这里有一个解决方案:

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并计算字符串,请为此使用regex-

var coordArray = "LatLng(51.5096, -0.20256)".match(/LatLng\(([^,]*)\,\s([^,]*)\)/),
    lat = coordArray[1],
    long = coordArray[2];
为此使用正则表达式-

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

如果字符串没有发生变化,但保持不变,那么拆分它实际上不是一个坏主意,通过使用
shift()
pop()
可以在一行中完成所有操作:

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

如果字符串没有发生变化,但保持不变,那么拆分它实际上不是一个坏主意,通过使用
shift()
pop()
可以在一行中完成所有操作:

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

为什么这样做会过分呢
str.split('(').pop().split(')).shift().split(',')
@adeneo,你能不能把它作为一个答案添加进去。事实上,我已经采纳了你的建议,我很乐意接受你的建议。当我说“overkill”时,我的意思是我的拆分方法是overkill,因为它在4行上。你的看起来没有我的粗,而且都在一条线上,所以我用了它。我还学习了弹跳和移动,这很好。我想这就是我在舞池里应该做的。我在问题的底部添加了我决定使用的内容。谢谢,很高兴它成功了,我添加了一个答案!为什么这样做会过分呢
str.split('(').pop().split(')).shift().split(',')
@adeneo,你能不能把它作为一个答案添加进去。事实上,我已经采纳了你的建议,我很乐意接受你的建议。当我说“overkill”时,我的意思是我的拆分方法是overkill,因为它在4行上。你的看起来没有我的粗,而且都在一条线上,所以我用了它。我还学习了弹跳和移动,这很好。我想这就是我在舞池里应该做的。我在问题的底部添加了我决定使用的内容。谢谢,很高兴它成功了,我添加了一个答案!是 啊我也在想这个。Eval和RegExp很昂贵,我想最终,普通的字符串函数是最昂贵的best@hRvoed,谢谢你们两位的努力。我想你是对的,Regex和Eval比字符串函数更昂贵,这就是为什么我同意Adeneo的建议,使用Pop和Shift,都在一行上。是的!我也在想这个。Eval和RegExp很昂贵,我想最终,普通的字符串函数是最昂贵的best@hRvoed,谢谢你们两位的努力。关于Regex和Eval比字符串函数更昂贵,我想你是对的,这就是为什么我同意Adeneo的建议,使用Pop和Shift,全部在一行中。谢谢你的努力。关于Regex和Eval比字符串函数更昂贵,我想你是对的,这就是为什么我同意Adeneo的建议,使用Pop和Shift,全部在一行中。谢谢你的努力。关于Regex和Eval比字符串函数更昂贵,我想你是对的,这就是为什么我同意Adeneo的建议,使用Pop和Shift,都在一行上。