2012-05-15 58 views
0

我需要计算同一个表中多边形之间的重叠度。理想情况下,我想为此使用mssql空间功能(如@ a.SHAPe.STIntersections(@ b.SHAPE).STArea())。计算同一表格中多边形之间的重叠度

但我不知道如何做到这一点在同一层的多边形。

谢谢!

房地美

回答

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