我有一组积分(英国完整的邮政编码质心)。邮政编码区域和邮政编码区域的邮政编码存在层次关系。原来的部门和地区是连续的。我希望得出各个部门和地区的近似边界,使得国家的任何部分恰好属于一个部门而且恰好是一个地区,所有得到的多边形理想地应该是连续的并且(显然?)所有原始点应该在适当的多边形中。 有一些合适的算法吗?更好的是,是否有适当的实施?
我认为我必须解释得很糟糕,因为我认为这不能回答我的问题。
让我们来谈谈各个部门,因为答案也适用于地区。
有1.8米的坐标。考虑使用诸如“SG13 7AT”之类的邮政编码标记其中的每一个。邮政编码标签本身可以反映邮政编码 - 扇区 - 区域结构 - 在这种情况下的扇区是“SG13 7” 除了这些点及其邮政编码标签之外,没有其他数据。
我知道存在定义扇区的边界。但是,此边界数据不是免费提供的。已知每个邮政编码点都位于其真正的扇区边界内。
我想要的是重新创建扇区边界的近似值,使得这些点落在新创建的多边形内,以便我创建的多边形是连续的。这些边界不能准确反映原件,但它们足以满足我的目的。
答案 0 :(得分:2)
要获得平面划分为扇区,根据采样的邮政编码,使用在整个点集上计算的Voronoi图,然后将每个图单元分配给包含单元网站的扇区。
我用两个扇区的例子来说明这一点,红色和蓝色。说你的初始数据是:
然后在计算Voronoi图之后,对单元格的划分将如下所示。我概述了红色和蓝色部分之间的界限。请注意,它们都是无限制的,但这仅仅是因为数据不包括其他扇区。
在澄清事情之前,现在回答我的问题......
您需要的是“点位置查询”的数据结构:给定空间细分(在您的情况下,平面)和查询点,找到包含查询点的对象。在线,段和多边形上有一些有效的算法(log(n)查询时间),它们已经在计算几何库CGAL中实现。
请注意,我使用CGAL 2D triangulation demo来说明解决方案
查看此link以获取点位置查询的文档。