首页 > 解决方案 > 如何使用 SQL Server 使用它们所在的多边形的 ID 填充点表中的字段?

问题描述

我正在尝试使用 SQL Server 更新点数据表中的字段,其中每个点都位于其中的多边形的 ID。我还没有在网上找到一个很好的例子,如果有任何帮助,我将不胜感激。我包括我目前拥有的代码,即使我知道它是错误的。

Update Points
Set Points.Loc_ID = Polygon.Area_ID 
Where GlobalID IN 
        (GlobalID IN (Select Points.GlobalID 
                      from Points
                      Join Polygon ON (Polygon.SHAPE).STIntersects(Polygon.SHAPE) = 1))

标签: sqlsql-servergis

解决方案


在这里做一个猜测,因为你的例子有点薄:

-- update Points
-- set Loc_ID = Polygon.Area_ID
select Points.geoColumn, Points.Loc_ID, Polygon.Area_ID 
from Points
join Polygon
    on Polygon.SHAPE.STContains(Points.geoColumn) = 1;

我已将其编码为选择,但更新部分在那里 - 只需取消注释并注释掉选择子句。魔术就在连接中 - 您正在寻找包含您的点的多边形。因此,我们将其作为连接标准进行测试。


推荐阅读