计算同一个表中多边形之间的重叠区域

时间:2012-05-15 12:41:19

标签: sql gis spatial

我需要计算同一个表中多边形之间的重叠。 Idealy我想为此使用mssql空间功能(类似于@ a.SHAPe.STIntersections(@ b.SHAPE).STArea())。

但我不知道如何对同一层中的多边形执行此操作。

谢谢!

房地

1 个答案:

答案 0 :(得分:0)

我为你们举了一个例子,告诉你如何实现这一目标。

SELECT 

    a.Geog1.STIntersection(b.Geog2) AS OverlapGeog
,   a.Geog1.STIntersection(b.Geog2).STArea() AS AreaOverlap
FROM
(
    SELECT 
    GEOGRAPHY::STGeomFromText('POINT(0.0 0.0)',4326).STBuffer(100) AS Geog1
) a
INNER JOIN
(
    SELECT 
    GEOGRAPHY::STGeomFromText('POINT(0.001 0.0)',4326).STBuffer(100) AS Geog2
) b
On
a.Geog1.STIntersects(b.Geog2) = 1