假设您要查找地理距离,首先需要使用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 preecho $result[1]; // accuracyecho $result[2]; // latitudeecho $result[3]; // longitude
然后,您可以使用如下所示的大圆距离实现来计算两个邮政编码的坐标之间的距离:
- Snipplr-计算PHP中两个坐标之间的距离
请注意,服务器端地理编码服务只能与在Google地图上显示结果结合使用;Google Maps
API服务条款许可限制禁止对结果进行地理编码而不在地图上显示结果。
更新:
如果您是在寻找行驶距离而不是地理距离,请注意,目前尚无记录和批准的方法可通过服务器端的HTTP请求访问Google Maps Directions API。
但是,以下是未记录的返回JSON输出的方法:
http://maps.google.com/maps/nav?q=from:London%20to:Dover
这将返回驾驶方向以及JSON格式的总驾驶距离:
"meters":122977。
q参数的格式应为
from:xxx%20to:yyy。将xxx和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的限制。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)