我正在努力将旧坐标系的一些 map /区域转换为更简单(不太详细)的模型以在网络上表示(使用 jVectorMap )。我已经成功地使用了 Douglas Peucker 算法(来自此处的代码:http://www.codeproject.com/Articles/18936/A-C-Implementation-of-Douglas-Peucker-Line-Approxi)。
它工作得很好,但是这个实现没有考虑到这些区域彼此对齐(共享边界),当使用更高的容差时会导致非常难看的结果,如下所示。
是否可以实现区域保持对齐的解决方案?
最佳答案
如果您对 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。
关于c# - 相邻多边形的简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458592/