我正在尝试计算具有特定半径的正方形的边界,并且当正方形的中心已知时(经度,纬度)。但我遇到了麻烦。
我尝试从这里使用 hasrsine 公式:
但是当半径很大时,我会遇到麻烦。
目前找到1)。我使用的以弧度表示的纬度增量:
- radiusInMeters / EARTH_RADIUS_METERS
2)。我使用的弧度经度增量:
- 2.0 * | arcsin( |sin(radiusInMeters/(EARTH_RADIUS_METERS*2.0)) / |cos(latitudeStart)| | ) |
我从haversine公式得到的这些公式。
请有人指出我的确切通用计算公式,这对我的情况来说对大小距离都有好处。
另外,当半径超过经度-180˚/180˚或纬度-90˚/90˚时,应该如何处理?
更新
一些澄清。假设我停留在坐标为 (lon, lat) 的某个特定点,其中 lon 是 -113˚ 和 lat 50˚。
我想从数据库中查询某个感兴趣半径内的点。为此,我需要计算“正方形”的边界。(然后过滤掉不在有趣范围内的东西)。上面的公式在小距离上运行良好(假设'直到 100 公里(63 英里)。但是我从赤道点到两极的距离越多,我得到的舍入误差就越多。)
提前致谢