[英]Remove Geometry data that is outside of a polygon
我正在創建一個SQL Server表,如果該表位於SITES_TEST層內,則該表將從OS MasterMap層獲取數據。
首先,我正在使用STIntersects將OS MM數據放入ASSETS層。
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'))
在SQL Server中運行上述查詢后,它會返回重疊數據以及所包含的數據。 我知道我可以使用STContains,但是這樣就忽略了邊界內外的數據。
我希望我可以使用STDifference在ASSETS表上運行UPDATE。
UPDATE ASSETS(GEOMETRY)
(select b.GEOMETRY from
SITES_TEST a,
MM_TOPO b
where a.geometry.STDifference(b.geometry)=1)
但是我認為我正在以錯誤的方式進行處理,因為這將返回布爾錯誤。
數據類型的運算符無效。 運算符等於,類型等於幾何。
摘要:我正在嘗試刪除另一個幾何之外的幾何。 第一張圖片顯示一個藍色多邊形,然后運行SQL腳本,導致第二張圖片顯示紅色數據,該數據位於第一張圖片的藍色邊界多邊形之外。 我想刪除藍色多邊形外的數據。
而不是僅僅要求該幾何intersect
感興趣的多邊形,它返回所有的相交的幾何形狀(如你發現了),你只想要相交的幾何形狀的零件您感興趣的多邊形。 所以像這樣:
INSERT INTO ASSETS(GEOMETRY, THEMES)
(select b.GEOMETRY.STIntersection(a.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'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.