c# - 相邻多边形的简化

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

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

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

enter image description here

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

最佳答案

如果您对 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/

相关文章:

html - 如何将svg中的贝塞尔曲线转为正弦曲线?

google-maps-api-3 - 放大 Google Map Api 时会出现恼人的白色闪烁

python - 如何使用纯 Numpy 函数在网格数组上绘制和填充多边形?

c# - Entity Framework ,如何投影到列表中

c# - 并行运行的 Selenium 测试导致错误 : invalid session id

c# - 在Azure中,启动appService并不执行Startup

Android OpenGL ES - 如何绘制填充的凹多边形?

c# - 将多个参数传递给具有多个条件的 Rest API

android - 海量矢量素材导入Android Studio

c# - 计算围绕一条线的长方体的 Point3Ds