【问题标题】:PHP: How to create a Geo-Fence(bounding Box) using the Distance from a set of CoordsPHP:如何使用与一组坐标的距离创建地理围栏(边界框)
【发布时间】:2013-01-09 06:29:10
【问题描述】:

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

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

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

感谢您的帮助。

【问题讨论】:

  • 这些值是否来自地理数据库?
  • 不,但我现在正在调查。它们存储在标准的 MYSQL 数据库中
  • Google Haversine 或 Vincenty,或在 SO 上搜索此问题的先前答案

标签: php latitude-longitude geofencing coords


【解决方案1】:

1 以米为单位将中心 lat / lon 转换为笛卡尔 (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) 转换回纬度/经度

【讨论】:

    【解决方案2】:

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

    上的给定距离和方位角的目标点部分

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

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2014-03-24
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多