PLATEAU 3D都市モデルをAPIで探す
PLATEAU(国土交通省が主導する3D都市モデルの整備・活用プロジェクト)は、全国300都市を超える建物・地形・道路の3Dデータを、CityGMLという国際標準形式でオープンデータとして公開しています。データはG空間情報センター(geospatial.jp)で配布されており、そのCKAN APIを叩けばプログラムから検索できます。認証も不要です。ただし実際に全件取得して中身を眺めると、地域名フィールドの表記が揃っていない、ライセンスが一律ではない、といった「カタログの実態」が見えてきます。このガイドでは、PLATEAUで何が取れるのかと、検索を実装するときに知っておくべき癖を、実測値つきで整理します。
PLATEAUで取れるデータ
PLATEAUの中心はCityGMLという3D都市モデルの標準形式です。建物だけのデータだと思われがちですが、実際にはフィーチャータイプごとに幅広い都市情報が入っています。bldg(建築物・建物部品・付属物)、dem(地形の起伏)、tran(道路)、veg(植生)、frn(都市設備)といった物理的なものに加えて、urf(都市計画決定情報)、luse(土地利用)といった制度的な情報も含まれます。
特徴的なのが災害リスク系です。fld(洪水浸水想定区域)、tnm(津波浸水想定)、htd(高潮浸水想定)、ifld(内水浸水想定)、lsld(土砂災害警戒区域)が3Dの都市モデルと同じ座標系で提供されるため、「この建物のこの階まで浸水する」といった重ね合わせがそのままできます。防災シミュレーションでPLATEAUが使われるのはこのためです。
整備規模は、公式サイトの記載で306地点(2026年5月時点)。G空間情報センターのカタログ上では、PLATEAUタグの付いたデータセットが491件、その配下のリソース(実ファイル)が合計4,091件ありました(2026年7月時点の実測)。
データセットを検索する(CKAN API)
PLATEAUのデータはG空間情報センターのCKAN(オープンデータのカタログ基盤)に載っているため、CKANの標準APIで検索できます。リクエストは `https://www.geospatial.jp/ckan/api/3/action/package_search?q=PLATEAU&fq=tags:PLATEAU&rows=1000` のような形です。認証は不要で、そのまま叩けます。
レスポンスはCKAN標準の `{ success, result: { count, results[] } }` という構造です。1件のデータセットには、title(データセット名)、area(対象地域)、organization.title(提供組織)、tags(タグ)、license_title(ライセンス)、num_resources(ファイル数)、resources[](各ファイルのformat・size・url)が入っています。
ここで注意したいのが rows パラメータです。CKANはデフォルトでは一部しか返さないため、rows を明示的に大きく指定しないと全件を見られません。PLATEAUタグ付きは全491件なので、rows=1000 を指定すれば1回のリクエストで取り切れます。件数を絞ったまま「全部見た」と思い込むのが最初の事故です。
なお type フィールドは常に "dataset" という固定値で、建物なのか道路なのかといった中身の区別には使えません。データの種類を絞りたい場合は tags を見てください。
地域で絞り込むときの落とし穴(表記ゆれが2割)
「静岡県のデータだけ欲しい」といった絞り込みは、area フィールドで行うことになります。しかしこの area の値が、実データでは驚くほど揃っていません。基本形は "静岡県_静岡市" のように「都道府県_市区町村」ですが、実際に491件を集計すると、約99件(全体の約20%)が "静岡県,静岡県_菊川市" のようにカンマ区切りで都道府県名が重複した値になっていました。
さらに "日本全国"、"東京都区部全域"、"東京都八王子市南大沢"(アンダースコアなし)、"未入力" といった非定型の値も混在します。東京23区は市区町村を持たず "東京都" 単独で入るケースもあります。
この癖を知らずに `area === "静岡県"` のような完全一致でフィルタを書くと、ヒットは0件になります。都道府県名は他の文字列と連結された状態で入っているからです。実装するなら、area・title・tags・組織名を連結した文字列に対する部分一致で拾うのが現実的です。カタログのメタデータは人手で入力されている以上、正規化されている前提のコードは書かないほうが安全です。
CityGML本体はZIPの中にある
検索結果の resources[] を見ると、format 欄に "XML" が入っているものはほとんどありません(4,091リソース中2件のみ)。最も多いのは ZIP で2,660件、次いで TEXT/MARKDOWN が592件、PDF が384件、XLSX が200件、7Z が134件という内訳でした。
つまりCityGMLは、単体のXMLとして直接置かれているのではなく、ZIP(一部は7z)に梱包されて配布されているのが実態です。「format=XML で絞ればCityGMLが取れる」と考えると、ほぼ何も取れません。ZIPリソースのURLを取得してダウンロードし、展開してから中のCityGMLを読む、という流れになります。
ちなみに size フィールドは、4,091リソースのうち343件にしか入っていません(残り3,748件は空)。カタログAPIのレスポンスだけから「PLATEAU全体で何GBあるか」を正確に算出することはできない、ということです。
ライセンスは一律ではない
PLATEAUの公式サイトポリシーでは、原則として「公共データ利用規約(PDL1.0)」に準拠するとされています。PDL1.0はCC BY 4.0と互換性があり、商用利用も可能です。出典表記は必須で、加工した場合は「加工して作成」である旨の明記が求められます。国土交通省が作成したかのように公表することは禁止されています。
ただし、カタログ上の個別データセットのライセンス表記は一律ではありません。491件を集計すると、486件は "PLATEAU Site Policy「3.著作権について」に拠る" ですが、残りは「クリエイティブ・コモンズ 表示」が2件、"CC-BY" が2件、"Open Data Commons Open Database License" が1件と分かれていました。3D都市モデルのオープンデータの著作権は各地方公共団体に帰属するとPLATEAU公式が明記していることもあり、「PLATEAUは全部CC-BY」と一括りにするのは正確ではありません。利用前に、対象データセットの license_title を個別に確認してください。
実際に叩いてみる(G空間情報センター CKAN・登録不要)
PLATEAUのデータは G空間情報センター(CKAN)の package_search APIで登録不要で検索できます。q に検索語、rows に件数を渡すと、result.count に総件数、result.results[] に各データセット(name・title・organization・配布リソース)が返ります。
curl -s "https://www.geospatial.jp/ckan/api/3/action/package_search?q=PLATEAU&rows=1"
# 実際のレスポンス(抜粋)
{
"success": true,
"result": {
"count": 495,
"results": [{
"name": "plateau",
"title": "3D都市モデル(Project PLATEAU)ポータルサイト",
"organization": { "name": "toshi", "title": "都市局" }
}]
}
}出典
元システムエンジニア。Web系アプリ開発6年+ソリューション9年、IT実務およそ15年。個人開発者として、政府オープンデータや各府省のAPIを実際に叩いて検証し、「何が取れるか」「実装時にどこで詰まるか」「どう活用するか」を一次検証にもとづいて記録しています。
運営者・検証方針について →