相邻多边形的简化

时间:2012-11-19 17:00:01

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

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

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

enter image description here

是否可以实施区域保持对齐的解决方案?

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)