wkt ewkt

OpenGIS 的WKB和WKT 
 
OpenGIS的說明書中定義了兩個表述空間對象的標準方式:一個是WKT(the Well-Known Text)形式,另一個是WKB(the Well-Known Binary)形式。這兩種形式都包括對象的類型信息和形成對象的坐標信息。下面是用字元來描述要素的空間對象的例子: 
 
POINT(0 0) 
  
LINESTRING(0 0,1 1,1 2) 
  
POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1 ,2 1, 2 2, 1 2, 1 1)) 
  
OpenGIS的說明書中還規定了空間對象的內部存儲格式要包括一個空間參考系統標識(SRID)。當創建空間對象並向數據插入的時候需要這樣的SRID。下面是一個有效創建和插入一個OGC空間對象的語句: 
   INSERT INTO SPATIALTabLE ( THE_GEOM, THE_NAME ) 
  
VALUES ( GeomFromText(''POINT(-126.4 45.32)'', 312), ''A Place'' ) 
  
注意:上面的THE_GEOM欄位是GEOMETRY類型,該類型的對象可以用WKB定義,也可以用WKT定義。如:

   geometry = GeomFromWKB(bytea WKB, SRID); 
  
geometry = GeometryFromText(text WKT, SRID); 
  
所以GeomFromText(''POINT(-126.4 45.32)'', 312)中的POINT(-126.4 45.32)就是WKT,312就是這個空間對象的SRID。

PostGIS的EWKB, EWKT 
  
OGC的格式只支持2D的地理要素,而且其相關聯的SRID不能嵌入到輸入輸出表達中。PostGIS的擴展格式目前是OGC格式的超集,也就是說只要是有效的WKB或WKT就是有效的EWKB或EWKT。當然,如果今後OGC發布與該擴展格式相衝突的新格式,那么這種超集的情況就會有所變化了。PostGIS的EWKB, EWKT增加了對3DZ,3DM和4D坐標的支持,並可嵌入SRID信息。
下面是一些EWKT的例子: 
  
POINT(0 0 0)-- XYZ 
  
SRID=32632;POINT(0 0) – XY with SRID 
  
由於SRID可以嵌入到EWKT或EWKB中,空間對象的定義就可以簡化為:
geometry = GeomFromEWKB(bytea EWKB);
geometry = GeomFromEWKT(text EWKT);
那么,相資料庫中插入PostGIS空間對象就可以寫成:
INSERT INTO SPATIALTabLE ( THE_GEOM, THE_NAME )
VALUES ( GeomFromText(''POINT(-126.4 45.32 312)''), ''A Place'' )

相關詞條

熱門詞條

聯絡我們