0

2 点間の距離を計算する必要があるプロジェクトに取り組んでいます。distancefrom 関数を使用しました。警告すると、結果は正しいです。ただし、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 で 2 つの座標間の (直線) 距離を計算するには、ジオメトリ ライブラリの computeDistanceBetweenメソッドを使用します。

于 2013-09-25T00:15:54.240 に答える