先对文中提到的面做一个解释,他可以指地块,宗地。
一、界址点
先说一下对界址点优化的情况,之前的方法主要是只要考虑了对坐标排序的问题,对于比较规整的面出的效果还是挺好,但往往现实中的面都比较复杂,像下面的这两种情况出的结果都不是我们想要,如图
(图一)
(图二)
问题的关键还是我们选择初始点的时候选择不对,主要通过BoundsExtractor和NeighborFinder这两个转换器选择出离西北角最近的那个界址点,达到离我们理想的效果。
二、四至
通过之前的方法实现对每条界址线进行方向判断,得出真实的四至信息,但像如图(3)这种情况
图(3)
我们也想把箭头指的位置判断为东至,解决方法思路是先按面和方向进行分组,然后求出每个方向界址点号的最小值和最大值(如图3中东至最小号为2,最大号4),通过发现规律,没有特殊情况下东至界址点的最小值减去1应该等于北至界址点的最大值,依次类推发现其他方向之间的关系,对于出现特殊情况(像图(3)出现不相等的情况),我们就需要调整南至的最小值,然后根据不同方向的区间值再调整四至方向,这样调整后会更符合更符合人的判断。
图(4)
但出现像图(4)这样的情况按前面提到的方法判断他又会判断出不是我们想要的结果,出现这种情况我们可以再增加一个界址线长度因素(至于设置多长合理,凭个人感觉)进行控制,最后按前面说的方法求出新方向。
最后,不管通过多少参数进行控制情况,都仍还会有特殊情况出现。
并不是方法永远比问题多,而是问题永远在“变异”。