google maps 計算距離

方法一:

  1. var marker1 = new google.maps.Marker({   
  2.     position: new google.maps.LatLng("31.95678""177.898673"),   
  3.     map: map,   
  4.     title:"old"  
  5. });   
  6. var marker2 = new google.maps.Marker({   
  7.     position: new google.maps.LatLng("31.45678""177.098673"),   
  8.     map: map,   
  9.     title:"new"  
  10. });  

計算距離

  1. var meters = google.maps.geometry.spherical.computeDistanceBetween(marker1.getPosition(), marker2.getPosition());   
  2. document.getElementById("distance").innerText = meters+"公尺";   
  3.   
  4. 方法说明:computeDistanceBetween(from:LatLng, to:LatLng, radius?:number) 公尺 。  


方法二:

  1. var EARTH_RADIUS = 6371;//地球半徑6371km   
  2. function rad(d)   
  3. {   
  4.     return d * Math.PI/ 180.0;   
  5. }   
  6.   
  7. function getDistance(lat1, lng1, lat2, lng2)   
  8. {   
  9.     var radLat1 = rad(lat1);   
  10.     var radLat2 = rad(lat2);   
  11.     var a = radLat1 - radLat2;   
  12.     var b = rad(lng1) - rad(lng2);   
  13.     var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +   
  14.     Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));   
  15.     s = s * EARTH_RADIUS;   
  16.     s = Math.round(s * 10000) / 10000;   
  17.     return s;   
  18. }  


  1. var distance = getDistance(marker1.getPosition().lat(), marker1.getPosition().lng(), marker2.getPosition().lat(), marker2.getPosition().lng());  

留言