一尘不染

使用PHP和Google Maps Api计算2个邮政编码之间的距离(英国)

php

Hay,我想知道如何使用PHP和Google Maps Api计算出两个邮政编码之间的距离。

任何人都有任何想法或示例链接。


阅读 373

收藏
2020-05-26

共1个答案

一尘不染

假设您要查找地理距离,首先需要使用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

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的限制。

2020-05-26