PHP: 如何通过一组坐标的距离创建地理围栏(边界框)

3

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

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

如何逻辑上创建多个点周围的地理围栏?

非常感谢您的任何帮助。


这些值是不是来自启用地理位置的数据库? - Cups
不,但我目前正在研究这个问题。 它们存储在标准的MYSQL数据库中。 - user2010493
谷歌Haversine或Vincenty,或在此处搜索SO以获取先前的答案。 - Mark Baker
2个回答

0

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)转换回纬度/经度,使用反向转换


0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接