纬度经度 - PHP:如何使用与一组坐标的距离创建地理围栏(边界框)


latitude longitude - PHP: How to create a Geo-Fence(bounding Box) using the Distance from a set of Coords

我将如何使用纬度和纬度以及距离创建地理围栏(边界框)的点。

我有中心点的纬度和纬度我有地理围栏距离。

围绕这些多个点创建地理围栏的逻辑是什么?

感谢您的任何帮助。

1 将中心纬度/纬度转换为笛卡尔 (x,y) 单位米。
然后你做你在学校学到的所有几何:

2 使用极坐标公式创建正方形的一个角点

phi = 45 * TO_RADIANS;
corner.x = tcenter.x + r * sin(phi);
corner.y = tcenter.y + r * cos(phi);

其中 r 是边界框正方形的半对角线的长度(以米为单位)

使用 phi =(90*i + 45) 对其他点执行相同的操作,i= 0..3

3 个使用逆变换将角 (x/y) 变换回纬度/纬度

如果你有一个纬度/纬度点和一个距离,并且你想找到其他纬度/纬度点,这称为方位范围问题。 请参阅网站 http://www.movable-type.co.uk/scripts/latlong.html 的给定距离和起点方位角部分

如果您希望盒子(围栏)平行于赤道,那么盒子东北角的方位角将为 45 度(不要忘记在使用方程之前转换为弧度)。 然后添加 90 度以获得下一个角点,直到您完成所有 4 个点。