gpt4 book ai didi

mysql - 获取多边形的中心和最远点以在mysql中按半径扩展区域

转载 作者:可可西里 更新时间:2023-11-01 09:03:37 26 4
gpt4 key购买 nike

因为我的另一个问题没有成功( How to extend polygon by a certain distance in PHP/Mysql? ),我想找到一个更简单的解决方案。

我有一个位置表(由 lat 和 lng 定义)和一个位置表(存储为几何的多边形)。我需要的是在多边形+一定半径(例如1/4英里)内搜索mysql中的记录。

有获取多边形中心点的函数ST_Centroid,但是如何获取中心点到最远点的距离,从而得到圆的外延半径?

enter image description here

最佳答案

圆是扩展多边形最简单的解决方案,但聊胜于无。

这是获取多边形最远点的计算。 $polygon$centroid 从数据库中获取(在 mysql 中:ST_AsText(polygon), ST_AsText(ST_Centroid(polygon)))并转换为数组。

function get_max_point ($polygon,$centroid) {
foreach ($polygon AS $point) {
$distance = (sin(deg2rad($centroid['lat'])) * sin(deg2rad($point['lat']))) + (cos(deg2rad($centroid['lat'])) * cos(deg2rad($point['lat'])) * cos(deg2rad($centroid['lng'] - $point['lng'])));
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.152;
if($distance>$distance_max) $distance_max=$distance;
}
return (round($distance_max,2));
}

关于mysql - 获取多边形的中心和最远点以在mysql中按半径扩展区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35872588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com