一种求任意多边形内部水平方向似最大矩形的算法
文章版權(quán)由作者李曉暉和博客園共有,若轉(zhuǎn)載請于明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
1.背景
?????? 在前一篇中,我們探討了如何求凸多邊形中的似最大圓,但是針對實際情況需求,我們并沒有完全解決問題。實際情況中,凹凸多邊形同時存在,并且在行政區(qū)劃應(yīng)用上,凹多邊形更多。所以這里我們依然得探討如何在任意多邊形中得出其內(nèi)部的似最大矩形或者似最大圓。
?????? 這里,我們將方向優(yōu)先選擇為求似最大矩形,原因有二:矩形的判斷不涉及運算,效率更高;更重要的原因是,之后我們構(gòu)建R樹索引,基于矩形會更加便捷。
2.算法詳解
?????? 在我之前的文章《網(wǎng)格索引判斷點面關(guān)系的方法》(http://www.cnblogs.com/naaoveGIS/p/5148185.html),提到了GIS中常用的網(wǎng)格方法。同樣,這里我將把該網(wǎng)格法的思路引入至算法中。
? ? ? ? ? ? ? ? ? ? ? ?
?????? 具體描述為:
?????? a.獲取任意多邊形的四角坐標,通過四角坐標構(gòu)造矩形,將該矩形劃分成N*M個規(guī)則格網(wǎng)。
?????? b.遍歷所有格網(wǎng),判斷每個格網(wǎng)和多邊形的包含關(guān)系。格網(wǎng)在多邊形中,則標記為1,否則為0。
?????? c.計算由0和1組成的矩形中,由1組成的最大矩形。
?????? d.求得所得最大矩形代表的四角坐標,構(gòu)造成真實地理矩形。
3.算法探討
?????? a.該算法最大的難點在于計算由0和1組成的矩形中,由1組成的最大矩形:
???????????????????????????
?????? b.該算法獲取的矩形是否為最大取決于網(wǎng)格的劃分粒度,實際項目中,要進行綜合考慮。實際上,只要能夠逼近,是否最大不重要。
4.算法實現(xiàn)
?
?
5.問題擴展
?????? 昨天一個朋友問了一個相似的問題,項目背景為土地利用分析,需要提取任意規(guī)劃土地內(nèi)一平方公里的樣本。
?????? 利用網(wǎng)格的思想,該問題同樣能很好的解決。
??????
? -----歡迎轉(zhuǎn)載,但保留版權(quán),請于明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
?????????????????????????????????????????????????????????????????????? ???? 如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^
總結(jié)
以上是生活随笔為你收集整理的一种求任意多边形内部水平方向似最大矩形的算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 世界不乏爱因斯坦,缺乏的适合他茁壮成长的
- 下一篇: 【Android】getActionBa