如何从Google Map URL获取经度和纬度

时间:2016-12-22 11:08:52

标签: javascript php jquery html google-maps

我想从Google地图网址中提取经度和纬度 是否可以使用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

提取它们

4 个答案:

答案 0 :(得分:1)

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 lon_lat_match = url.match(regex);
var lon = lon_lat_match[1];
var lat = lon_lat_match[2];

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

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

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

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

答案 1 :(得分:1)

试试这个:

&#13;
&#13;
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
&#13;
&#13;
&#13;

我抓住了&#34;!3d&#34;和&#34;!4d&#34; URL末尾的纬度和经度,因为它们比&#34; @&#34;之后的更准确。

以此网址为例(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

&#34; @&#34;之后的纬度和经度是: Lat:(37.4219999) 长:( - 122.0862462) 而且它们并不准确。

但是,URL末尾的那些是: Lat:(37.4219999) 长:( - 122.0840575) 这些都是准确的。

答案 2 :(得分:0)

查看此链接,您可以找到如何从Google地图网址中提取经度和纬度

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

答案 3 :(得分:0)

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