首页 文章

如何从Google Map网址获取精确的lat lng

提问于
浏览
1

这是谷歌 Map 网址的一个示例:https://www.google.com.kh/maps/place/Photo Cafe / @ 11.5209012,104.943248,17z / data =!3m1!4b1!4m5!3m4!1s0x310957360e265763:0x4a3989b09e7ae9c7 !8平方米!3d11.520896!4d104.945442?HL = EN

我搜索了谷歌 Map 正则表达式,发现这篇文章: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 网址?还是有更好的方法来获得正确的 Map 位置?

谢谢

1 回答

  • 1

    编辑:哎呀,必须使用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);
    }
    

相关问题