最近整理一下JAVA开发使用到的工具,包括OGC标准、JTS、GeoTools、Esri 和 GDAL。

因为正好在学习Esri 的 geometry api java,所以就从它开始吧~

 

一、geometry api java 可以做什么?
 
  二者关系判断
    Contains    可以判断两个几何体A是否包含B (点-线、点-面、线-线、线-面、面-面)
    Crosses     可以判断两个几何体之间是否存在相交关系 (线-线、线-面)
    Disjoint      可以判断两个几何体之间是否不存在共有关系 (线-线、线-面、面-面)
    Equals       可以判断两个几何体之间是否拓扑相同 (点-点、线-线、面-面)
    Intersects     可以判断两个几何体之间是否存在共有关系 (线-线、线-面、面-面) 
    Overlaps    可以判断两个几何体之间是否存在共有面积(但是不相等) (线-线、线-面、面-面)
    Touches    可以判断两个几何体之间是否只触碰边缘 (点-线、点-面、线-线、线-面、面-面)
    Within        可以判断几何体A是否在B内(点-线、点-面、线-线、线-面、面-面)
 
  二者对比处理
    Cut          剪断(线-线、线-面)
    Difference       不同(面-面)
    Intersection        共有(all)
    Symmetric Difference   对称差(没使过不敢说)
    Union          全部(all)
    Distance        计算最短距离(all)
    Geodesic Distance     计算某坐标系下的最短距离(all)
 
  单独几何体的操作
    Boundary - creates a geometry that is the boundary of a given geometry
    生成外轮廓线
    Buffer - creates buffer polygon around the given geometry
    生成缓冲区
    Clip - clips geometries with a 2-dimensional envelope
    生成最小外接矩形
    Densify - densifies geometries by plotting points between existing vertices
    生成加密图形
    Generalize - simplifies geometries using the Douglas-Peucker algorithm
    生成抽稀图形
    Offset - creates geometries that are offset from the input geometries by a given distance
    平移图形
    Proximity - finds the closest point on a geometry to a given point
    寻找最邻近点
    Convex Hull - creates the convex hull of a given geometry
    生成凸包
    Quadtree structure - can be used for spatial indexing
    生成四叉树存储
 
二、geometry api java 的几何实体(类)
 
  自定义类
    Point     点
    MultiPoint  多点
    Polyline     线(多线)
    Polygon     面
    Envelope   包络(最小矩形)
  OGC 规定的类
    OGCPolygon       面
    OGCMultiPolygon    多面
    OGCLineString      线
    OGCMultiLineString    多线
    OGCPoint         点
    OGCMultiPoint       多点
    OGCGeometryCollection  多边形集合
 
三、geometry api java 对外支持的格式
 
  From Esri Shape, To Esri Shape
  支持Esri Shape格式的文件
 
  From REST Json, To REST Json
  支持JSON格式输入输出(网页)
 
  From GeoJson, To GeoJson
  支持GeoJSON格式输入输出
 
  From WKT, To WKT
  支持WKT格式格式输入输出
 
  From WKB, To WKB
  支持GeoJSON格式输入输出

 

总结:我们将通用的坐标or地理格式or互联网格式输入到geometry api java中,利用读取函数转换为内部类,再使用它存储的算法进行分析。

   得到的结果用使用输出函数包装成支持的格式输出,最终得到我们需要的结果。

 

 希望对此有兴趣的朋友们发评论交流,如有错误也请指正。

 

 

参考:https://github.com/Esri/geometry-api-java/wiki