PHP 无序经纬度极角排序
时间: 2023-02-08 20:22:50 浏览: 163
php堆排序(算法导论)
在 PHP 中,可以使用 usort() 函数进行无序经纬度极角排序。首先需要定义一个自定义比较函数,该函数需要返回两个经纬度之间的极角差值,然后将该函数作为参数传递给 usort() 函数。usort() 函数会根据这个自定义函数对数组中的元素进行排序。
示例代码如下:
```
$points = array(
array("lat" => 25.774, "lng" => -80.190),
array("lat" => 18.466, "lng" => -66.118),
array("lat" => 32.321, "lng" => -64.757),
array("lat" => 25.774, "lng" => -80.190)
);
function compareLatLng($a, $b) {
$a = deg2rad($a["lat"]) * cos(deg2rad($a["lng"]));
$b = deg2rad($b["lat"]) * cos(deg2rad($b["lng"]));
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
usort($points, "compareLatLng");
```
这样就可以得到按照极角排序的点集了。
阅读全文