1.建表
创建包含空间数据的表mytable。
CREATE TABLE mytable (
id SERIAL PRIMARY KEY,
name VARCHAR(128),
geom GEOMETRY(Point, 26910)
);
2.添加GIST索引
CREATE INDEX mytable_gix ON mytable USING GIST (geom);
3.插入数据
INSERT INTO mytable (name, geom) VALUES ('p1',
ST_GeomFromText('POINT(0 0)', 26910)
);
INSERT INTO mytable (name,geom) VALUES ('p2',
ST_GeomFromText('POINT(5 0)', 26910)
);
INSERT INTO mytable (name,geom) VALUES ('p3',
ST_GeomFromText('POINT(0 10)', 26910)
);
4.查询
select id, name, ST_AsEwkt(geom) from mytable ;
查询结果:
查询与POINT(0 0) 相距 5以内的数据。
SELECT id, name, ST_AsEwkt(geom) FROM mytable WHERE ST_DWithin(
geom, ST_GeomFromText('POINT(0 0)', 26910), 5);
查询结果: