【No.010】Excelで手軽に作る!3D地図の作成手順とコツ | 3D Maps機能の使い方 | Excel入門

はじめに

Excelを使用して3D地図を作成することは、地理情報システム(GIS)ソフトウェアを使用することなく、手軽に地図を作成できる方法の1つです。Excelは、表計算ソフトウェアとして広く知られており、多くの人が利用しているため、GISソフトウェアを使うよりも手軽に取り組めるというメリットがあります。この記事では、Excelを使用して3D地図を作成するための基本的な手順やコツについて説明していきます。

★関連リンク
業務で活用できるAI技集のまとめはこちら

手順

3Dマップが利用可能か確認する

まずExcelの3Dマップ機能を使えるか確認にするところからスタートします。挿入タブの3Dマップをクリックしてください。初回はアドインを有効化するかどうか問われる場合がありますが、その場合は「有効化」を押してください。

「挿入タブ→3Dマップ→3D Maps を開く」と進めていって下図のようなマップ画面がでれば成功です。もしうまくいかない方がいたら以下のような要因が考えられますのでご確認ください。

ⅰ)アドインがアクティブになっていない
Excelのオプションを開いて「Microsoft Power Map for Excel」がアクティブになっているか確認ください。確認方法は、ファイル→その他…→オプションでExcelのオプションが開きますので、その後アドインをクリックしてください。
ⅱ)ファイル形式がcsvになっている
csv形式のファイルをExcelで開いていると、3Dマップのアイコンはグレーアウトして使用不可となります。xlsxやxlsbなどのexcel形式に変換してからExcelを開き直してください。
ⅲ)Excelのバージョンが古い
Excel2016以降でないと利用できないので、もしバージョンが古い場合はアップグレード等をご検討ください。

簡単なデータでマップ化してみる

実例として、山手線全30駅をマップ化したいと思います。まず下の表(31行×3列)をExcelにコピー&ペーストします(Excelに上手く貼り付かない人はこちらからサンプルのExcelファイルがDL可能です)。その後、「挿入タブ→3Dマップ→3D Maps を開く」と進めてみて下さい。そうすると違う画面(3Dマップ)に遷移するはずです。

駅名緯度経度
東京35.6814139.7661
有楽町35.6751139.7633
新橋35.6655139.7596
浜松町35.6556139.7567
田町35.6457139.7476
高輪ゲートウェイ35.6355139.7407
品川35.6302139.7404
大崎35.6197139.7286
五反田35.6264139.7234
目黒35.6340139.7158
恵比寿35.6467139.7101
渋谷35.6585139.7013
原宿35.6702139.7027
代々木35.6831139.7020
新宿35.6909139.7003
新大久保35.7013139.7000
高田馬場35.7123139.7038
目白35.7212139.7066
池袋35.7289139.7104
大塚35.7314139.7287
巣鴨35.7335139.7393
駒込35.7365139.7469
田端35.7381139.7609
西日暮里35.7321139.7668
日暮里35.7278139.7710
鶯谷35.7205139.7788
上野35.7138139.7773
御徒町35.7074139.7746
秋葉原35.6987139.7742
神田35.6917139.7709

そのあと、下の図のように緯度をY座標、経度をX座標として場所を定義すると地図上に四角い点が表示されます。ちなみに場所の定義は緯度経度以外に住所を指定することもできます。ただし住所は区画を表現する手法であって緯度経度のように一意の場所を示すことができないため多少の誤差が生じる点にご注意ください。もし大きさや色を変えたかったら、右下のほうにあるレイヤのオプションをクリックすると色々と調節できるようになります。

簡単なデータで3Dマップ化してみる

今度は、山手線全30駅を3Dマップ化したいと思います。まず下の表(31行×5列)をExcelにコピー&ペーストします(Excelに上手く貼り付かない人はこちらからサンプルのExcelファイルがDL可能です)。その後、先程と同様に「挿入タブ→3Dマップ→3D Maps を開く」と進めてみて下さい。

駅名緯度経度乗降者数[千]駅名の
文字数
東京35.6814139.76619342
有楽町35.6751139.76333463
新橋35.6655139.75965632
浜松町35.6556139.75673243
田町35.6457139.74763122
高輪ゲートウェイ35.6355139.7407308
品川35.6302139.74047662
大崎35.6197139.72863462
五反田35.6264139.72342823
目黒35.6340139.71582312
恵比寿35.6467139.71012953
渋谷35.6585139.70137412
原宿35.6702139.70271502
代々木35.6831139.70201403
新宿35.6909139.700315782
新大久保35.7013139.70001024
高田馬場35.7123139.70384234
目白35.7212139.7066762
池袋35.7289139.710411332
大塚35.7314139.72871172
巣鴨35.7335139.73931542
駒込35.7365139.7469992
田端35.7381139.7609942
西日暮里35.7321139.76682014
日暮里35.7278139.77102303
鶯谷35.7205139.7788522
上野35.7138139.77733762
御徒町35.7074139.77461413
秋葉原35.6987139.77425043
神田35.6917139.77092122

そのあと、先程と同様に緯度をY座標、経度をX座標として場所を定義したあと、高さに乗降者数、分類に駅名の文字数を指定してみて下さい。そうすると高さをもったマップが表示されるはずです。この棒グラフの高さは乗降者数の値と相関しており、新宿・池袋などの大規模な駅ではかなり高く表現されています。また色分けについては駅名の文字数という列の値と相関しており、同じ値は同じ色で表現されています(例えば駅名の文字数=2だったら青など)。

デザインを少し変えてみる

グラフの種類(視覚エフェクト)を変更すると、すこし雰囲気の違った地図を作成することができます。下の例はバブルという表現方法で、サイズに乗降者数を指定すればその数に比例した大きさの円を表示することができます(下図)。これでどの駅の人数が多いか一目瞭然になりました。

サイズを一定(特になにも指定しない)にすれば、下図のように点を落としたようなマップも作成できます。色や大きさはレイヤーオプションで変更することができるので、すっきりした見た目にしたければこちらの使い方もお勧めです。

グラフの種類(視覚エフェクト)をヒートマップに変更すると、サーモグラフィ(赤外線を利用した熱分布)のようなマップを得ることができます。カラースケールや影響半径を調節することで、自分の好みに合ったヒートマップを作成することができます。

次にマップのテーマを変えてみます。画面情報にテーマと書かれたアイコンがありますので、それをクリックすると12個(3行×4列)のテーマを選択することができます。

12個のテーマはそれぞれ以下のようなマップになります。航空写真や白黒ベースの地図に変更することができますので、お好みのスタイルを選択頂ければと思います。

その他にも都道府県単位でコロプレス地図(行政区画単位で塗り分けた地図)も作成可能です。以下のようなテーブルを用意してグラフの種類(視覚エフェクト)を区画にすれば作成可能です。非常にスタイリッシュな地図が手軽に作れるのですが、残念ながら市区町村には対応していないです。もし市区町村や住所単位で実施したければQGISなどのGISツールを使うことをお勧めします。

都道府県人口
東京都14040732
神奈川県9232794
大阪府8787414

Appendix

お手軽に地図を作成できるということでかなり便利な3Dマップ機能ですが、そこそこ容量の大きいデータになるとレスポンスはどうなるのかを試してみました。
【テスト環境】
・OS : Windows11 Home 64bit
・CPU: 11th Gen Intel(R) Core(TM) i3-1115G4@3.00GHz
・データ数: 約2万件
・実施内容: データを3Dマップに読み込ませる(≒下図を作成する)

結論からいうと大体1秒/100件くらいでしたので、2万件だと200秒程度、つまり3~4分で読み込みが完了しました。読み込んだ後の動作も比較的サクサク動きましたので、正直なところ点を落とすだけであればExcelの3Dマップで十分かもしれないです。

ちなみに動作を軽くしたければメッシュを活用すると良いです。緯度経度情報(点のデータ)をメッシュ(面のデータ)に解像度を落とすことで、扱う情報量を減らすことができます。具体的には以下のようなイメージになります。点では30個でもメッシュに直すと9個(情報量が約1/3)にすることができるので軽量化が図れます。メッシュには自メッシュ内の点データ総数の情報を持たせてあげることで、点データの情報を引き継いでいます。

点データ⇔メッシュの変換方法は以前記事にしましたので詳細はそちらを読んでいただければと思いますが、メッシュをうまく活用することで下図のようなヒートマップや縦棒マップを作ることが可能です。

作り方をざっくり書くと以下のとおりです。
①大量の緯度経度データを1kmMeshに変換する
まず1kmメッシュのMeshIDを計算で導きます。手計算するのが大変なので、このExcellツールを使って計算して下さい。


②MeshデータをPivotテーブルを使って数を集計する
Excelの挿入タブにあるピボットテーブルをクリックしOKを押します。別シートに切り替わりますので、行に「1kmMesh」、値に「個数 / 1kmMesh」を指定します。そうするとそのMesh内に緯度経度のポイントは何個入っているかを自動計算してくれます。


③Meshの中心座標を計算する
Pivotの結果(行ラベル、個数 / 1km)を別のExcelシートに貼り付けて、中心緯度経度を算出します。こちらも手計算は大変なのでExcelツールを活用して下さい。


④3Dマップで表示する
3Dマップを起動して、緯度に「中心緯度」、経度に「中心経度」、高さや値に「個数 / 1km」を指定すると先ほどのようなヒートマップや縦棒マップを作成することができます。ぜひ余力があればお試しください。

コメント