在PostgreSQL / PostGIS中以编程方式将搜索距离分为两部分

时间:2016-08-17 13:38:16

标签: postgresql postgis

我有一个查询,针对每个地址位置(广告),搜索半径为50米的最近的街道(st),并返回(260行)具有相应地址位置的所选街道。表'ad'包含87行,而'st'包含16,060行。执行时间为61毫秒。代码如下:

SELECT  
      ad.gid As address_id,
      ST_AsText(ad.geom) As address_locations,
      ST_AsText(st.geom) As selected_streets
FROM ad
Left JOIN st ON ST_DWithin(ad.geom, st.geom, 50)
ORDER BY  ad.gid, St_Distance(ad.geom, st.geom);

现在,我想以编程方式打破此查询,以便:对于每个地址位置,搜索首先在半径30米内执行,如果找到街道,请选择它们,然后将搜索距离扩展到50米不在半径30米。怎么做?

0 个答案:

没有答案