7

我可以使用什么算法来生成加权制图,如下所示:http://www.brainpickings.org/index.php/2010/04/15/cartograms/

我可以使用 R、.NET 库中的代码以及 PostGIS 生成 shapefile 图。但是,我找不到用于查找用于生成这些扭曲 shapefile 图的算法实现的搜索词。不一定只想绘制世界地图,因此必须能够使用任意 shapefile。

4

2 回答 2

4

因此,正如 OP 的评论中所提到的,这些被称为区域制图。我所知道的最简洁的 lil 实现是Cartogram.js,它依赖于神奇的D3 库。如果该页面碰巧掉了,您应该能够通过谷歌搜索“D3 区域制图”找到类似的页面,如果这不能让您找到任何地方,那么关于该主题的原始论文是Dougenik 1985

于 2014-04-17T17:42:10.200 回答
4

Andy 的 D3.js 答案非常好,但是,为了完整起见,这里有一个实现Cartogram algorithm,它来自优秀的开源 GIS 应用程序 QGIS 的 Python 插件。评论中引用了原始论文和算法。QGIS插件的完整源代码目录是:https ://code.google.com/p/ftools-qgis/source/browse/trunk/cartogram/?r=115

我意识到您要求使用 C#,并且代码中有一些 QGIS 几何对象,但是 TransformGeometry 方法确实说明了算法的工作原理,QGIS 读取 shapefile,如果您想做任何其他 GIS 样式处理,QGIS 将是一个不错的选择。

于 2014-04-19T09:45:42.090 回答