20

我正在寻找一个能够对纬度/经度数据集执行空间计算的 Java 库。以下是我正在寻找的一些功能:

  • 计算两点之间的大圆距离
  • 确定一个点是否位于一个简单的封闭多边形内,其中多边形由点的有序列表定义
  • 确定点“A”和点“B”之间的线是否与简单的封闭多边形相交,其中多边形由点的有序列表定义
  • 确定点“A”是否在点“B”的某个半径内

不是在寻找什么:

  • 想要一个依赖于数据库地理空间组件(例如 Oracle Spatial)并且不能独立运行的库。
  • 想要一个旨在生成图形/地图/等的库。我正在为现有应用程序构建一个分析模块,最终目标不是创建漂亮的图片。
  • 想要一个用于搜索大量空间数据的库。如果它也恰好这样做,那没关系,但我不会使用该功能。

该组织计划最终获得 Oracle Spatial 的许可(因此届时将涵盖空间搜索),但现在我需要在小型数据集上实现我上面提到的分析功能,而不依赖于数据库提供的空间支持。

4

5 回答 5

12

我相信GeoTools会满足您的要求。请注意,它确实具有制作图形/地图的功能,但它们可以很容易地不用。

于 2010-10-07T00:07:16.403 回答
5

有一个新的库Spatial4J似乎可以满足您的需求,它支持各种空间和形状

Spatial4j 是一个通用的空间/地理空间 ASL 许可的开源 Java 库 (...)

到目前为止我还没有使用过它,但是它README是完整的,并且存储库相当受欢迎,并且它可以在 maven 存储 库上找到当我最终在 repo 和这个问题上时,我一直在寻找这样的空间库。

于 2014-11-29T19:17:14.193 回答
1

Simplelatlng 为此提供了更简单的 API:

https://code.google.com/p/simplelatlng/wiki/GettingStarted

于 2014-02-08T21:11:25.807 回答
0

尽管您希望避免使用用于绘制地图的库,但我还是推荐OpenMap。该库的com.bbn.openmap.geo包可以完成您所要求的大部分(如果不是全部)的事情。

于 2010-10-07T00:07:13.393 回答
0

我使用 STRtree java 类通过 lat lng 数据和距离查询进行索引 https://locationtech.github.io/jts/javadoc/org/locationtech/jts/index/strtree/STRtree.html

于 2017-09-07T16:29:25.100 回答