wkt ewkt

王朝百科·作者佚名  2012-06-08
窄屏简体版  字體:   |    |    |  超大  

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.32312)''), ''A Place'' )

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航