回答
假設你正在尋找geographic distance,首先你需要用Google Maps server-side geocoding services讓你的兩個郵政編碼的經度和緯度,如下面的例子:
$url = 'http://maps.google.com/maps/geo?q=EC3M,+UK&output=csv&sensor=false';
$data = @file_get_contents($url);
$result = explode(",", $data);
echo $result[0]; // status code
echo $result[1]; // accuracy
echo $result[2]; // latitude
echo $result[3]; // longitude
然後你就可以計算出座標之間的距離
:你的兩個郵政編碼使用 great-circle distance實現諸如以下的請注意,服務器端地理編碼服務只能與在Google地圖上顯示結果一起使用;地理編碼結果不會在地圖上顯示,這是Google Maps API Terms of Service License Restrictions禁止的。
UPDATE:
如果你正在尋找的行駛距離,而不是地理距離,注意,是目前通過訪問谷歌地圖路線API沒有記載和認可的方法服務器端的HTTP請求。
儘管如此,它返回一個JSON輸出的無證方法如下:
http://maps.google.com/maps/nav?q=from:London%20to:Dover
這將返回行車路線,以JSON格式的總行駛距離沿:"meters":122977
。
參數q
的格式應爲from:xxx%20to:yyy
。將xxx和yyy分別替換爲start和destination。您可以使用緯度和經度座標,而不是詳細地址:
http://maps.google.com/maps/nav?q=from:51.519894,-0.105667%20to:51.129079,1.306925
注意,這不僅是無證的,但它也可能會違反限制10.1和Google Maps API Terms and Conditions的10.5。
您還可以檢查出下面的相關文章有意思:
看看郵件列表在這裏:
http://groups.google.com/group/Google-Maps-API/browse_thread/thread/71e6aa2c3de66127
一旦你決定你是否想要一條直線或駕駛距離,你可以很容易地計算出來。你不必使用PHP,但有一些例子。
看,這也:
的谷歌地圖API在JavaScript中,而不是PHP。要達到您想要的效果,請將2個郵政編碼轉換爲LatLang座標,並使用功能distanceFrom
查找它們之間的距離。
查看this article的一些示例代碼。
有反正我可以返回JSON數據?我打算做AJAX呼叫來計算兩個地方之間的駕駛距離。 – dotty 2010-02-19 12:27:16
你應該可以。來自Google API的數據已經採用JSON格式。只需將它發回PHP,或使用Javascript解析客戶端。 – 2010-02-20 09:45:41
不知道如果V3 API改變任何東西,但我一直在使用這個相當長一段時間,它仍然有效:
從,並分別表示爲緯度,經度(地址可能會工作; 我敢肯定,我嘗試過,但不記得了,我不得不座標反正)
$base_url = 'http://maps.googleapis.com/maps/api/directions/xml?sensor=false';
$xml = simplexml_load_file("$base_url&origin=$from&destination=$to");
$distance = (string)$xml->route->leg->distance->text;
$duration = (string)$xml->route->leg->duration->text
大廈丹尼爾的回答,您可以使用谷歌的Geocoding API拿到車,公共交通,步行和騎自行車的距離容易:
$postcode1='W1J0DB';
$postcode2='W23UW';
$result = array();
$url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=$postcode1&destinations=$postcode2&mode=bicycling&language=en-EN&sensor=false";
$data = @file_get_contents($url);
$result = json_decode($data, true);
print_r($result);
務必更換&模式=您的首選參數騎自行車:
- &模式=行駛
- &模式=騎自行車
- &模式=運輸
- &模式=行走
- 1. 谷歌地圖API使用英國城鎮或郵政編碼
- 2. 谷歌地圖API v3 - 和地理編碼(英國郵政編碼)
- 3. 英國郵政編碼之間距離的Python模塊
- 4. 谷歌地圖縣和郵政編碼國界的Javascript API 3
- 5. 根據英國郵政編碼生成谷歌地圖
- 6. 英國谷歌地圖郵政編碼邊界覆蓋
- 7. 使用Google Maps API的兩個郵政編碼和Excel中的一組郵政編碼之間的距離
- 8. 使用javascript計算兩個郵政編碼之間的距離
- 9. 谷歌地圖+谷歌本地搜索從英國郵政編碼
- 10. 使用谷歌地圖api工作兩點之間的距離?
- 11. 用於計算英國郵政編碼間距的圖書館
- 12. 谷歌地圖API - V3兩個多邊形之間的距離
- 13. 確定兩個郵政編碼之間的距離(替代mapdist)
- 14. 計算兩個郵政編碼之間的距離
- 15. 谷歌地圖和美國郵政編碼
- 16. NUTS地區英國的郵政編碼
- 17. 兩點之間的距離谷歌地圖a是undefined api v3
- 18. 發現距離使用郵政編碼在谷歌
- 19. 如何實現從距離給定的郵政編碼中找到最近的英國郵政編碼?
- 20. 谷歌地圖的郵政編碼
- 21. 谷歌地圖API是無法找到郵政編碼22222
- 22. 如何計算兩地之間的距離(使用郵政編碼+ Google地圖+ PHP)?
- 23. 谷歌地圖距離API
- 24. 谷歌地圖與英國郵政編碼多邊形,顏色爲Choropleth/Themantic map?
- 25. 如何找到位置,谷歌地圖使用郵政編碼
- 26. 郵政編碼谷歌地圖返回
- 27. 谷歌地圖 - 郵政編碼陰謀
- 28. 英國郵政編碼的地理編碼經度和緯度?
- 29. 試圖找到兩個LatLng對象之間的距離使用谷歌地圖api和javascript
- 30. 使用imap的郵政編碼距離
這是如何做到這一點的一個很好的解釋。但請注意,由於您對英國有特別要求,因此Google地理位置對英國郵政編碼來說並不準確。儘管如此,這可能是可以的,取決於你的需要。 – MarkJ 2010-02-20 11:37:01
@Mark:感謝您分享有關英國郵政編碼準確性的信息。 – 2010-02-20 12:24:26
這存在︰https://developers.google.com/maps/documentation/distancematrix/ – malix 2014-05-01 12:55:29