【问题标题】:Get center and furthest point of polygon to extend area by radius in mysql获取多边形的中心和最远点以在mysql中按半径扩展区域
【发布时间】:2016-06-22 16:56:47
【问题描述】:
【问题讨论】:
标签:
mysql
geolocation
polygon
geo
【解决方案1】:
圆是扩展多边形最简单的解决方案,但总比没有好。
这是获取多边形最远点的计算方法。 $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));
}