如果它位于 SITES_TEST 层中,我正在创建一个从 OS MasterMap 层获取数据的 SQL Server 表。
首先,我使用 STIntersects 将 OS MM 数据放入资产层。
INSERT INTO ASSETS(GEOMETRY, THEMES)
(select b.GEOMETRY, b.THEMES from
SITES_TEST a,
MM_TOPO b
where a.geometry.STBuffer(1).STIntersects(b.geometry) = 1 AND (b.THEMES ='Land' or b.THEMES ='Roads Tracks And Paths'))
蓝色边界是我的站点图层,在后台 OS MasterMap 中。
在 SQL Server 中运行上述查询后,它会返回重叠数据以及包含的数据。我知道我可以使用 STContains,但是这样就忽略了边界内外的数据。
我希望我能够使用 STDifference 在资产表上运行更新。
UPDATE ASSETS(GEOMETRY)
(select b.GEOMETRY from
SITES_TEST a,
MM_TOPO b
where a.geometry.STDifference(b.geometry)=1)
但我认为我的做法是错误的,因为这会返回一个布尔错误。
数据类型的运算符无效。运算符等于等于,类型等于几何。
摘要:我正在尝试删除另一个几何之外的几何。第一张图片显示一个蓝色多边形,然后运行 SQL 脚本,生成第二张图片,红色显示位于第一张图片蓝色边界多边形之外的数据。我想删除现在在蓝色多边形之外的数据。