使用Graphviz进行地理参考的子图/聚类

12
有时我想在地图上叠加一个概念图,以提供元素所属的额外背景信息。例如,如果我想展示不同国家之间的社交关系,我可能希望将人们放置在他们所在的国家,但这些国家内的布局是自动化的。 我已经(很差地)画了一张图片来帮助说明我的希望做到的事情。

poorly drawn picture :-)

我发现了这个例子,但它似乎是一个虚假的地理聚类。我想要的是一个真正的地图,其中实体被包含在它们正确的区域内,但实体本身是自动排列的。

我认为使用graphviz不可能实现这个功能——_fake_地理地图(GvMap)可能是最接近的选择。希望有人能证明我错了... - marapet
你不能只是在 Openlayer 这样的东西上面绘制一个 SVG 图层吗?我不认为 graphviz 是这个问题的工具。 - RickyA
Graphviz只支持矩形集群。如果每个节点都有真实的几何形状,则仅需要工具绘制漂亮的边缘。 - Pekka
这是一个可用的链接,用于示例:http://graphviz.org/_pages/Gallery/undirected/gd_1994_2007.html。你的链接已经失效了。这个例子是从它的使用案例相反的角度来看的:gvmaps发现集群并创建一个突出显示集群的地理地图。它从图形中生成地图。另一个具有类似地图位置的例子是:[world-dynamics](https://graphviz.gitlab.io/_pages/Gallery/directed/world.html)。 - CodeFreezr
1个回答

0

我认为这在严格意义上可能是不可能的。

然而,您可以尝试在每个国家中间添加一个不可见节点(使用“pos”进行定位,并使用“style = plain”和无标签使其不可见),然后使用短边将居住在那里的人连接起来(使用“len”约束长度和“weight”使其在排序中更重要)。如果国家形状奇特,您可以向一个国家添加多个此类节点。


你可能想在不同国家的节点之间使用“weight=1”,在同一国家的节点之间使用“weight=2”,并在将它们连接到其国家“超级节点”时使用“weight=3”。对于不属于同一国家的节点之间的边,可以使用“weight=0”。 - dakhota
你能画一个小的权重示例吗?例如使用graphviz.it - CodeFreezr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接