【问题标题】:Simplification of adjacent polygons相邻多边形的简化
【发布时间】:2012-11-07 15:47:07
【问题描述】:

我正在努力将旧坐标系的一些地图/区域转换为更简单(不太详细)的模型,以便在网络上表示(使用 jVectorMap)。我已经成功使用了 Douglas Peucker 算法(来自这里的代码:http://www.codeproject.com/Articles/18936/A-C-Implementation-of-Douglas-Peucker-Line-Approxi)。

它工作得很好,但是这个实现没有考虑到这些区域相互对齐(共享边界),当使用更高的容差时,这会导致非常丑陋的结果,如下所示。

是否有可能实现区域保持一致的解决方案?

【问题讨论】:

    标签: c# vector-graphics polygons jvectormap douglas-peucker


    【解决方案1】:

    如果你对 Python 有一定的经验,你可以试试simplification script,我写它是 jVectorMap GIS 转换器的一部分。不幸的是,它还没有完成:您需要手动安装依赖项,在脚本中定义参数(路径、驱动程序)等。

    只需在脚本中设置以下参数:

    tolerance = 1000
    infile = 'Kn99_sve.MIF'
    outfile = 'map.mif'
    

    并将驱动程序名称从ESRI Shapefile 更改为MapInfo File。

    要运行脚本,您需要 Python 2.7 并安装 Python 模块:gdal、shapely、anyjson。

    【讨论】:

    • 谢谢,但是我的源文件不是 SHP(它们是 MID/MIF)。不过我可能会考虑一下。我还发现了这个 javascript 简化器:bost.ocks.org/mike/simplify。如果有进展,将在此线程中发布。
    • 它也应该适用于 MID,因为 GDAL/OGR 库用于加载数据,它支持多种 GIS 格式。顺便说一句,我认为这个脚本不支持边界安全的简化。
    • 好的。会调查的。我确实认为发布的链接应该支持边界安全简化,因为它说明了一些关于相邻三角形的内容(同样,还没有深入研究它)。
    • @Div 没有相邻三角形只是一个多边形的简化方法。顺便说一句,您的源文件的大小是多少?我想用我的脚本测试它。
    • 我为不同的区域类型提供了三个不同的源文件。我很乐意给你寄一份,大约 2MB。 echo.bjornd@g?
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2013-07-23
      • 2012-02-09
      • 2011-12-29
      • 1970-01-01
      • 2014-12-17
      • 2014-11-24
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      相关资源
      最近更新 更多