rbu*_*hum 32
JTS是您最好的免费开源选项.您在JTS中寻找的方法就在这里
就商业选项而言,您拥有ESRI的Java JNI版本的ArcObjects库,它具有非常强大的几何库.ESRI库中的接口称为ITopologicalOperator
如果您要做的只是几何操作,JTS是您的最佳选择 - 它是一个出色的库,它有许多不同语言的端口.另一方面,如果您正在寻找具有复杂符号系统的整个GIS系统,支持GIS工作流程和多用户编辑,打印等,那么我将开始查看ESRI库.
您应该查看它的包java.awt.geom,它是JDK的一部分.
特别是检查java.awt.geom.Area类,它允许您在两个Shapes 之间执行交叉操作.
编辑
寻找交叉点是不平凡的,据我所知,因为你需要应用不同的算法,这取决于您要分析的形状.例如,对于两个圆之间的交点的算法给出这里,而算法计算两个Bezier曲线之间的intrsection是完全不同的(在这里).
编辑2
一个建议:您可以查看PathIterator类,它将形状路径的描述作为一系列段返回.特别是检查FlatteningPathIterator,它会将任何曲线折叠成多条直线.一旦你的路径已经被减少到直线,计算交点将是简单的...虽然显然这是在案件的近似您的形状包含曲线.
对于非GIS目的,我可能会建议使用javaGeom库.它使用大多数人从学校知道的欧几里德几何抽象.这个项目最近没有活动,但我发现它结构合理,易于使用.他们说它支持布尔操作,但从未测试过它们的工作情况.有一个功能丰富的测试应用程序,名为Euclid,由同一作者开发.您可以尝试使用它,但前提是您确定它会为您工作.
http://sourceforge.net/projects/geom-java/
| 归档时间: |
|
| 查看次数: |
41391 次 |
| 最近记录: |