将多个多边形合并并简化为等效形状但使用更少的多边形的最有效方法是什么,最好是在 Python 中?
我正在尝试绘制由 US Census data 定义的邮政编码区域在谷歌地图上。使用Django的优秀GeoDjango框架和我对 django-census-places 进行的黑客攻击应用程序,我现在在我的数据库中有数以千计的 zip 和 lat/lng 矢量描述它们的区域。
我已经编写了一些基本的 Python 来导出矢量并渲染 Javascript 以在 Google map 上绘制选定的 zipper 。然而,我遇到的问题是它非常慢,因为即使是一个邮政编码也可能包含数千个多边形。我可以将此输出预处理为 JSON 并将其缓存,但即便如此,浏览器也需要几分钟时间才能加载所有三角形,其中大部分都是多余的,因为我只对几个邮政编码的整体轮廓感兴趣。
注意,这个问题类似于this ,但不一样。我不关心重叠的多边形,因为我相信没有重叠。
编辑:This问题也显得非常相似。
最佳答案
事实证明,GeoDjango 中的几个功能之一是全方位的 bool 多边形运算符。我所要做的就是在我的每个 MultiPolygon 对象上调用 union() 以获得描述整个区域的 MultiPolygon。点数的减少是一个数量级。
关于python - 使用 Python 高效地合并和减少多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14402810/