文章版权由做者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/html
在前一篇中,咱们探讨了如何求凸多边形中的似最大圆,可是针对实际状况需求,咱们并无彻底解决问题。实际状况中,凹凸多边形同时存在,而且在行政区划应用上,凹多边形更多。因此这里咱们依然得探讨如何在任意多边形中得出其内部的似最大矩形或者似最大圆。算法
这里,咱们将方向优先选择为求似最大矩形,缘由有二:矩形的判断不涉及运算,效率更高;更重要的缘由是,以后咱们构建R树索引,基于矩形会更加便捷。微信
在我以前的文章《网格索引判断点面关系的方法》(http://www.cnblogs.com/naaoveGIS/p/5148185.html),提到了GIS中经常使用的网格方法。一样,这里我将把该网格法的思路引入至算法中。spa
具体描述为:htm
a.获取任意多边形的四角坐标,经过四角坐标构造矩形,将该矩形划分红N*M个规则格网。blog
b.遍历全部格网,判断每一个格网和多边形的包含关系。格网在多边形中,则标记为1,不然为0。索引
c.计算由0和1组成的矩形中,由1组成的最大矩形。get
d.求得所得最大矩形表明的四角坐标,构形成真实地理矩形。博客
a.该算法最大的难点在于计算由0和1组成的矩形中,由1组成的最大矩形:效率
b.该算法获取的矩形是否为最大取决于网格的划分粒度,实际项目中,要进行综合考虑。实际上,只要可以逼近,是否最大不重要。
昨天一个朋友问了一个类似的问题,项目背景为土地利用分析,须要提取任意规划土地内一平方千米的样本。
利用网格的思想,该问题一样能很好的解决。
-----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/
若是您以为本文确实帮助了您,能够微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^