使用PHP和谷歌地图Api计算2个邮政编码之间的距离(英国)

dot*_*tty 17 php google-maps

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

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

Dan*_*llo 30

假设您正在寻找地理距离,首先您需要使用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
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用大圆距离实现来计算两个邮政编码坐标之间的距离,如下所示:

请注意,服务器端地理编码服务只能与在Google地图上显示结果一起使用; Google Maps API服务条款许可限制禁止在地图上显示地理编码结果.


更新:

如果您正在寻找行驶距离而不是地理距离,请注意目前没有经过记录和批准的方法可以通过服务器端的HTTP请求访问Google Maps Directions API.

然而,返回JSON输出的未记录方法如下:

http://maps.google.com/maps/nav?q=from:London%20to:Dover
Run Code Online (Sandbox Code Playgroud)

这将以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
Run Code Online (Sandbox Code Playgroud)

请注意,这不仅是未记录的,而且还可能违反Google Maps API条款和条件的限制10.1和10.5 .

您可能会对查看以下相关文章感兴趣: