【问题标题】:How to get Longitude and Latitude from Google Map URL [closed]如何从 Google Map URL 获取经度和纬度 [关闭]
【发布时间】:2017-05-07 23:55:43
【问题描述】:

我想从 Google Map URL 中提取经度和纬度 这是否可以使用 Jquery 来提取它们 喜欢

https://www.google.com/maps/place/Arctic+Pixel+Digital+Solutions/@63.6741553,-164.9587713,4z/data=!3m1!4b1!4m5!3m4!1s0x5133b2ed09c706b9:0x66deacb5f48c5d57!8m2!3d64.751111!4d-147.3494442

经度和纬度是 登录 : 63.6741553 纬度:-164.9587713

我想用 jquery 提取它们

【问题讨论】:

  • 在javascript中使用split w3schools.com/jsref/jsref_split.asp
  • @prakashtank 你能帮我用吗?
  • 为什么不使用 API 而不是破解 URL 字符串?
  • @hammad,正如 prakash tank 下面所说,我使用 javascript split() 为您准备好了代码。

标签: javascript php jquery html google-maps


【解决方案1】:

查看此链接,您可以了解如何从 Google Map URL 中提取经度和纬度

https://github.com/wimagguc/jquery-latitude-longitude-picker-gmaps/blob/master/demo.html

【讨论】:

  • 虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
【解决方案2】:
var url="https://www.google.com/maps/place/Arctic+Pixel+Digital+Solutions/@63.6741553,-164.9587713,4z/data=!3m1!4b1!4m5!3m4!1s0x5133b2ed09c706b9:0x66deacb5f48c5d57!8m2!3d64.751111!4d-147.3494442";

var longlat = /\/\@(.*),(.*),/.exec(url);

var lng = longlat[1]; //63.6741553
var lat = longlat[2]; //-164.9587713

Live example

编辑:

Example with inputs

【讨论】:

  • 谢谢,但是我在 Javascript 方面不是很专业,你能帮我在输入字段中显示这个吗?
  • 当然,看看我的编辑(example with inputs 链接)
  • 非常感谢。这可以从输入字段自动获取网址吗?就像带有 Google 地图 url 的输入字段。
  • 自动获取网址?你能详细说明一下吗?
【解决方案3】:
var url = "https://www.google.com/maps/place/Arctic+Pixel+Digital+Solutions/@63.6741553,-164.9587713,4z/data=!3m1!4b1!4m5!3m4!1s0x5133b2ed09c706b9:0x66deacb5f48c5d57!8m2!3d64.751111!4d-147.3494442";
var regex = new RegExp('@(.*),(.*),');
var lat_long_match = url.match(regex);
var lat = lat_long_match[1];
var long = lat_long_match[2];

根据评论,我认为这正是您正在寻找的:

<script>
    $(function() {
        $('#btn').on('click', function() {
            var url = $('input[name=googlemapurl]').val();
            var regex = new RegExp('@(.*),(.*),');
            var lat_long_match = url.match(regex);
            var lat = lat_long_match[1];
            var long = lat_long_match[2];

            $('input[name=latitude]').val(lat);
            $('input[name=longitude]').val(long);
        });
    });
</script>

<p><input type="text" class="form-control" placeholder="Google Map Link" name="googlemapurl"/></p>
<p><input type="text" class="form-control" placeholder="GPS Latitude" name="latitude" /></p>
<p><input type="text" class="form-control" placeholder="GPS Longitude" name="longitude" /></p>
<p><button id="btn">Extract</button></p>

【讨论】:

  • 如何使用自动获取 url
  • ' '
  • 您的意思是您将 URL 传递给 googlemapurl 输入字段,当您单击按钮时,您将在相应的输入字段中获得经度和纬度值。对吗?
  • 是的,正是我需要这个
  • 我已经更新了我的答案。你可以去看看。
【解决方案4】:

试试这个:

var URL =  "https://www.google.com/maps/place/Arctic+Pixel+Digital+Solutions/@63.6741553,-164.9587713,4z/data=!3m1!4b1!4m5!3m4!1s0x5133b2ed09c706b9:0x66deacb5f48c5d57!8m2!3d64.751111!4d-147.3494442";

var splitUrl = URL.split('!3d');
var latLong = splitUrl[splitUrl.length-1].split('!4d');
var longitude;

if (latLong.indexOf('?') !== -1) {
    longitude = latLong[1].split('\\?')[0];
} else {
    longitude = latLong[1];
}
var latitude = latLong[0];

console.log(latitude); //64.751111
console.log(longitude); //-147.3494442

我正在抓取 URL 末尾的“!3d”和“!4d”纬度和经度,因为它们比“@”后面的更准确。

以这个网址为例(GooglePlex): https://www.google.com/maps/place/Googleplex/@37.4219999,-122.0862462,17z/data=!3m1!4b1!4m5!3m4!1s0x808fba02425dad8f:0x6c296c66619367e0!8m2!3d37.4219999!4d-122.0840575

“@”后面的经纬度为: 纬度:(37.4219999) 长:(-122.0862462) 而且它们并不准确。

但是,URL 末尾的内容是: 纬度:(37.4219999) 长:(-122.0840575) 这些是准确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2017-05-11
    • 2015-02-26
    相关资源
    最近更新 更多