1

建物内のさまざまな場所に広がる数値データのヒートマップを作成しようとしています。データ マッピングなどの調査に数時間を費やしましたが、アドバイスを求めています。私はGISを初めて使用します。利用可能なオプションの大部分は、緯度/経度を使用するタイル API であり、私の要件には過剰です...

最終的には、強度の高い領域を示すヒートマップ オーバーレイを使用して背景画像 (フロア プラン) を出力したいだけです。データは特定の場所 (例: 活動レベル: 14、場所: 受付入口) にバインドされているため、マップ上でランダムに分散されることはありません。データにはタイムスタンプがあり、最終的な目的は、アニメーション用に 1 時間ごとのアクティビティの PNG を出力することです。

2つの選択肢があるように感じます。

このチュートリアル (http://dylanvester.com/post/Creating-Heat-Maps-with-NET-20-%28C-Sharp%29.aspx) は非常に柔軟で、最終的な画像が非常に美しいので気に入っています。私が望むものに似ています-それは素晴らしい有利なスタートです. そうは言っても、「受付の入り口」などの場所を x、y 座標、または複数の x、y 座標に割り当てる必要があります。次に、すべてのヒートマップの前にマトリックスを処理して、CSV ファイルからデータを取得し、アクティビティ値を適切な座標に配置する必要があります。

私が考えているもう 1 つのオプションは、フロア プランからカスタム シェープファイル (?) を作成することです。つまり、定義された領域を持つベクトル グラフィックを作成します。各領域は、タグ付け可能な場所に起因します。これは最も柔軟なオプションのようですが、シェープファイルの作成方法を見つけるのに本当に苦労していますか?

GIS 用語に慣れていないため、検索が難しくなっています。後者は、時間の経過とともにアクティビティ値を変更するための最も賢明な解決策のようです (シェープファイルをhttps://gist.github.com/1370472などで使用します)。

見つかったリンク:

  • guthcad.com/cad2shape.htm (ただし、CAD 図面はなく、ラスター フロアプランのみ)
  • stackoverflow.com/questions/4014072/arcgis-flex-overlay-floor-plan-png (役に立たない、タイル表示したくない)
  • oliverobrien.co.uk/2010/01/simple-choropleth-maps-in-quantum-gis/
  • gis.stackexchange.com/questions/20901/using-gis-for-interactive-floor-plan (見栄えが良い)

要約すると、建物内の場所にバインドされたデータをマップしたいと思います。私が使用したい C# チュートリアルには非常に優れたコードがありますが、活動データを座標にリンクすることは潜在的に面倒です (ただし、座標間のベクトルを使用できるため、場所間の活動の遷​​移を記述することができます.. .)。もう 1 つのオプションは、QGIS などで CSV データにリンクできる領域を含む画像を作成することです。より多くの経験を持つ人々は、最良の方向性、または代替案を提案できますか?

ありがとうございました!

4

1 に答える 1

0

私は最近、米国での特定のイベントのヒートマップに対して同様のことを行いました。

私の入力データは、緯度、経度、イベント数の 3 つの列を持つ単純な CSV ファイルでした。

利用可能なオプションを調べた後、GHeat.Netを使用することになりました。使い方は非常に簡単で、私のニーズを満たすために少し変更するだけで済みました。

出力は透明な PNG で、Google マップにオーバーレイします。

規模はかなり異なりますが、同じ解決策があなたの場合にうまくいくと思います。

アップデート

x、y 値がかなり小さい範囲の整数であり、十分なサンプルがある場合は、各配列要素の値がその座標でのサンプル数である (スパース?) 配列を単純に作成できます。「最もホットな」配列要素 (サンプル数が最も多い要素) を特定し、それをヒート マップの「白」と同一視します。より低い値はより冷たい色に対応します (つまり、最も高い値を使用して配列内のすべての値を正規化します)。正規化された値をカラー スケールにマッピングします)。配列を PNG にマップします。

GHeat のようなヒート マップは、各データ ポイントの周囲に影響範囲を作成します。データによっては、必要ない場合があります。

サンプル レートが十分に高くない場合は、影響範囲のコードを GHeat から取り出して、独自の配列に適用することができます。

影響範囲のものは、基本的にデータ サンプルの特定の座標に「1」の値を追加し、マップ内の隣接するピクセルに小さい値を追加して、より滑らかなマップを提供します。GHeat で使用されている特定のアルゴリズムはわかりませんが、基本的な考え方は、次のようなパターンを使用して、特定の x、y 値と隣接値に追加することです。

0.25 | 0.5 | 0.25
-----------------
 0.5 | 1.0 | 0.5
-----------------
0.25 | 0.5 | 0.25
于 2012-07-03T21:25:12.070 に答える