2017-11-13 8 views
0

クリックしたエリアとconst lat locationの間の距離を計算したいと思います。Google maps API - クリックされたエリアとconstの場所との距離を計算します。

私はこれらの2つのコードを組み合わせたいと思っていますが、どういうわけか私はそれを行うことができません。あなただけの正しい場所に距離を警告するコードを移動する必要があるように見えます

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script> 

<script> 
var p1 = new google.maps.LatLng(45.463688, 9.18814); 
var p2 = HERE I WOULD LIKE TO HAVE A POSITION OF THE PLACED MARKER; 

alert(calcDistance(p1, p2)); 

//calculates distance between two points in km's 
function calcDistance(p1, p2) { 
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2)/1000).toFixed(2); 
} 
</script> 

google.maps.event.addListener(map, 'click', function(event){ 
placeMarker(event.latLng); 
}); 

function placeMarker(location) { 
var marker = new google.maps.Marker({ 
    position: location, 
    map: map, 
    draggable: true 
}); 
} 
+0

すべてのエラーメッセージを取得していますか? – Sathiyaraj

答えて

0

...

google.maps.event.addListener(map, 'click', function(event){ 
    placeMarker(event.latLng); 

    var p1 = new google.maps.LatLng(45.463688, 9.18814); 

    setTimeout(function() { 
     alert(calcDistance(p1, event.latLng)); 
    }, 500); 
}); 
+0

ありがとう、それは動作しますが、私はまずアラートを取得し、その後、私はそれを閉じると、私はマーカーを取得します。クリック直後にマーカーを取得してアラートを表示したいと思います。私はどうしたらいいですか? ご協力いただきありがとうございます! –

+0

おそらく単なるレンダリングの問題です。私はアラートの周りにタイムアウトをラップし、マーカー機能に発砲する時間を与えました。上記のコードの間隔が十分でない場合は、それを増やしてください。 – Archer

関連する問題