2011-01-18 7 views
6

私はロンドンのアンダーグラウンド地図[tube]マップと同様のスタイルでトランスポートマップを生成したいと考えています。マップを動的に生成する

これらのマップは時々変更されるため、多くの場合、inkscape [または同様のもの]で手動で描画する代わりに必要になります。これらをdbまたはdatasetから動的に生成したいと考えています。

この作業に役立つライブラリapisなどがあるかどうか知っていますか、またはこれについてどうやって[どのように]行っていないのですか?

私はsvgがこれと一緒に行く最善の方法だろうと思っていますし、ラインの下で基本的な対話性の必要性があるかもしれません。

私はPHPで作業しています。そうでなければGDlib、ImageMagickですか?

ありがとうございます。

.K

+0

実際に飛んでいくことができます。参照:php.net/manual/en/book.image.php。しかし、画像処理は、典型的な最大メモリ限界の膨大な量を要する。 a)変更されるたびに番号を差し込み、b)静的なイメージを再作成するために、ある種の管理インターフェース(またはデータ変更上のサイドスクリプト起動)を考慮しましたか?このようにして、クライアントの要求は実際のイメージ作成に対処する必要はありません。 –

答えて

1

まあ、本当にGDまたはImageMagickの使用方法ではイマイチ答え、そのためのマニュアルがあります。ヘルパーライブラリに関しては、ほとんどの図書館はグラフ作成に重点を置いています。バックエンドのデータが変更されて画像がキャッシュされたときに、管理インターフェースが画像を生成することが、解決策として最善の策になります。誰かがアクセスするたびに画像を構築する理由はないからです。

マップを生成するには、周りの駅やx、yとの関係の指標を決定する1つまたは複数の「線」を持つ駅を定義するのが最善の策だと思います。あなたはたぶんa-bから線を引っ張っているだけなので、親の駅を決める必要があるでしょう。そうすれば、実際の列車でレンダリングされているのと同じ方法で配置することができます。線とその周りの駅を使ってマッピングを描きます。

問題があまりにも難しいようには聞こえません。 3表:

  • ステーション[stationid、名前、X、Y、META1、meta2]、
  • プレースメント[placementid、stationid、lineid、parentstationid]、
  • ライン[lineid、名前、META1、meta2 、色など]。

SVGはこの種のものでかなり役に立ちます。イメージの構築とキャッシュプロセス全体を避けることができますが、ブラウザのサポートには注意が必要です。

はしかし、かなり興味深いプロジェクトのような音、幸運:)私は、DBのデータからグラフを作成する必要があるときに私が使用

0

1つの戦略は、(例えばOracleのSQLX XMLの方法のいくつかの種類のデータを抽出することですまたはCocoon XSP/ESQLまたはeXist-db XQuery)を作成し、XSLTで処理してSVGを生成します。もしあなたがコードを書くことを望まないなら、良い古いコクーンはこの種の仕事にとっては大丈夫です(もちろんXSLを除く;-)。

SVG自体を再解析するグラフィックツールにロードすることができます。

0

これらのマップは、 随時変更されますと、私は に期待していますので、 代わり Inkscapeの[または類似]で手動でそれらを描くの多くは、彼らが デシベルまたはデータセットから動的に生成している必要があります。

私が靴を履いていた場合、まず最初に行うことは、Google Maps APIがアプリケーションに適していないことを証明しようとすることです。次に、ArcGISが動作しないことを証明してください。 (たとえうまく機能しなくても、広く使われているので、CVにラインを追加することができます。)

関連する問題