获取彼此接近的坐标

时间:2014-10-02 13:18:21

标签: php coordinates

我有大约15000个坐标。我想计算其中哪一个相距100米或更少。现在,我使用下面的代码来计算距离。虽然我有这么多坐标需要很长时间。

有没有办法提升表现?也许通过滤除几百米外的坐标,然后使用下面的函数更精确地计算距离。

  $earthRadius = 6371000;

  // convert from degrees to radians
  $latFrom = deg2rad($latitudeFrom);
  $lonFrom = deg2rad($longitudeFrom);
  $latTo = deg2rad($latitudeTo);
  $lonTo = deg2rad($longitudeTo);

  $lonDelta = $lonTo - $lonFrom;
  $a = pow(cos($latTo) * sin($lonDelta), 2) + pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
  $b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);

  $angle = atan2(sqrt($a), $b);

  return $angle * $earthRadius;

0 个答案:

没有答案