PostGIS第一眼

PostGIS
  PostGIS是由Refractions Research Inc开发的,Refractions是一个GIS和数据库咨询公司。PostGIS是对象-关系型数据库系统PostgreSQL的一个扩展,允许数据库存储GIS(地理信息系统)对象。PostGIS包括对GiST-based R-Tree的空间索引和分析处理GIS对象的功能。
  PostGIS支持的GIS对象是开放式GIS协会(OGC)定义的“简单要素”(Simple Features)的超集。
PostGIS扩展了OGC的标准,支持3DZ,3DM和4D坐标。


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’ )

 

 
转载自:https://blog.csdn.net/zkhappyfol/article/details/1103271

You may also like...