我试图通过空间查询获取多边形内的点,问题是点和多边形在同一个SQL表中,我附加了一个带有结果的图片Select Query您可以看到最后3条记录是包含点的多边形。
我已经尝试了一点,但它不会起作用,因为我需要一个列表,其中包含多边形的名称及其内部的点在空间查询中。
DECLARE @POI geography;
DECLARE @POLYGON geography;
SET @POI = (SELECT TOP 1 GEO FROM POI WHERE LAYERID <> 1026);
SET @POLYGON = (SELECT TOP 1 GEO FROM POI WHERE LAYERID = 1026);
SELECT @POLYGON.STContains(@POI);
答案 0 :(得分:0)
这样的事情应该做:
select [point].ID, [poly].ID
from GEO as [point]
join GEO as [poly]
on [point].LAYERID <> 1026
and [poly].LAYERID = 1026
and [poly].GEO.STContains([poly].GEO]) = 1;
当然,一旦您完成匹配,您可以select
任何您想要的内容(我选择了相应的ID)。