【发布时间】:2019-11-12 10:13:02
【问题描述】:
我在地球表面有一组n 地理坐标,我想计算一个边界框(找到最东、最西、最北和最南的位置)而不后退到用户输入(程序没有 UI)。天真的方法是“完成纬度的最大值和最小值,经度的最大值和最小值” - 但是当集合跨越第 180 条子午线时,这显然会返回次优结果(参见例如斐济的类似情况:https://www.openstreetmap.org/relation/571747#map=2/-16.6/0.0 不应该缩小到整个星球,因为两半实际上是相邻的)。
这是在多种解决方案中承认,例如在 Algorithm for determining minimum bounding rectangle for collection of latitude/longitude coordinates 中,但没有解决。
什么没用:
- 检查其他人如何做到这一点(传单也有同样的问题,见上文)
- 枚举陷阱(例如“如果其中一个坐标接近 180 度子午线”)- 不适用于边界框穿过但不靠近 IDL 的点(例如日本和夏威夷)
- 遍历坐标并标记是否超过 180(取决于排序)
【问题讨论】:
-
我真的不需要任何特定编程语言的解决方案:因为这是一种空间算法,无论语言细节如何,都应该可以轻松计算。
标签: geospatial