JST空间分析工具包是一套JAVA API,提供一系列的空间数据分析操作。最近开发项目刚好需要用到,上网搜资料也少,就自己写下来记录一下。C++版本的拓扑分析开源工具叫:geos;.NET版本的拓扑分析开源工具叫:NTS。
1.下载
工具包下载地址:https://sourceforge.net/projects/jts-topo-suite/
2.学习资料
工具包里的官方入门文档:doc文件夹里的JTS Developer Guide.pdf。下载地址
官方API:jts-1.14\doc\javadoc\index.html
3.示例
(开发之前先引入lib文件夹内的所有JAR)
以两个多边形判断是否相交为例:
package com.jts;
import com.vividsolutions.jts.JTSVersion;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
public class 四边形求交1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Coordinate[] coordinates1 = new Coordinate[]{
new Coordinate(117.2,34.8),new Coordinate(122.2,34.8),
new Coordinate(122.2,31.5),new Coordinate(117.2,31.5),new Coordinate(117.2,34.8)
};
Coordinate[] coordinates2 = new Coordinate[]{
new Coordinate(118.9,33.8),new Coordinate(120.8,33.8),
new Coordinate(120.8,32.6),new Coordinate(118.9,32.6),new Coordinate(118.9,33.8)
};
// Coordinate[] coordinates2 = new Coordinate[]{
// new Coordinate(1,1),new Coordinate(2,2),
// new Coordinate(3,3),new Coordinate(4,4),new Coordinate(1,1)
// };
Geometry g1 = new GeometryFactory().createPolygon(coordinates1);
Geometry g2 = new GeometryFactory().createPolygon(coordinates2);
boolean isIter = g1.intersects(g2);
if(isIter)System.out.println("相交");
else System.out.println("不相交");
}
}
结果如图: