JTS:开源的JAVA拓扑工具包
GEOS:JTS的C++实现。GEOS主要支持几种操作和计算:
空间关系计算,主要支持几种计算
相等(Equals):
几何形状拓扑上相等。
脱节(Disjoint):
几何形状没有共有的点。
相交(Intersects):
几何形状至少有一个共有点(区别于脱节)
接触(Touches):
几何形状有至少一个公共的边界点,但是没有内部点。
交叉(Crosses):
几何形状共享一些但不是所有的内部点。
内含(Within):
几何形状A的线都在几何形状B内部。
包含(Contains):
几何形状B的线都在几何形状A内部(区别于内含)
重叠(Overlaps):
几何形状共享一部分但不是所有的公共点,而且相交处有他们自己相同的区域。
一些情况下,确切定义有些微妙。你可以参考JTS技术说明书来完全确定在任何情况下的返回情况。
以上的运算返回的都是true或者false。
另外一种是空间叠加分析操作。主要有下面几个操作:
缓冲区分析(Buffer):
包含所有的点在一个指定距离内的多边形和多多边形。
凸壳分析(ConvexHull):
包含几何形体的所有点的最小凸壳多边形,(就是外包多边形啦)
交叉分析(Intersection):
交叉操作就是多边形AB中所有共同点的集合。
联合分析(Union):
AB的联合操作就是AB所有点的集合。
差异分析(Difference):
AB形状的差异分析就是A里有B里没有的所有点的集合。
对称差异分析(SymDifference):
AB形状的对称差异分析就是位于A中或者B中但不同时在AB中的所有点的集合
另外还支持多边形化,连接有向线段,压出节点等等操作
GML4J:JAVA的GML处理包
OGR: OGR是一个读取和处理GSI矢量数据的库。这个库可以读取和处理多种流行的矢量数据。
MapServer:MapServer是一套基于胖服务器端/瘦客户端模式的实时地图发布系统,客户端发送数据请求时,服务器端实时的处理空间数据,并将生成的数据发送给客户端。MapServer 的核心部分是C语言编写的地图操作模块,它本身许多功能的实现依赖一些开源或免费的库
GEOserver:GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。