0

我正在做一个项目,我需要计算两点之间的距离。我只是使用了距离函数。我只是好奇,当我警觉时,结果是正确的。但是,当我使用 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>
4

1 回答 1

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 中计算两个坐标之间的(直线)距离,请使用几何库 computeDistanceBetween方法。

于 2013-09-25T00:15:54.240 回答