有没有适用于Java的几何库?我正在寻找解决方案,以获取两个几何对象之间的交点。
JTS是您最好的免费开源选项。您在JTS中寻找的方法在这里。
就商业选项而言,您可以使用ESRI的Java JNI版本其ArcObjects库具有非常强大的几何库。 ESRI库的接口称为ITopologicalOperator。
如果您只想进行几何运算,则JTS是您最好的选择-它是一个出色的库,具有许多不同语言的端口。另一方面,如果您正在寻找整个GIS系统,该系统具有复杂的符号化、支持GIS工作流程和多用户编辑、打印等等,则我会开始查看ESRI库。
java.awt.geom
,它是JDK的一部分。java.awt.geom.Area
类,它允许您在两个Shape
之间执行交集操作。PathIterator
类,它返回形状路径的描述作为一系列线段。特别是要检查 FlatteningPathIterator
,它将任何曲线折叠成多条直线。一旦您的路径被减少到直线,计算交点将变得简单...尽管在形状包含曲线的情况下,这显然是一个近似值。JTS - Java Topology Suite - 是最好的。
http://www.vividsolutions.com/jts/jtshome.htm
它是免费的、快速的、强大的,并且可以处理退化交叉点。