使用Sql空间数据(C#)找到不规则多边形的“视觉”中心
我在Bing Maps
WPF控件上绘制区域(使用SqlGeometry / SqlGeography并将其转换为WPF LocationCollection等效项),并需要标记它们.我在区域上绘制了标签,并将它们附加到STCentroid()发现的点上.当然,你可以想象这是’U’或’C’形区域的问题,其中心脏在区域之外结束,这使得标签不正确.
有没有办法使用SqlGeometry / SqlGeography找到“视觉”中心,或者找到可以适应形状和使用该中心的最大圈子?我试过various methods使用STPointOnSurface(),但似乎STPointOnSurface()总是选择一个点在边缘像这样DCREHA(底部深绿色区域的标签总是在边缘: 解决方法一个几乎相同的问题已经被问到了 here.在你的情况下,最相关的答案可能是 this.答案的困难在于确定将多边形分割成两个相等区域的线.因此,我建议稍后修改版本下面的SQL Server:>使用STCentroid找到质心 例如,给定上述DCREHA示例的多边形,以下GIF会动画化上述步骤(由眼睛判断 – 实际结果会有所不同): (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |