我有一个有效的查询,但想知道是否有更快更不钝的形式可以使用。我已经在我的几何图形周围创建了一个边界框来缩小搜索范围,但是对 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);