MULTISOUP

MULTISOUP

MULTISOUP

マルティスープ
Staff Blog

Introduction example

2018.04.08

Googleマップ上に将来推計人口をメッシュで描画する

将来推計人口

みなさん、こんちちは。

前回は、Googleマップ上に地域メッシュを緯度経度から計算して描画する方法を解説しました。しかし、ただ地域メッシュを描画しても使い道がありません。統計情報のデータを利用し色分け表示する等するほうが多いです。

Googleマップに地域メッシュを描画する

 

そこで、今回は国土地理院が公開している「1kmメッシュ別将来推計人口」データを用いて地域メッシュを描画してみたいと思います。前回と異なる点は、国土地理院のデータは Shape形式で公開されているため、地域メッシュを緯度経度から計算する必要はないことです。

 

では、早速データのダウンロードから開始します。以下のサイトにアクセスして下さい。

http://nlftp.mlit.go.jp/ksj/

 

 

ページの最下部に「1kmメッシュ別将来推計人口 ダウンロード(H29国政局推計)(shape形式)」というリンクがあるので、クリックします。

1kmメッシュ別将来推計人口 ダウンロード1

 

 

次に、ダウンロードする都道府県の選択ページになります。今回は「東京都」をチェックし、「次へ」ボタンをクリックします。

1kmメッシュ別将来推計人口 ダウンロード2

 

 

ダウンロードするファイルの選択ページになりますので。「」をチェックし、「次へ」ボタンをクリックします。

1kmメッシュ別将来推計人口 ダウンロード3

 

 

最後にアンケートページが表示されますので、アンケートを記入し「回答する」ボタンをクリックします。

1kmメッシュ別将来推計人口 ダウンロード4

 

 

利用規約が表示されますので、よく読み同意できる場合は、「はい」ボタンをクリックします。

1kmメッシュ別将来推計人口 ダウンロード5

 

 

ファイルをダウンロードするページが表示されますので、「ダウンロード」ボタンをクリックします。

1kmメッシュ別将来推計人口 ダウンロード6

 

 

zip形式のファイルがダウンロードされたと思いますので、解凍してください。解凍すると、4ファイルが作成されるはずです。最初に述べた通り、今回使用するファイルは、Shape形式になります。Googleマップにそのまま読み込むことができませんので変換する必要があります。今回は、QGISというオープンソースのフリーソフトを使用し、GeoJSON形式に変換します。

 

QGISは、以下のサイトよりダウンロードしてインストールしてください。最近バージョン3が公開されましたが、まだ利用したことがないので、バージョン2.18を利用します。

https://qgis.org/ja/site/forusers/download.html

 

 

インストールができましたら、QGISを起動し、先程解凍したファイル内の「Mesh3_POP_13.shp」をドラッグしてください。下図のように、東京都の1kmメッシュが描画されます。

1kmメッシュ別将来推計人口  QGIS1

 

GeoJSONに変換するため、サイドメニューの「Mesh 3 POP13」上を右クリックし「名前を付けて保存する」をクリックします。

1kmメッシュ別将来推計人口  QGIS2

 

保存ダイアログが表示されますので、形式「GeoJSON」、CRS「選択CRS(EPSG:4612、JGD2000」を選択し、保存してください。

1kmメッシュ別将来推計人口  QGIS3

 

今回利用するデータには、以下の属性が登録されているので、この数値を利用して色分けをしてみます。

属性名説明
MESH_ID基準地域メッシュ(第3次地域区画)コード
CITY_CODE5桁の市区町村コード
POP20101kmメッシュ別2010年人口数(補正あり)
POP2020 (A~D)

1kmメッシュ別2020年人口数(補正あり)

※0-14歳人口(A)、15-64歳人口(B)、65歳以上人口(C)、75歳以上人口(D)

POP2025 (A~D)1kmメッシュ別2025年人口数(補正あり)
POP2030 (A~D)1kmメッシュ別2030年人口数(補正あり)
POP2035 (A~D)1kmメッシュ別2035年人口数(補正あり)
POP2040 (A~D)

1kmメッシュ別2040年人口数(補正あり)

POP2045 (A~D)1kmメッシュ別2045年人口数(補正あり)
POP2050 (A~D)1kmメッシュ別2050年人口数(補正あり)
INDEX2020 (A~D)

2010年人口数を100とした場合の2020年人口数の指数(1kmメッシュ別)

※0-14歳人口(A)、15-64歳人口(B)、65歳以上人口(C)、75歳以上人口(D)

INDEX2025 (A~D)2010年人口数を100とした場合の2025年人口数の指数(1kmメッシュ別)
INDEX2030 (A~D)2010年人口数を100とした場合の2030年人口数の指数(1kmメッシュ別)
INDEX2035 (A~D)2010年人口数を100とした場合の2035年人口数の指数(1kmメッシュ別)
INDEX2040 (A~D)

2010年人口数を100とした場合の2040年人口数の指数(1kmメッシュ別)

INDEX2045 (A~D)2010年人口数を100とした場合の2045年人口数の指数(1kmメッシュ別)
INDEX2050 (A~D)2010年人口数を100とした場合の2050年人口数の指数(1kmメッシュ別)

 

 

Google Maps JavaScript API には、GeoJSON形式のファイルを描画するためのメソッドがあります。また、スタイルを指定することにより、人口の数値によって色を設定することが可能です。以前のブログでも紹介しました。

GoogleマップにGeoJSONで図形を描画する

 

// 地図を初期化
var map = new google.maps.Map(document.getElementById("map"), {
	zoom : 10,
	center: new google.maps.LatLng(35.7, 139.7),
	mayTypeId: google.maps.MapTypeId.ROADMAP,
});
// GeoJSONを読み込み
map.data.loadGeoJson('geojson/13.geojson');
// スタイルを設定
map.data.setStyle(function(feature) {
	// 2020年の人口総数
	var val = feature.getProperty("POP2020");
	// 人口総数によって色を決定
	var color = "#000000";
	if (val > 10000) {
		color = "#ff0000";
	} else if (val > 5000) {
		color = "#00ff00";
	} else if (val > 1000) {
		color = "#00ff00";
	}
	return ({
		fillColor: color,
		fillOpacity: 0.5,
		strokeColor: '#ff0000',        
		strokeWeight: 1,
		strokeOpacity: '0.5',
		clickable: true,
		zIndex: 1
	});
});

 

サンプルのデモサイトを作成しました。

将来推計人口

 

 

いかがでしょうか。

データさえあれば、色分けしてのメッシュの表示は簡単に行えます。

一番難しいのはデータを用意することですが、政府が公開している「政府統計の総合窓口(e-Stat)」からも様々な統計データをダウンロードすることができます。

https://www.e-stat.go.jp/

 

 

今回は、ShapeファイルからGeoJSONに変換して作業を行いました。静的なデータを表示するだけであれば、今回の方法でも良いのですが、動的に何かをしたい!や全国のデータを表示したい!という場合には、GeoJSONは向きません。(多分)

そのような場合、PostgreSQL に拡張ユーティリティ「PostGIS」を用いると良いです。Shapeファイルを変換すれば、PostgreSQLにデータを登録できるので、SQLでデータを抽出することが可能になります。次回は、その方法を解説していこうと思います。

 

 

 

 

地図や位置情報を用いたシステムのご提案・開発ならマルティスープへ

マルティスープは、創業以来のGISとモバイル開発の実績と技術力で、営業支援システムやリサーチ・公共インフラ・工事・警備業界の現場を支援するシステム開発など、地図や位置情報を使った業務システムの導入のご提案や開発をいたします。

現場をつなぐコミュニケーションが屋内外業務のパフォーマンスを最大限に。マルティスープのiField(アイ・フィールド)®シリーズは、屋内外業務の現場の実力を減少させるコミュニケーション障壁を除き、使い慣れたスマートデバイスを使って 現場の実力をリアルに伝えるサービス。

位置・空間情報のエキスパート集団として一緒に働きませんか?

マルティスープは地図情報をはじめとする位置・空間情報技術のエキスパート集団です。当社で日々研究している地図や位置情報といった技術は、災害支援など貢献度の高いシステムとして使用されることもあれば、スマートフォンアプリのゲームとして使われることもあり、その利用用途・価値は、今後もますます広がっていっています。
私たちの企業理念は、「創る喜び、使う喜び」です。
今後の開発体制をより強化するために、新卒・中途問わず、当社の未来を共に創っていただける新メンバーを募集します!

【関連記事】こんな記事も読まれています

2017.03.22

Google マップで「竹島」と表示する方法は?

みなさん、こんにちは。

Google Maps JavaScript API は、みなさんご存知のとおり多言語に対応した地図です。そのため、l・・・

続きを読む

2016.10.11

インバウンド対策! 地図各社の多言語対応比較

みなさん、こんにちは。

 

先日ホームページを見たというお客様より電話で問い合わせがありました。

 ・・・

続きを読む

2018.06.28

新プランの Places API を調べてみました

みなさん、こんにちは。

新プラン Google Maps Platform の中で、 Places API の価格体系は、非常に細かく分類・・・

続きを読む

 - GIS, Google Maps JavaScript API, スタッフ日記