1. 程式人生 > >Esri geometry api java 學習文件 (1) 概述

Esri geometry api java 學習文件 (1) 概述

最近整理一下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