javascript - 使用 Google Maps API V3 计算当前位置和不同位置之间的距离

标签 javascript html google-maps-api-3 geolocation

我正在尝试计算我的位置与其他位置之间的距离,但我得到的只是 NaN。我很确定我将代码放在脚本中的错误位置。有人可以帮我解决这个问题吗?

<!DOCTYPE html>
<html>
<head>
    <script src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script>
</head>
<body>
    <p id="demo"></p>
    <button onclick="getLocation()" id="demo">get current location</button>
    <button onclick="console.log(distance)">get ditance from current location to other location</button>

    <script>
        var lat;
        var longt;
        var latLngA = new google.maps.LatLng(lat, longt);
        var latLngB = new google.maps.LatLng(40.778721618334295, -73.96648406982422);
        var distance = google.maps.geometry.spherical.computeDistanceBetween(latLngA, latLngB);

        var x=document.getElementById("demo");

        function getLocation(){
            if (navigator.geolocation){
                navigator.geolocation.getCurrentPosition(showPosition);
            }
            else{
                x.innerHTML="Geolocation is not supported by this browser.";}
            }

        function showPosition(position){
            lat = position.coords.latitude;
            longt = position.coords.longitude;
            x.innerHTML="Latitude: " + lat + "<br>Longitude: " + longt; 
        }
    </script>
</body>
</html>

最佳答案

使用 libraries=geometry 的简化脚本

function getLocation() {
  navigator.geolocation.getCurrentPosition(
            function(position) {
                var latLngA = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
                var latLngB = new google.maps.LatLng(40.778721618334295, -73.96648406982422);
                var distance = google.maps.geometry.spherical.computeDistanceBetween(latLngA, latLngB);
                alert(distance);//In metres
            },
            function() {
                alert("geolocation not supported!!");
            }
    );
}

关于javascript - 使用 Google Maps API V3 计算当前位置和不同位置之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111124/

相关文章:

javascript - parseFloat 返回 NaN javascript 数字

javascript - 如果 .parent().hasClass 那么 .parent().toggleClass

javascript - 带有谷歌地图的 Backbone.js - 这个问题和听众

需要库的 JavaScript

javascript - Jquery - 在哪里可以找到图像渐变器/所有其他图像淡出?

javascript - Hook 调用无效。 Hooks只能在内部调用

javascript - Mootools 期刊问题

html - 给定一个容器中的图像大小的 div 高度,flexbox 可以自动计算第二个 div 高度来填充容器吗?

html - 如何使用 Bootstrap 使谷歌地图全宽?

javascript - 如何将信息窗口添加到多边形