15

我想可视化一个代表一些地理地图的图表。因此,我的图表的边缘与罗盘玫瑰(北、南、东、西)相关联。图本身是有向的,可以做成无环的。

例如,我有节点:House-1、House-2、House-3,边缘为 [House-1,North-of,House-2],[House-2,East-of,House-3]。

我正在寻找一种可以理解罗盘的布局算法(也许作为提示?)

我经历过 JUNG、JGraph、GraphViz,但似乎都没有做我想做的事,但我可能错过了一些东西。

有什么建议么?

4

2 回答 2

3

最近有一篇论文处理了这个问题,他们试图重建韩国的旧土地记录(地籍)。论文中有一个布局算法应该可以满足您的需求。它没有提供所有细节,但它确实给出了大纲和对细节的引用。

Hyungmin Lee、Sooyun Lee、Namwook Kim 和 Jinwook Seo。2012. JigsawMap:通过绘制历史文本地籍图将过去与未来联系起来。在 2012 年 ACM 计算系统中的人为因素年度会议论文集 (CHI '12)。ACM,纽约,纽约,美国,463-472。DOI = 10.1145/2207676.2207740

拼图地图示例

于 2012-08-21T15:30:46.230 回答
0

@edallme:好文档,有趣!

@道文:

我在你的帖子中理解的是,你正在寻找一种算法来将所有块放在地图上,而不是一个“小部件”来做到这一点(所以也许我错了?)。

如果您询问计算如何放置块的想法(知道“图形本身是有向的并且可以制成非循环的”),则以下方法应该有效,与您使用的图形库无关:

您可以尝试首先生成一个依赖图,例如每个节点都受其他节点的约束(相对位置和偏移量,例如 SOUTH/30units)。这堆代码也应该检查不连贯性。

其次,计算每个块的相对位置,将最小值和最大值存储在某处(参见第 3 部分),以及对具有最小/最大位置的对象的引用。

第三,您应该能够虚拟生成具有最小/最大相对位置的全尺寸图尺寸。

然后,你“只是”必须从角落里画出来。

于 2012-08-22T14:46:18.360 回答