先對文中提到的面做一個解釋,他可以指地塊,宗地。
一、界址點
先說一下對界址點優化的情況,之前的方法主要是只要考慮了對坐標排序的問題,對于比較規整的面出的效果還是挺好,但往往現實中的面都比較復雜,像下面的這兩種情況出的結果都不是我們想要,如圖
(圖一)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (圖二)?
問題的關鍵還是我們選擇初始點的時候選擇不對,主要通過BoundsExtractor和NeighborFinder這兩個轉換器選擇出離西北角最近的那個界址點,達到離我們理想的效果。
二、四至
通過之前的方法實現對每條界址線進行方向判斷,得出真實的四至信息,但像如圖(3)這種情況
圖(3)
我們也想把箭頭指的位置判斷為東至,解決方法思路是先按面和方向進行分組,然后求出每個方向界址點號的最小值和最大值(如圖3中東至最小號為2,最大號4),通過發現規律,沒有特殊情況下東至界址點的最小值減去1應該等于北至界址點的最大值,依次類推發現其他方向之間的關系,對于出現特殊情況(像圖(3)出現不相等的情況),我們就需要調整南至的最小值,然后根據不同方向的區間值再調整四至方向,這樣調整后會更符合更符合人的判斷。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖(4)
但出現像圖(4)這樣的情況按前面提到的方法判斷他又會判斷出不是我們想要的結果,出現這種情況我們可以再增加一個界址線長度因素(至于設置多長合理,憑個人感覺)進行控制,最后按前面說的方法求出新方向。
最后,不管通過多少參數進行控制情況,都仍還會有特殊情況出現。
并不是方法永遠比問題多,而是問題永遠在“變異”。