查找多边形重叠 [英] Find polygon overlaps

查看:44
本文介绍了查找多边形重叠的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须找到多边形重叠并获取它们的几何形状.有人知道怎么做吗?

I have to find polygon overlaps and get their geometry. Does anybody have idea how to do that?

这是多边形表:

DECLARE @Table TABLE (
  id varchar(32),
  shape geometry);

INSERT INTO @Table VALUES
('California', geometry::Parse('POLYGON((-124.23 41.96, -119.97 41.93, -119.97 38.99, -113.95 34.30, -114.69 32.62, -117.11 32.43, -122.25 36.10, -124.23 41.96))')),
('Western US', geometry::Parse('POLYGON((-124.71 48.69, -102.97 48.86, -102.88 31.72, -117.15 32.39, -124.01 39.50, -124.71 48.69))')),
('US', geometry::Parse('POLYGON((-124.62 48.86, -94.57 48.98, -80.68 42.09, -66.88 45.02, -82.26 28.69, -98.96 26.90, -116.80 32.62, -124.36 39.77, -124.62 48.86))')),
('Colorado', geometry::Parse('POLYGON((-108.98 40.91, -108.98 36.87, -101.95 36.87, -101.95 40.91, -108.98 40.91))'));

推荐答案

这行得通吗?

SELECT
    T.id
    , O.id
    , T.shape.STIntersection(O.shape) Intersection
FROM @Table T
INNER JOIN @Table O
    ON T.shape.STIntersects(T.shape) = 1
    AND T.id > O.id

这篇关于查找多边形重叠的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆