JST空间分析工具包是一套JAVA API,提供一系列的空间数据分析操作。最近开发项目刚好需要用到,上网搜资料也少,就自己写下来记录一下。C++版本的拓扑分析开源工具叫:;.NET版本的拓扑分析开源工具叫:。
1.下载
工具包下载地址:
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("不相交"); }}结果如图: