2013-09-24 185 views
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> 
+0

一個快速的Google搜索提供了這個頁面,http://www.movable-type.co.uk/scripts/latlong.html - 它具有JavaScript變量和數學背後的如何計算距離和方位。 – Enijar

+1

請詳細說明「它不起作用」。什麼都沒發生?獲得意外的結果?發生錯誤?其他? Ähh..實際上把'p'放在'script'前面。 – Teemu

回答

0

你的腳本,包括谷歌地圖JavaScript API V3:

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

該API沒有google.maps.LatLng物件的distanceFrom方法。要計算v3 API中兩個座標之間的(直線)距離,請使用geometry librarycomputeDistanceBetween方法。

+0

非常感謝,非常感謝! – user2804616

相關問題