15

地理的な地図を表すグラフを視覚化したいと考えています。そのため、グラフの端はコンパス ローズ (北、南、東、西) に関連付けられています。グラフ自体は有向であり、非循環にすることができます。

たとえば、私はノードを持っています:House-1、House-2、House-3、[House-1、北、House-2]、[House-2、East-of、House-3]。

羅針盤を理解できるレイアウトアルゴリズムを探しています(ヒントになるかも?)

私はJUNG、JGraph、GraphVizを経験しましたが、私が望むことをしているようには見えませんが、何かを見落としている可能性があります。

助言がありますか?

4

2 に答える 2

3

この問題を扱った最近の論文があり、その中で彼らは古い韓国の土地記録 (土地台帳) を再構築しようとしていました。紙には、あなたが望むことをするレイアウトアルゴリズムがあります。すべての詳細を提供するわけではありませんが、概要と詳細の引用を提供します。

イ・ヒョンミン、イ・スユン、キム・ナムウク、ソ・ジヌク。2012. JigsawMap: 歴史的なテキスト cadasters をマッピングすることにより、過去を未来に接続します。コンピューティング システムにおけるヒューマン ファクターに関する 2012 年 ACM 年次会議の議事録 (CHI '12)。ACM、ニューヨーク、ニューヨーク、米国、463-472。DOI= 10.1145/2207676.2207740 .

ジグソー マップの例

于 2012-08-21T15:30:46.230 に答える
0

@edallme : 素敵なドキュメント、興味深い!

@ダオウェン:

あなたの投稿で私が理解しているのは、それを行うための「ウィジェット」ではなく、すべてのブロックをマップ上に配置するアルゴリズムを探しているということです (おそらく私は間違っていますか?)。

ブロックの配置方法を計算するアイデアについて質問している場合 (「グラフ自体は有向であり、非循環にすることができる」ことを知っている場合)、使用しているグラフ ライブラリに関係なく、次の方法が機能するはずです。

最初に、各ノードが他のノードによって制約されるような依存マップの生成を試みることができます (相対位置とオフセット、例: SOUTH/30units)。この一連のコードは、不整合もチェックする必要があります。

次に、各ブロックの相対位置を計算し、最小値と最大値をどこかに保存し (パート 3 を参照)、最小/最大位置を持つオブジェクトへの参照を保存します。

3 番目に、最小/最大相対位置を使用して、フルサイズのダイアグラム ディメンションを仮想的に生成できる必要があります。

次に、隅から「ただ」描く必要があります。

于 2012-08-22T14:46:18.360 に答える