鉴于邮政编码,并使用谷歌地图在PHP中找到10英里最近的驾驶距离邮政编码

时间:2016-03-01 11:20:08

标签: php google-maps

鉴于邮政编码,并使用谷歌地图在PHP中找到最近的行车距离邮政编码。可能吗。如果是,那么如何计算任何链接的想法。这对我来说太复杂了。

1 个答案:

答案 0 :(得分:0)

不完全是,您需要提供比邮政编码更准确的坐标代码,以便计算距离。我建议您使用此community protected post中提到的地点的地址。

一旦你得到两个坐标就需要计算距离,你应该使用一个名为 hasrsine 的公式,这个公式是球形元素(如地球)。我用于此的功能是:

function get_distance ($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo)
{
  $earthRadius = 6371;
  // Convert from degrees to radians
  $latFrom = deg2rad($latitudeFrom);
  $lonFrom = deg2rad($longitudeFrom);
  $latTo = deg2rad($latitudeTo);
  $lonTo = deg2rad($longitudeTo);
  // It applies the formula
  $latDelta = $latTo - $latFrom;
  $lonDelta = $lonTo - $lonFrom;
  $angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
    cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));

  return $angle * $earthRadius;
}  

如果你需要的是模拟行驶距离,谷歌地图API可以通过一个简单的请求为你提供:

https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=YOUR_ORIGIN&destinations=YOUR_DESTINATION&key=YOUR_API_KEY  

无论如何,有很多参数可以更好地转到API并为您构建最佳参数。

希望这有帮助