2015-09-14 49 views
0

如何從mapCenter()獲取地圖的開始/結束位置的距離(單位爲千米)使用谷歌地圖Javascript?有沒有辦法做到這一點?從地圖中心到地圖的開始/結束位置的距離(單位爲公里) - Google Maps Javascript

+0

直線距離 - 見http://stackoverflow.com/questions/1502590/calculate-distance-between-two-points-in-google- maps-v3 –

+0

我只有mapCenter()lat,lng(** say ** p1)。我怎樣才能在地圖上獲得左開始/右端經緯度,lng(**說** p2)? –

+0

這將是https://developers.google.com/maps/documentation/javascript/reference?hl=en - 'getBounds()'(剛好在'getCenter()'之上 - 我猜你知道) –

回答

2

你可能尋找一個getBounds function

返回當前視口的緯度/經度範圍。如果世界上有多個 副本可見,則邊界的範圍爲-180 至180度(含)。如果地圖尚未初始化(即 mapType仍爲空),或未設置中心和縮放,則 結果爲空或未定義。

然後,您可以利用Geometry Library特別是google.maps.geometry.spherical.computeDistanceBetween函數來計算兩點之間的距離(默認以米爲單位)。

function initialize() { 
 
    var center = new google.maps.LatLng(55.755327, 37.622166); 
 

 
    var map = new google.maps.Map(document.getElementById("map"), { 
 
     zoom: 12, 
 
     center: center, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 

 

 
    google.maps.event.addListener(map, 'bounds_changed', function() { 
 
     var bounds = map.getBounds(); 
 
     var start = bounds.getNorthEast(); 
 
     var end = bounds.getSouthWest(); 
 
     var distStart = google.maps.geometry.spherical.computeDistanceBetween (center, start)/1000.0; 
 
     var distEnd = google.maps.geometry.spherical.computeDistanceBetween (center, end)/1000.0; 
 
     
 

 
     document.getElementById('output').innerHTML += 'Distiance from center to start:' + distStart; 
 
     document.getElementById('output').innerHTML += 'Distiance from center to end:' + distEnd + '<br/>'; 
 

 
    }); 
 
} 
 

 
google.maps.event.addDomListener(window, 'load', initialize);
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=geometry"></script> 
 
<div id="map" style="width: 500px; height: 350px;"></div> 
 
<div id='output'/>

+0

我檢查了你的代碼,它的工作正常。但是我使用了''。如果我使用幾何替換庫,則位置API不起作用。如何解決這個問題? –

+1

您只需加載'places'和'geometry'庫:https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=geometry,places 欲瞭解更多詳情,請參見[Google Maps Javascript API](https://developers.google.com/maps/documentation/javascript/libraries)文檔 –

+1

我使用** libraries = geometry,places **加載了這兩個文件。現在都很好。非常感謝您的時間 –