ここ数年、自治体のオープンデータが増えています。その中でも、東京都のオープンデータは多岐にわたるデータが公開されており、アプリ開発に活用することができます。今回は、東京都オープンデータAPIカタログサイトの紹介と、実際にMonacaアプリの中で利用する方法を解説します。
東京都オープンデータAPIカタログサイトで扱っているデータ
東京都オープンデータカタログでは、執筆時点(2024年3月)で53,487件のAPIが公開されています。

たとえば、以下のようなデータが含まれています。
- 都営バス 運賃 普通運賃 > 普通運賃【東京23区内】
- 東京都 新型コロナウイルス感染症 支援情報 東京都 新型コロナウイルス感染症 支援情報
- 【位置情報】公衆無線LANアクセスポイント一覧 公衆無線LANアクセスポイント一覧
これらのデータは東京都全体で出ているものもあれば、市区町村ごとに分かれているものもあります。
データの使い方
API検索 - 東京都オープンデータAPIカタログサイト以下で公開されているものは、JSONまたはXMLによるAPIが公開されています。データセット - 東京都オープンデータカタログサイトは、ExcelやPDFファイルがアップロードされているので、そのままではアプリの中では使いづらいでしょう。
各データはライセンスが明記されています。ライセンスの範囲内で利用するようにしましょう。

Monacaアプリでの利用方法
今回は【位置情報】みどころマップ情報 三鷹市みどころマップ - 東京都オープンデータAPIカタログサイトを使って、取得したデータを地図に表示してみます。
サンプルプロジェクトのソースコードは、GitHubに配置しています。
https://github.com/monaca-samples/tokyo-open-data-sample-map
なお、検索はできるようですが、位置情報による絞り込みや並び替えはできないようなので、その点は注意が必要です。
データは以下のようなJSONで取得できます。データのキーが日本語なので注意してください。
今回はFramework7とMapboxを使っています。Mapboxの利用時にはユーザー登録と、アクセストークンの取得が必要です。
HTML
www/index.html
では、MapboxのCSSとJavaScriptを読み込んでいます。また、ライブラリのturfも読込みます。
次に、turf
ライブラリについて説明します。これは、地図上の複数の位置情報から中心点を計算するのに便利なJavaScriptライブラリです。このライブラリを使うことで、地図上に複数の点がある場合にその中心を簡単に見つけ出すことができます。
さらに、MapboxではWebワーカーを使用しているため、Content Security Policy(CSP)を設定して、ワーカーがblobにアクセスできるようにする必要があります。以下のメタタグは、そのCSP設定です。
画面は別途 www/pages/map.html
に記述しています。 index.html
ではFramework7のルーティング設定のみです。
JavaScriptの初期設定
アプリの初期化の際に、Mapboxのアクセストークンを設定します。
続いて www/js/route.js
にてルーティング設定を行っています。
ここからは www/pages/map.html
に記述している内容を紹介します。
テンプレート
地図表示とリスト表示を切り替えるためのボタンを設置します。地図上のマーカーをタップした際に表示するシートもここに記述しています。
JavaScriptの実装
JavaScriptの実装を解説します。
まず、東京都オープンデータカタログのAPIのエンドポイントを設定します。
必要な変数を定義します
Framework7の画面がマウントされた際には、 $onMounted
が呼ばれます。
この中で地図の初期化や、データの取得と表示を行います。
initMap
では、Mapboxの初期化を行います。
getData
では、APIからランドマーク情報を取得します。
addLandmark
では、取得したランドマーク情報を地図に表示します。
JSONのキー名が日本語なので注意してください。
ランドマークを表示したら、各ランドマークがすべて表示されるように地図の表示を調整します。

地図上のマーカーをクリックした際に、シートを表示するためのクラス clickableMarker
を以下のように実装します。

地図とリスト表示の切り替え
アプリケーションでは、地図とリストの表示を切り替えることができます。
この切り替えを行うための関数 changeView
を以下のように実装しています。
この関数では、以下の処理を行っています。
- セグメントボタンのアクティブ状態を切り替えます。
- 地図とリストの表示を切り替えます。
- 表示を更新します。
ランドマークまでの距離計算
リスト表示では、現在地からランドマークまでの距離を計算して表示します。この距離計算を行うための関数 distance
を以下のように実装しています。
この関数では、以下の処理を行っています。
- 緯度経度をラジアンに変換します。
- 現在地の緯度経度を取得します。
- 球面三角法を用いて、現在地とランドマークの距離を計算します。
- 計算結果を小数点以下1桁に丸めて返します。

これで、オープンデータを取得して地図に表示するアプリができあがります。
まとめ
今回は東京都オープンデータAPIカタログサイトからデータを取得し、Monacaアプリに表示する方法を解説しました。オープンデータを活用することで、アプリの魅力を高められるでしょう。ぜひ、自治体のオープンデータを活用してみてください。
JSONデータはCORS上の制限もなさそうで、Monacaアプリからも利用できます。ぜひ皆さんのアプリでも利用してください。