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

1.建表

CREATE TABLE postgis2d ( 
  id SERIAL PRIMARY KEY,
  name VARCHAR(128),
  geom GEOMETRY
);

2.添加GIST索引

CREATE INDEX postgis2d_gix ON postgis2d USING GIST (geom); 

3.插入数据

3.1 点(POINT)

INSERT INTO postgis2d (name, geom) VALUES ('p1',
  ST_GeomFromText('POINT(0 0)', 26910)
);
INSERT INTO postgis2d (name,geom) VALUES ('p2',
  ST_GeomFromText('POINT(5 0)', 26910)
);
INSERT INTO postgis2d (name,geom) VALUES ('p3',
  ST_GeomFromText('POINT(0 10)', 26910)
);

    或使用多点(MULTIPOINT)

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

      QGIS中显示几何如下:

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

3.2 线(LINESTRING)

INSERT INTO postgis2d (name, geom) VALUES ('L1',
  ST_GeomFromText('LINESTRING(0 0,1 1,1 2)', 26910)
);
 
INSERT INTO postgis2d (name, geom) VALUES ('L2',
  ST_GeomFromText('LINESTRING(1 0,2 1,2 2)', 26910)
);

    或使用多线(MULTILINESTRING)

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

    QGIS中显示几何如下:

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

3.3 多边形(POLYGON)

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

    或使用多边形集合(MULTIPOLYGON)

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

    QGIS中显示几何如下:

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

3.4 几何集合

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