Hay,我想知道如何使用PHP和Google Maps Api计算出两个邮政编码之间的距离。
任何人都有任何想法或示例链接。
假设您要查找地理距离,首先需要使用Google Maps服务器端地理编码服务获取两个邮政编码的纬度和经度,如以下示例所示:
$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
然后,您可以使用如下所示的大圆距离实现来计算两个邮政编码的坐标之间的距离:
请注意,服务器端地理编码服务只能与在Google地图上显示结果结合使用;Google Maps API服务条款许可限制禁止对结果进行地理编码而不在地图上显示结果。
更新:
如果您是在寻找行驶距离而不是地理距离,请注意,目前尚无记录和批准的方法可通过服务器端的HTTP请求访问Google Maps Directions API。
但是,以下是未记录的返回JSON输出的方法:
http://maps.google.com/maps/nav?q=from:London%20to:Dover
这将返回驾驶方向以及JSON格式的总驾驶距离:"meters":122977。
"meters":122977
q参数的格式应为from:xxx%20to:yyy。将xxx和yyy分别替换为开始和目标。您可以使用纬度和经度坐标来代替完整地址:
q
from:xxx%20to:yyy
http://maps.google.com/maps/nav?q=from:51.519894,-0.105667%20to:51.129079,1.306925
请注意,这不仅没有记录,而且还可能违反了Google Maps API条款 10.1和10.5的限制。