JTS Topology Suite
基本概念瞭解
幾何計算
所有幾何數據運算都依託於相應的精度格式,精度格式主要分爲:Fixed,Floaing, Exact;
- Fixed: 座標相當於由N個正方形構成的離散固定矩陣上;
- Floating: 計算座標值必須依靠參數來形成一個正方形構成的矩陣然後進行計算,所以座標值這個時候並不是一個固定的值,而且會出現小數點四捨五入的誤差。
- Exact: 要求座標點是一個分子式(相當精確)
目前JTS支持Fixed和Floating兩種基本類型
空間數據:
通過WKT來了解空間數據Geometry大概長什麼樣?
WKT,是一種文本標記語言,用於表示矢量幾何對象、空間參照系統及空間參照系統之間的轉換。它的二進制表示方式,亦即WKB(well-known binary)則勝於在傳輸和在數據庫中存儲相同的信息。該格式由開放地理空間聯盟(OGC)制定。
WKT可以表示的幾何對象包括:點,線,多邊形,TIN(不規則三角網)及多面體。可以通過幾何集合的方式來表示不同維度的幾何對象。
幾何物體的座標可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一個屬於線性參照系統的m值。
以下爲幾何WKT字串樣例:
POINT(6 10)
LINESTRING(3 4,10 50,20 25)
POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))
MULTIPOINT(3.5 5.6, 4.8 10.5)
MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))
MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3)))
GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
POINT EMPTY
MULTIPOLYGON EMPTY
空間數據模型:
空間關係:
兩個幾何圖形之間存在的空間關係:
相等(equals)、分離(disjoint)、相交(intersect)、相接(touches)、交叉(crosses)、包含於(within)、包含(contains)、覆蓋/覆蓋於(overlaps)。同時,也支持一般的關係(relate)操作符。
是什麼?
JTS 主要完成了java對幾何對象(點,線,面等),空間拓撲的核心操作算法。 它儘可能實現了OpenGIS Simple Features Specification規範,所以在GIS相關的開源世界裏,如Geotools, Uidg等,JTS都得到了大量應用。
api博客:
https://blog.csdn.net/liukang0618/article/details/8600789