javascript - 如何从 Google map url 获取准确的 lat lng

标签 javascript regex google-maps url substring

This is an example of google map url: https://www.google.com.kh/maps/place/Photo+Cafe/@11.5209012,104.943248,17z/data=!3m1!4b1!4m5!3m4!1s0x310957360e265763:0x4a3989b09e7ae9c7!8m2!3d11.520896!4d104.945442?hl=en

我搜索了有关谷歌地图正则表达式的信息,发现了这篇文章:http://www.regexpal.com/93657

在上面的链接中,它可以工作,但我从网址获得的 lat lng 不是正确的。

/@11.5209012,104.943248,17z

我认为它来自 map 的中心,因为当我移动 map 时,网址也发生了变化。但对于数据参数:

/data=!3m1!4b1!4m5!3m4!1s0x310957360e265763:0x4a3989b09e7ae9c7!8m2!3d11.520896!4d104.945442?hl=en

11.520896, 104.945442

我已经复制了数据参数中的数字,这正是我想要的位置。

那么我如何通过正则表达式从示例谷歌地图网址中获取这个数字 11.520896, 104.945442 或者是否有更好的方法来获取 map 的正确位置?

谢谢

最佳答案

编辑:哎呀,必须使用带有 js 的捕获组... Pattern Demo/Breakdown

var regEx = /![34]d(-?[\d\.]+)/g;
var data  = "/data=!3m1!4b1!4m5!3m4!1s0x310957360e265763:0x4a3989b09e7ae9c7!8m2!3d11.520896!4d104.945442?hl=en";
var match = regEx.exec(data);

while(match !== null) {
    console.log(match[1]);
    match = regEx.exec(data);
}

关于javascript - 如何从 Google map url 获取准确的 lat lng,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44192904/

相关文章:

javascript - 为什么一些有效的正则表达式不能与 html5 模式属性一起使用?

javascript - 当我单击链接时如何使用 javascript 在 css 中更改图像中的选定颜色

Javascript 选择复选框选中计数为 "name"

javascript - 如何在 Markdown 中使用 Github 按钮 (README.md)

google-maps - 是否可以将 map 中可拖动标记的纬度和经度(使用 javascript)获取到 HTML 表单中?

.net - 匹配短语的正则表达式,接受最少的字符

javascript - 如何捕获带有可选数量的字母/数字后跟可选逗号的组?

JavaScript - 在不影响索引的情况下将元素插入数组?

java - 如何在特定半径的android studio中接收地址列表?

api - 谷歌地图API获取国家和城市