无法计算谷歌地图中两点之间的距离

时间:2013-09-24 22:43:09

标签: javascript html api google-maps distance

我正在开展一个项目,我需要计算两点之间的距离。 我刚刚使用了距离函数。我很恐怖,当我提醒时,结果是正确的。但是,当我使用document.getElementById时,它不起作用。 我想知道这里是否有人可以帮助我弄清楚我的代码中发生了什么...... 非常感谢你!

<html>
<head>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
    google.maps.LatLng.prototype.distanceFrom = function(newLatLng) {
        if (newLatLng==undefined) return false;

        var dLat = (newLatLng.lat()-this.lat()) * Math.PI / 180;
        var dLon = (newLatLng.lng()-this.lng()) * Math.PI / 180;
        var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(this.lat() * Math.PI / 180 ) * Math.cos(newLatLng.lat() * Math.PI / 180 )* Math.sin(dLon/2) * Math.sin(dLon/2);
        return 6371000 * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
      }

</script>
</head>
<body>
<script>
var loc1 = new google.maps.LatLng(52.5773139, 1.3712427);
var loc2 = new google.maps.LatLng(52.4788314, 1.7577444);
alert (Math.round(loc1.distanceFrom(loc2)/10)/160 + 'mi');
document.getElementById("1").innerHTML=Math.round(loc1.distanceFrom(loc2)/10)/160 + 'mi';
</script>
        <p id="1">xyz
        </p>


        </body>
</html>

1 个答案:

答案 0 :(得分:0)

您的脚本包含Google Maps Javascript API v3:

<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>

该API没有google.maps.LatLng对象的distanceFrom方法。要计算v3 API中两个坐标之间的(直线)距离,请使用geometry library computeDistanceBetween方法。