WKT與GeoJson


基本概念

1.WKT(Well-known text)是開放地理空間聯盟OGC(Open GIS Consortium )制定的一種文本標記語言,用於表示矢量幾何對象、空間參照系統及空間參照系統之間的轉換。

2.GeoJSON 一種JSON格式的Feature信息輸出格式,它便於被JavaScript等腳本語言處理,OpenLayers等地理庫便是采用GeoJSON格式。

注:WKT是OGC的標准,而GeoJson並不是OGC的標准。

二者的區別

1.wkt是單獨用來表示空間點線面數據的,不能用於附帶屬性數據;

2.geojson還可以用來表示空間數據和屬性數據的集合,還可以包含圖層信息;

可表示的內容

WKT與geojson可以表示的幾何對象是一致的,包括點、線、面、幾何集合四種:

1.Point, MultiPoint

2.LineString, MultiLineString

3.Polygon, MultiPolygon

4.GeometryCollection

內容示例

Type   WKT GeoJson
Point POINT (30 10) { "type": "Point", "coordinates": [30, 10] }
MultiPoint MULTIPOINT ((10 40), (40 30), (20 20), (30 10)) { "type": "MultiPoint", "coordinates": [ [10, 40], [40, 30], [20, 20], [30, 10] ] }
MULTIPOINT (10 40, 40 30, 20 20, 30 10)
LineString LINESTRING (30 10, 10 30, 40 40) { "type": "LineString", "coordinates": [ [30, 10], [10, 30], [40, 40] ] }
MultiLineString MULTILINESTRING ((10 10, 20 20, 10 40),
(40 40, 30 30, 40 20, 30 10))
{ "type": "MultiLineString", "coordinates": [ [[10, 10], [20, 20], [10, 40]], [[40, 40], [30, 30], [40, 20], [30, 10]] ] }
Polygon POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10)) { "type": "Polygon", "coordinates": [ [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]] ] }
POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),
(20 30, 35 35, 30 20, 20 30))
{ "type": "Polygon", "coordinates": [ [[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], [[20, 30], [35, 35], [30, 20], [20, 30]] ] }
MultiPolygon MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),
((15 5, 40 10, 10 20, 5 10, 15 5)))

{ "type": "MultiPolygon", "coordinates": [ [ [[30, 20], [45, 40], [10, 40], [30, 20]] ], [ [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]] ] ] }

MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),
(30 20, 20 15, 20 25, 30 20)))

{ "type": "MultiPolygon", "coordinates": [ [ [[40, 40], [20, 45], [45, 30], [40, 40]] ], [ [[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]], [[30, 20], [20, 15], [20, 25], [30, 20]] ] ] }

GeometryCollection

(1)可以由多種Geometry組成,如:GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10)),每一種按照上面的格式來構成;

(2)也可以是同一種Geometry的組合,如:geometrycollection(point(116.405285 39.904989),point(117.190182 39.125596),point(114.502461 38.045474),point(112.549248 37.857014));

在讀取時,可以直接由GeoTools的WKTReader讀取

 

數據讀取和轉換

一般在地圖的客戶端支持按照GeoJSON的形式進行圖層加載,在后端的數據庫處理中,一般是支持WKT/WKB格式的坐標返回,所以,需要在中間有一個轉換過程,當然在新版的PostGIS中,可以直接返回GeoJSON數據。

A.前端

mapbox 開放js類庫,也可以將兩者的坐標形式進行轉換。

github地址:https://github.com/mapbox/wellknown

B.后端

在后端的話,可以直接使用GeoTools工具進行讀取。

注:本文轉載自【原文鏈接:https://blog.csdn.net/xcymorningsun/article/details/89848096】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM