【问题标题】:Geographic coordinate system intersection地理坐标系交点
【发布时间】:2011-10-13 10:34:24
【问题描述】:

我有一个程序接受三对或更多对经度和纬度的用户输入。我试图通过用输入坐标构造的多边形在表格中找到所有相交/有界的四边形坐标(每个四边形有 4 对经度和纬度)。

它需要覆盖整个地球(两极)并尽可能精确。

我尝试将其转换为球坐标(使用固定高度),但不知道下一步该做什么。

我很确定以前有人这样做过,但我无法通过谷歌搜索找到它。

我正在使用 Java,但 Python 也可以。

我找到了一种方法来检查多边形是否相交(如果它们是笛卡尔坐标)。

任何帮助将不胜感激!

【问题讨论】:

  • 你看过spherical trigonometry吗?
  • 请注意,球体上的多边形并没有定义内部和外部 - 它只是将球体分成两部分。您需要更多信息来确定哪个部分在“内部”。

标签: java geolocation geometry geospatial computational-geometry


【解决方案1】:

如果点在数据库中,您可以对此使用空间索引。在所有多边形上进行蛮力相交非常容易,但这需要很长时间。 Mysql、Oracle 和 SQLServer 都具有空间扩展,允许您创建空间索引并包含针对它们的函数。如果您不介意数据库负载,这可能是最简单的方法。

http://dev.mysql.com/doc/refman/5.5/en/spatial-extensions.html

如果您想在 Java 中完成这一切,那么您可能需要寻找 R-tree 实现。这是一种使用矩形创建类似 B-tree 的结构的方法,并且可以更轻松地缩小您需要使用哪些多边形进行 intesect 检查。

【讨论】:

  • +1。 collision-detection 的变体也可以。
  • 那是平面几何。我认为您不能在球体表面上使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多