【发布时间】:2013-03-01 12:50:03
【问题描述】:
大家好,我有一个问题: 如何在 postgis 数据库中插入一个带有 Ne_latitude、NE_longitude、SW_latitude、SW_longitude 的框(矩形),并在顶部构建一个 INDEX 以检索不同框之间的交集?
提前致谢
【问题讨论】:
标签: sql geospatial postgis spatial-index spatial-query
大家好,我有一个问题: 如何在 postgis 数据库中插入一个带有 Ne_latitude、NE_longitude、SW_latitude、SW_longitude 的框(矩形),并在顶部构建一个 INDEX 以检索不同框之间的交集?
提前致谢
【问题讨论】:
标签: sql geospatial postgis spatial-index spatial-query
使用ST_MakeEnvelope 构建一个矩形几何体。它可用于使用&& overlaps operator 检索来自some_table(带有几何列geom)的边界框的交集:
SELECT *
FROM some_table
WHERE geom && ST_MakeEnvelope(SW_longitude, SW_latitude, NE_longitude, NE_latitude, 4326);
将矩形插入some_table:
INSERT INTO some_table (geom)
VALUES (ST_MakeEnvelope(SW_longitude, SW_latitude, NE_longitude, NE_latitude, 4326));
如果some_table 在geom 列上还没有空间索引,create it:
CREATE INDEX ON some_table USING gist (geog);
【讨论】: