【问题标题】:How to get the exact lat lng from Google Map url如何从 Google Map url 获取准确的 lat lng
【发布时间】:2017-10-26 20:03:38
【问题描述】:

这是一个谷歌地图网址的例子: 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

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

/@11.5209012,104.943248,17z

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

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

11.520896、104.945442

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

那么我怎样才能通过正则表达式从示例谷歌地图 url 中获得这个数字 11.520896、104.945442 或者有更好的方法来获得地图的正确位置?

谢谢

【问题讨论】:

    标签: javascript regex google-maps url substring


    【解决方案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);
    }

    【讨论】:

    • 它现在可以工作了,谢谢我的朋友 :) 你拯救了我的一天。
    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多