如何从单行中查找与几何体相交的多边形或在 PostGIS/SQL 中选择另一个表的行?

问题描述 投票:0回答:1

我正在尝试使用 SQL 查找与美国单个州或多个州列表相交的一些湿地多边形。我知道如何查找与另一个表的所有几何图形相交的所有多边形,但是如何仅检查单个几何图形或几何图形列表以避免为每个子选择创建图层?

我有一个不幸的方法来执行以下查询,其中长多边形是德克萨斯州的复制+粘贴几何图形:

SELECT wetland_id, acres
FROM wetlands
WHERE ST_Intersects(geom, st_geomfromtext('MULTIPOLYGON(((29334...........)))', 26914));

但我无法想象这是最好的方法。如何从名为“states_26914”的另一层中进行选择以获取德克萨斯州,然后找到与德克萨斯州相交的湿地。该表有一个可以查询的“名称”列。我不想导入另一个带有单独行的表,如德克萨斯州或任何其他州。

弄清楚这一点后,我想要一种方法来选择跨越几个州的湿地:例如德克萨斯州、俄克拉荷马州和堪萨斯州。我认为第一个问题会让我更容易找出州列表问题的答案。

sql postgis
1个回答
0
投票

您可以连接表格并包含一个条件,就像任何其他表格一样(即它们包含可以抽象的几何图形的事实)

SELECT state.name, wetland.ID, wetland.geometry
FROM wetland
 JOIN state 
   ON st_intersects(state.geometry, wetland,geometry)
      AND state.name in ('abc','xyz');
© www.soinside.com 2019 - 2024. All rights reserved.