如何在多边形和点几何文件之间执行STIntersect?

时间:2017-11-17 11:53:54

标签: sql-server

到目前为止我所拥有的:

select Metro.Object_ID 
from Geocoding_tab.dbo.Part1_Part2_Combined_Final as paypal
    ,Object_id.dbo.All_Combined_9_Metros as Metro
where paypal.geom.STIntersect(Metro.GEOM) = 1;

1 个答案:

答案 0 :(得分:0)

您可以修改查询以使用JOIN语法

SELECT Metro.Object_ID 
FROM
    Geocoding_tab.dbo.Part1_Part2_Combined_Final as paypal
INNER JOIN 
    Object_id.dbo.All_Combined_9_Metros as Metro ON paypal.geom.STIntersects(Metro.GEOM) = 1;

编辑 - 以下评论中显示以下错误

您可以使用STIsValid方法检测您的形状是否无效。如果无效,该方法将返回0。

MakeValid方法将修复无效的形状数据

例如:

UPDATE table SET geom = geom.MakeValid() where geom.STIsValid() = 0

注意

正如错误所示,MakeValid可能会以您认为不正确的方式改变您的形状,具体取决于形状的原始问题。所以你应该确认你对'#34;纠正过的"在继续之前塑造。