当前位置:   article > 正文

PostGIS 测试 - 基本类型(WKT & WKB)

postgis 测试

    OGC定义了两种描述几何对象的格式,分别是WKB(Well-Known Binary)和WKT(Well-Known Text)。 在SQL语句中,用以下的方式可以使用WKT格式定义几何对象:

几何类型WKT格式
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))
多点MULTIPOINT(0 0,1 2)
多线MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))
多面MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))
几何集合GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4)))

    本文通过实例演示几何对象的定义。

1.建表

  1. CREATE TABLE postgis2d (
  2. id SERIAL PRIMARY KEY,
  3. name VARCHAR(128),
  4. geom GEOMETRY
  5. );

2.添加GIST索引

CREATE INDEX postgis2d_gix ON postgis2d USING GIST (geom); 

3.插入数据

3.1 点(POINT)

  1. INSERT INTO postgis2d (name, geom) VALUES ('p1',
  2. ST_GeomFromText('POINT(0 0)', 26910)
  3. );
  4. INSERT INTO postgis2d (name,geom) VALUES ('p2',
  5. ST_GeomFromText('POINT(5 0)', 26910)
  6. );
  7. INSERT INTO postgis2d (name,geom) VALUES ('p3',
  8. ST_GeomFromText('POINT(0 10)', 26910)
  9. );

    或使用多点(MULTIPOINT)

  1. INSERT INTO postgis2d (name,geom) VALUES ('p3',
  2. ST_GeomFromText('MULTIPOINT((0 0),(5 0),(0 10))', 26910)
  3. );

      QGIS中显示几何如下:

  

3.2 线(LINESTRING)

  1. INSERT INTO postgis2d (name, geom) VALUES ('L1',
  2. ST_GeomFromText('LINESTRING(0 0,1 1,1 2)', 26910)
  3. );
  4. INSERT INTO postgis2d (name, geom) VALUES ('L2',
  5. ST_GeomFromText('LINESTRING(1 0,2 1,2 2)', 26910)
  6. );

    或使用多线(MULTILINESTRING)

  1. INSERT INTO postgis2d (name, geom) VALUES ('L1',
  2. ST_GeomFromText('MULTILINESTRING((0 0,1 1,1 2),(1 0,2 1,2 2))', 26910)
  3. );

    QGIS中显示几何如下:

    

3.3 多边形(POLYGON)

  1. INSERT INTO postgis2d (name, geom) VALUES ('p1',
  2. ST_GeomFromText('POLYGON((4 0,8 0,8 4,4 0))', 26910)
  3. );
  4. INSERT INTO postgis2d (name, geom) VALUES ('p2',
  5. ST_GeomFromText('POLYGON((1 1, 2 1, 2 2, 1 2,1 1))', 26910)
  6. );

    或使用多边形集合(MULTIPOLYGON)

  1. INSERT INTO postgis2d (name, geom) VALUES ('p2',
  2. ST_GeomFromText('MULTIPOLYGON(((4 0,8 0,8 4,4 0),(1 1, 2 1, 2 2, 1 2,1 1)))', 26910)
  3. );

    QGIS中显示几何如下:

     

3.4 几何集合

  1. INSERT INTO postgis2d (name, geom) VALUES ('c1',
  2. ST_GeomFromText('GEOMETRYCOLLECTION(POLYGON((4 0,8 0,8 4,4 0)),LINESTRING(2 3,3 4))',26910)
  3. );

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/329923
推荐阅读
相关标签
  

闽ICP备14008679号