我还在学习postgis并需要一些帮助。我有2个桌子,城市和景点。我想要返回给定城市X英里范围内的所有景点。这些是我自己的表,所以我可以用最好的方式设置它们。现在,我的景点有一个geom POINT列,srid 4326是lat / lng。我的城市表有一个包含城市边界的geom BOUNDING BOX(POLYGON)列。我使用ST_MakeEnvelope来填充该列,也是4326.
我看过ST_Expand和ST_DWithin,但我似乎无法弄清楚如何搜索景点表并展开框,还会返回里程。
非常感谢任何指导!
答案 0 :(得分:1)
很容易我想返回给定城市X英里内的所有景点
SELECT *
FROM attractions AS a
JOIN cities AS c
WHERE ST_DWithin(c.geom::geography, a.geom::geography, X*1604);