【发布时间】:2013-01-03 08:16:06
【问题描述】:
我有一个可以使用的查询,但想知道是否有更快更不钝的形式可以使用。我已经在我的几何图形周围创建了一个边界框来缩小搜索范围,但是对 ST_Transforms 的多次调用似乎很尴尬。顺便说一句:两条线(gg 和 gm)有相同的点。
提前致谢,
-马特
CREATE TABLE lines
(
line_id bigserial NOT NULL,
line_gm_bbox geometry,
line_gm_line geometry,
line_gg_line geography(LineString,4326),
)
WITH ( OIDS=FALSE );
CREATE INDEX line_bbox_idx
ON lines
USING gist
(line_gm_bbox );
SELECT l.* FROM lines AS l WHERE l.line_gm_bbox && ST_Transform( ST_Buffer( ST_Transform( ST_GeomFromText('POINT(-71.44513306666667 42.7368536)',4326),3395 ), 2000 ), 4326 )
AND ST_DWithin( l.line_gg_line, ST_GeomFromText('POINT(-71.44513306666667 42.7368536)',4326), 200);
【问题讨论】:
标签: postgresql postgis postgresql-9.1