2012-03-18 44 views
2

我正在通過Google Maps API(版本3)開發應用程序。如何通過Google Maps Javascript API3獲得2點之間的距離?

我有2 google.maps.LatLng對象名爲loc1loc2

我如何計算他們之間的距離在說米?

我試過用這個question的各種技巧將緯度/經度測量轉換成米。但是,我質疑我的實施的可靠性。

我也嘗試過實現一個距離矩陣,但我認爲距離矩陣是很多工作只是爲了計算2點之間的距離。

謝謝!

+0

這有幫助嗎? http://stackoverflow.com/questions/1502590/calculate-distance-between-two-points-in-google-maps-v3 – vascop 2012-03-18 19:06:08

回答

9

聽起來很簡單,我建議幾何庫,

https://developers.google.com/maps/documentation/javascript/reference#spherical

computeDistanceBetween(from:LatLng, to:LatLng, radius?:number) 

從我的經驗,結果以米爲單位。請記住在標籤中添加可選的幾何庫

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

謝謝你,'computeDistanceBetween'可靠地工作。 – dangerChihuahua007 2012-03-19 02:23:05

1

計算兩點之間的距離基本上歸結爲畢達哥拉斯(平方和等)。然而,這並不適用於Lon(它是球體上的座標)。我所做的是將Lat值轉換爲平坦的本地地圖網格。然後我可以使用pythagoras來計算這些點之間的距離。我已經在Stack Overflow here上發佈了這個消息。這將有你需要的所有代碼。

+0

親愛的我。轉換爲(比如說)OSGB比使用正弦計算來獲得距離的工作量要大得多,正如幾何庫所做的那樣。使用幾何庫會使一切變得簡單 - 正弦波計算可能會非常棘手。 – 2012-03-18 20:12:27

+0

基本上我的觀點是,一旦你完成了你的轉換,一切都是簡單的三角形幾何。通常在繪圖應用程序中,無論如何都需要將座標轉換爲本地地圖網格。是的,我的解決方案不涉及幾何庫。 – 2012-03-21 19:33:51

1

你的問題有點模棱兩可。

我的意思是 - 當你說的距離,也意味着在一條直線上

  • 或行駛距離

    • 距離,
    • 或自行車距離,
    • 或步行距離。 這個問題的答案將決定你的實現。

    如果它是您需要的直線距離,那麼最好使用haversine實現。 否則,您需要向google方向服務請求方向,指定「運輸方式」。

  • +0

    Google的距離矩陣API應該有助於解決這個問題。它也考慮駕駛/步行距離。選中此鏈接https://developers.google.com/maps/documentation/distance-matrix/ – Sriram 2016-12-03 01:54:30

    相關問題