This is the full developer documentation for PLATEAU 配信サービス
# PLATEAU 配信サービス
> PLATEAU 3D都市モデル配信サービスの公式ドキュメント
[データセット一覧絞り込み検索して配信 URL をコピー](/datasets/explorer/)[PLATEAU-CityGMLCityGML 形式データの配信仕様と CityGML API](/datasets/citygml/)[PLATEAU-3DTiles / MVT3D Tiles / MVT データとデータカタログ API](/datasets/3d-tiles/)[PLATEAU-Terrain地形モデルの terraindb / Terrain-RGB 配信](/datasets/terrain/)[PLATEAU-Ortho航空写真オルソ画像タイルの配信](/datasets/ortho/)[API リファレンスREST API と GraphQL のリファレンス & プレイグラウンド](/api/)[MCP ServerAI クライアント向け Model Context Protocol サーバー](/mcp/overview/)[Agent SkillsAI コーディングエージェント向けの Agent Skills](/skills/overview/)[可視化用データ変換仕様CityGML から 3D Tiles / MVT への変換仕様](/spec/visualization/)
# API リファレンス
> PLATEAU 配信サービスが提供する REST API と GraphQL API のリファレンス
PLATEAU 配信サービスでは、用途に応じて 2 種類の API を提供しています。
[REST API ](/api/rest/)CityGML のパック・属性取得・データカタログなどのエンドポイント。OpenAPI 仕様 (Scalar) で対話的に試せます。
[GraphQL API ](/api/graphql/)データカタログを柔軟に検索・取得できる GraphQL エンドポイント。スキーマリファレンスとプレイグラウンドを公開しています。
## エンドポイント
[Section titled “エンドポイント”](#エンドポイント)
| API | エンドポイント | スキーマ定義 |
| :------ | :------------------------------------------------------- | :--------------------------------------------------------------------------------------- |
| REST | `https://api.plateauview.mlit.go.jp` | [OpenAPI 3.0 (JSON)](https://api.plateauview.mlit.go.jp/openapi.json) |
| GraphQL | `https://api.plateauview.mlit.go.jp/datacatalog/graphql` | [introspection](https://api.plateauview.mlit.go.jp/datacatalog/graphql)(GraphiQL から確認可能) |
注意
これらの API は試験運用中です。スキーマやレスポンスは予告なく変更されることがあり、提供期間やサービスレベルの保証もしておりません。
# GraphQL API
> PLATEAU データカタログ GraphQL API の概要・利用方法・スキーマ・プレイグラウンド
PLATEAU データカタログ API は **GraphQL** ベースで提供されており、必要な情報を 1 リクエストで柔軟に取得できます。
## エンドポイント
[Section titled “エンドポイント”](#エンドポイント)
```plaintext
https://api.plateauview.mlit.go.jp/datacatalog/graphql
```
ブラウザで上記 URL を開くと、組み込みの **GraphiQL** が起動し、対話的にクエリを試せます。
## ドキュメント
[Section titled “ドキュメント”](#ドキュメント)
[スキーマリファレンス ](/api/graphql/schema/)全ての Query / Object / Input / Enum 型の自動生成リファレンス
[プレイグラウンド ](/api/graphql/playground/)ブラウザ上で GraphQL クエリを実行できる対話環境
## クエリ例
[Section titled “クエリ例”](#クエリ例)
```graphql
query {
area(code: "13101") {
id
type
datasets {
id
name
items {
id
name
url
}
}
}
}
```
```bash
curl -X POST https://api.plateauview.mlit.go.jp/datacatalog/graphql \
-H 'Content-Type: application/json' \
--data '{"query":"{ area(code: \"13101\") { datasets { name items { url } } } }"}'
```
## スキーマ
[Section titled “スキーマ”](#スキーマ)
スキーマ定義(SDL)は [plateauapi (GitHub)](https://github.com/Project-PLATEAU/PLATEAU-VIEW-5.0/tree/main/server/datacatalog/plateauapi) のソースコードから生成されており、本ドキュメントの[スキーマリファレンス](/api/graphql/schema/)も同じ introspection から自動生成されています。
注意
GraphQL のスキーマやレスポンスは予告なく変更されることがあります。動作速度低下を防ぐため、一定以上の複雑なクエリは制限されます。レスポンスのサイズが数 MB 以上になることがあるため、モバイル回線での利用にはご注意ください。
# GraphQL プレイグラウンド
> ブラウザ上で PLATEAU データカタログ GraphQL API を対話的に試せるプレイグラウンド
下のエクスプローラから、PLATEAU データカタログ GraphQL API のクエリを実行できます。 左側のスキーマパネルで型を確認し、中央のエディタでクエリを書いて再生ボタンで実行してください。
埋め込みが表示されない場合は、API エンドポイントを直接ブラウザで開くと組み込みの **GraphiQL** が起動します:
# GraphQL スキーマリファレンス
> PLATEAU データカタログ API の GraphQL スキーマ全型定義
自動生成
このページは PLATEAU データカタログ GraphQL API の introspection から自動生成されています。実装の真実の源は [`/datacatalog/graphql` エンドポイント](https://api.plateauview.mlit.go.jp/datacatalog/graphql) です。対話的にクエリを試したい場合は [プレイグラウンド](/api/graphql/playground/) を使ってください。
### Query
[Section titled “Query”](#query)
PLATEAU GraphQL API のクエリルート。
| Field | Argument | Type | Description |
| :------------------ | -------: | :-------------------------------------------- | :------------------------------- |
| **node** | | [Node](#node) | 指定されたIDでオブジェクトを取得します。 |
| id | | [ID](#id)! | |
| **nodes** | | \[[Node](#node)]! | 指定されたIDのリストからオブジェクトを検索します。 |
| ids | | \[[ID](#id)!]! | |
| **area** | | [Area](#area) | 地域コード(都道府県コードや市区町村コード)で地域を取得します。 |
| code | | [AreaCode](#areacode)! | |
| **areas** | | \[[Area](#area)!]! | 地域を検索します。 |
| input | | [AreasInput](#areasinput) | |
| **datasetTypes** | | \[[DatasetType](#datasettype)!]! | データセットの種類を検索します。 |
| input | | [DatasetTypesInput](#datasettypesinput) | |
| **datasets** | | \[[Dataset](#dataset)!]! | データセットを検索します。 |
| input | | [DatasetsInput](#datasetsinput) | |
| **citygmlDatasets** | | \[[CityGMLDataset](#citygmldataset)!]! | CityGMLデータセットを検索します。 |
| input | | [CityGMLDatasetsInput](#citygmldatasetsinput) | |
| **plateauSpecs** | | \[[PlateauSpec](#plateauspec)!]! | 利用可能な全てのPLATEAU都市モデルの仕様を取得します。 |
| **years** | | \[[Int](#int)!]! | 利用可能な全てのデータセットの年度(西暦)を取得します。 |
### Objects
[Section titled “Objects”](#objects)
#### City
[Section titled “City”](#city)
市区町村
| Field | Argument | Type | Description |
| :-------------------- | -------: | :-------------------------------- | :------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **type** | | [AreaType](#areatype)! | 地域の種類 |
| **code** | | [AreaCode](#areacode)! | 市区町村コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **name** | | [String](#string)! | 市区町村名 |
| **prefectureId** | | [ID](#id)! | 市区町村が属する都道府県のID。 |
| **prefectureCode** | | [AreaCode](#areacode)! | 市区町村が属する都道府県コード。2桁の数字から成る文字列です。 |
| **prefecture** | | [Prefecture](#prefecture) | 市区町村の都道府県。 |
| **wards** | | \[[Ward](#ward)!]! | 市区町村に属する区。政令指定都市の場合のみ存在します。 |
| **datasets** | | \[[Dataset](#dataset)!]! | 市区町村に属するデータセット(DatasetInput内のareasCodeの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
| **parentId** | | [ID](#id) | 地域の親となる地域のID。市区町村の親は都道府県です。政令指定都市の区の親は市です。 |
| **parent** | | [Prefecture](#prefecture)! | 地域の親となる地域。 |
| **planarCrsEpsgCode** | | [String](#string) | 平面直角座標系のEPSGコード。例えば、東京都の場合は “6677” です。 |
| **citygmlId** | | [ID](#id) | CityGMLデータセットのID。 |
| **citygml** | | [CityGMLDataset](#citygmldataset) | CityGMLデータセット。 |
| **children** | | \[[Area](#area)!]! | 地域に属する子地域。 |
#### CityGMLDataset
[Section titled “CityGMLDataset”](#citygmldataset)
PLATEAU標準製品仕様書に基づくCityGMLのデータセット。
| Field | Argument | Type | Description |
| :----------------------- | -------: | :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **year** | | [Int](#int)! | データセットの整備年度(西暦)。 |
| **registrationYear** | | [Int](#int)! | データセットの登録年度(西暦)。 |
| **prefectureId** | | [ID](#id)! | データセットが属する都道府県のID。 |
| **prefectureCode** | | [AreaCode](#areacode)! | データセットが属する都道府県コード。2桁の数字から成る文字列です。 |
| **cityId** | | [ID](#id)! | データセットが属する市のID。 |
| **cityCode** | | [AreaCode](#areacode)! | データセットが属する市コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **plateauSpecMinorId** | | [ID](#id)! | データセットが準拠するPLATEAU都市モデルの仕様のマイナーバージョンへのID。 |
| **url** | | [String](#string)! | CityGMLのzip形式のファイルのURL。 |
| **compositeUrl** | | [String](#string) | 自治体・整備年度を指定して zip にリダイレクトする安定 URL (`/datacatalog/citygml/{cityCode}-{year}/citygml.zip`)。 CMS のアセットパスが変わってもアプリケーション側の URL を維持できます。 |
| **latestUrl** | | [String](#string) | compositeUrl と同じ書式で整備年度を `latest` に置き換えた URL。 自治体について利用可能な最新整備年度の zip に自動的に追従します。 |
| **gspatialjpDatasetUrl** | | [String](#string) | G空間情報センターへのURL。 |
| **prefecture** | | [Prefecture](#prefecture)! | データセットが属する都道府県。 |
| **city** | | [City](#city)! | データセットが属する市。 |
| **plateauSpecMinor** | | [PlateauSpecMinor](#plateauspecminor)! | データセットが準拠するPLATEAU都市モデルの仕様。 |
| **featureTypes** | | \[[String](#string)!]! | CityGMLが含む地物型コードのリスト。 |
| **metadataZipUrls** | | \[[String](#string)!]! | CityGMLのメタデータを含むzipファイルURLのリスト。 |
| **admin** | | [Any](#any) | 管理者用 |
#### GenericDataset
[Section titled “GenericDataset”](#genericdataset)
ユースケースデータなどを含む、その他のデータセット。
| Field | Argument | Type | Description |
| :-------------------- | -------: | :--------------------------------------------- | :--------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **name** | | [String](#string)! | データセット名 |
| **description** | | [String](#string) | データセットの説明 |
| **year** | | [Int](#int)! | データセットの整備年度(西暦) |
| **registerationYear** | | [Int](#int)! | データセットの公開年度(西暦) |
| **groups** | | \[[String](#string)!] | データセットを分類するグループ。グループが階層構造になっている場合は、親から子の順番で複数のグループ名が存在することがあります。 |
| **openDataUrl** | | [String](#string) | データセットの公開データのURL。 |
| **prefectureId** | | [ID](#id) | データセットが属する都道府県のID。 |
| **prefectureCode** | | [AreaCode](#areacode) | データセットが属する都道府県コード。2桁の数字から成る文字列です。 |
| **cityId** | | [ID](#id) | データセットが属する市のID。 |
| **cityCode** | | [AreaCode](#areacode) | データセットが属する市コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **wardId** | | [ID](#id) | データセットが属する区のID。 |
| **wardCode** | | [AreaCode](#areacode) | データセットが属する区コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **typeId** | | [ID](#id)! | データセットの種類のID。 |
| **typeCode** | | [String](#string)! | データセットの種類コード。 |
| **prefecture** | | [Prefecture](#prefecture) | データセットが属する都道府県。 |
| **city** | | [City](#city) | データセットが属する市。 |
| **ward** | | [Ward](#ward) | データセットが属する区。 |
| **type** | | [GenericDatasetType](#genericdatasettype)! | データセットの種類。 |
| **items** | | \[[GenericDatasetItem](#genericdatasetitem)!]! | データセットのアイテム。 |
| **ar** | | [Boolean](#boolean)! | PLATEAU ARで閲覧可能なデータセットかどうか。 |
| **admin** | | [Any](#any) | 管理者用 |
#### GenericDatasetItem
[Section titled “GenericDatasetItem”](#genericdatasetitem)
その他のデータセットのアイテム。
| Field | Argument | Type | Description |
| :----------- | -------: | :-------------------------------- | :------------------------------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **format** | | [DatasetFormat](#datasetformat)! | データセットのアイテムのフォーマット。 |
| **name** | | [String](#string)! | データセットのアイテム名。 |
| **url** | | [String](#string)! | データセットのアイテムのURL。 |
| **layers** | | \[[String](#string)!] | データセットのアイテムのレイヤー名。MVTやWMSなどのフォーマットの場合のみ存在。 レイヤー名が複数存在する場合は、同時に複数のレイヤーを表示可能であることを意味します。 |
| **parentId** | | [ID](#id)! | データセットのアイテムが属するデータセットのID。 |
| **parent** | | [GenericDataset](#genericdataset) | データセットのアイテムが属するデータセット。 |
#### GenericDatasetType
[Section titled “GenericDatasetType”](#genericdatasettype)
その他のデータセットの種類。
| Field | Argument | Type | Description |
| :----------- | -------: | :------------------------------------------- | :--------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **code** | | [String](#string)! | データセットの種類コード。「usecase」など。 |
| **name** | | [String](#string)! | データセットの種類名。 |
| **category** | | [DatasetTypeCategory](#datasettypecategory)! | データセットの種類のカテゴリ。 |
| **order** | | [Int](#int)! | データセットの種類の順番を示す数字。大きいほど後に表示されます。 |
| **datasets** | | \[[GenericDataset](#genericdataset)!]! | データセット(DatasetInput内のincludeTypesとexcludeTypesの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
#### GlobalArea
[Section titled “GlobalArea”](#globalarea)
全球(グローバル)エリア。特定の地域に属さない全球データを扱うための特殊なエリア。
| Field | Argument | Type | Description |
| :----------- | -------: | :------------------------------ | :------------------------------------------- |
| **id** | | [ID](#id)! | |
| **type** | | [AreaType](#areatype)! | 地域の種類 |
| **code** | | [AreaCode](#areacode)! | 地域コード。“global” という固定値。 |
| **name** | | [String](#string)! | 地域名。“全球” という固定値。 |
| **datasets** | | \[[Dataset](#dataset)!]! | 全球データセット(DatasetInput内のareasCodeの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
| **parentId** | | [ID](#id) | 地域の親となる地域のID。GlobalAreaの場合は常にnull。 |
| **parent** | | [Area](#area) | 地域の親となる地域。GlobalAreaの場合は常にnull。 |
| **children** | | \[[Area](#area)!]! | 地域に属する子地域。GlobalAreaの場合は常に空配列。 |
#### PlateauDataset
[Section titled “PlateauDataset”](#plateaudataset)
PLATEAU都市モデルの通常のデータセット。例えば、地物型が建築物モデル(bldg)などのデータセットです。
| Field | Argument | Type | Description |
| :--------------------- | -------: | :--------------------------------------------- | :--------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **name** | | [String](#string)! | データセット名 |
| **subname** | | [String](#string) | データセットのサブ名。都市計画決定情報の○○区域や洪水浸水想定区域の河川名などが含まれます。 |
| **subcode** | | [String](#string) | データセットのサブコード。都市計画決定情報の○○区域や洪水浸水想定区域の河川名などのコード表現が含まれます。 |
| **suborder** | | [Int](#int) | データセットのサブコードの順番。大きいほど後に表示されます。 |
| **description** | | [String](#string) | データセットの説明 |
| **year** | | [Int](#int)! | データセットの整備年度(西暦) |
| **registerationYear** | | [Int](#int)! | データセットの公開年度(西暦) |
| **groups** | | \[[String](#string)!] | データセットを分類するグループ。グループが階層構造になっている場合は、親から子の順番で複数のグループ名が存在することがあります。 |
| **openDataUrl** | | [String](#string) | データセットの公開データのURL。 |
| **prefectureId** | | [ID](#id) | データセットが属する都道府県のID。 |
| **prefectureCode** | | [AreaCode](#areacode) | データセットが属する都道府県コード。2桁の数字から成る文字列です。 |
| **cityId** | | [ID](#id) | データセットが属する市のID。 |
| **cityCode** | | [AreaCode](#areacode) | データセットが属する市コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **wardId** | | [ID](#id) | データセットが属する区のID。 |
| **wardCode** | | [AreaCode](#areacode) | データセットが属する区コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **typeId** | | [ID](#id)! | データセットの種類のID。 |
| **typeCode** | | [String](#string)! | データセットの種類コード。 |
| **prefecture** | | [Prefecture](#prefecture) | データセットが属する都道府県。 |
| **city** | | [City](#city) | データセットが属する市。 |
| **ward** | | [Ward](#ward) | データセットが属する区。 |
| **type** | | [PlateauDatasetType](#plateaudatasettype)! | データセットの種類。 |
| **items** | | \[[PlateauDatasetItem](#plateaudatasetitem)!]! | データセットのアイテム。 |
| **ar** | | [Boolean](#boolean)! | PLATEAU ARで閲覧可能なデータセットかどうか。 |
| **admin** | | [Any](#any) | 管理者用 |
| **plateauSpecMinorId** | | [ID](#id)! | データセットが準拠するPLATEAU都市モデルの仕様のマイナーバージョンへのID。 |
| **plateauSpecMinor** | | [PlateauSpecMinor](#plateauspecminor)! | データセットが準拠するPLATEAU都市モデルの仕様。 |
| **river** | | [River](#river) | 河川。地物型が洪水浸水想定区域モデル(fld)の場合のみ存在します。 |
#### PlateauDatasetItem
[Section titled “PlateauDatasetItem”](#plateaudatasetitem)
PLATEAU都市モデルのデータセットのアイテム。
| Field | Argument | Type | Description |
| :---------------------- | -------: | :-------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **format** | | [DatasetFormat](#datasetformat)! | データセットのアイテムのフォーマット。 |
| **formatVersion** | | [String](#string) | データセットのアイテムのフォーマットのバージョン。3D Tiles の場合に `1.0` または `1.1` のいずれかが入ります。 2025年度以降に Flow で変換された 3D Tiles は `1.1`、それ以外(従来の FME 等で変換されたもの)は `1.0` です。 MVT など 3D Tiles 以外のフォーマットでは null になります。 |
| **name** | | [String](#string)! | データセットのアイテム名。 |
| **url** | | [String](#string)! | データセットのアイテムのURL。 |
| **layers** | | \[[String](#string)!] | データセットのアイテムのレイヤー名。MVTやWMSなどのフォーマットの場合のみ存在。 レイヤー名が複数存在する場合は、同時に複数のレイヤーを表示可能であることを意味します。 |
| **compositeUrl** | | [String](#string) | 自治体・整備年度・LOD・テクスチャを spec として動的に解決するエンドポイントの URL。- 3D Tiles: 複合 tileset.json (`/datacatalog/3dtiles/{spec}/tileset.json`)
- MVT: 自治体単位の TileJSON (`/datacatalog/mvt/{spec}/tilejson.json`) 自治体コードや整備年度が揃っていない場合は null。 |
| **latestUrl** | | [String](#string) | compositeUrl と同じ書式で、整備年度を `latest` に置き換えた URL。 各自治体について利用可能な最新整備年度のデータに自動的に追従します。 |
| **parentId** | | [ID](#id)! | データセットのアイテムが属するデータセットのID。 |
| **parent** | | [PlateauDataset](#plateaudataset) | データセットのアイテムが属するデータセット。 |
| **lod** | | [Int](#int) | データセットのアイテムのLOD(詳細度・Level of Detail)。1、2、3、4などの整数値です。 |
| **lodEx** | | [Int](#int) | データセットのアイテムのLOD(詳細度・Level of Detail)のうち、小数点以下の値が存在する場合に定義されます。例えばLOD3.1の場合は1、3.0の場合は0となります。LODがnullの場合はnullとなります。 |
| **texture** | | [Texture](#texture) | データセットのアイテムのテクスチャの種類。 |
| **floodingScale** | | [FloodingScale](#floodingscale) | 浸水規模。地物型が災害リスク(浸水)モデルの場合のみ存在することがあります。 |
| **floodingScaleSuffix** | | [String](#string) | 浸水規模の枝番。地物型が災害リスク(浸水)モデルの場合のみ存在することがあります。 |
#### PlateauDatasetType
[Section titled “PlateauDatasetType”](#plateaudatasettype)
PLATEAU都市モデルのデータセットの種類。
| Field | Argument | Type | Description |
| :---------------- | -------: | :------------------------------------------- | :--------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **code** | | [String](#string)! | データセットの種類コード。「bldg」など。 |
| **name** | | [String](#string)! | データセットの種類名。 |
| **category** | | [DatasetTypeCategory](#datasettypecategory)! | データセットの種類のカテゴリ。 |
| **order** | | [Int](#int)! | データセットの種類の順番を示す数字。大きいほど後に表示されます。 |
| **plateauSpecId** | | [ID](#id)! | データセットの種類が属するPLATEAU都市モデルの仕様のID。 |
| **plateauSpec** | | [PlateauSpec](#plateauspec) | データセットの種類が属するPLATEAU都市モデルの仕様。 |
| **year** | | [Int](#int)! | データセットの種類が属するPLATEAU都市モデルの仕様の公開年度(西暦)。 |
| **flood** | | [Boolean](#boolean)! | 災害リスク(浸水)モデルかどうか。河川などの情報が利用可能です。 |
| **datasets** | | \[[PlateauDataset](#plateaudataset)!]! | データセット(DatasetInput内のincludeTypesとexcludeTypesの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
#### PlateauSpec
[Section titled “PlateauSpec”](#plateauspec)
PLATEAU都市モデルの仕様のメジャーバージョン。
| Field | Argument | Type | Description |
| :---------------- | -------: | :--------------------------------------------- | :----------------------- |
| **id** | | [ID](#id)! | |
| **majorVersion** | | [Int](#int)! | PLATEAU都市モデルの仕様のバージョン番号。 |
| **year** | | [Int](#int)! | 仕様の公開年度(西暦)。 |
| **datasetTypes** | | \[[PlateauDatasetType](#plateaudatasettype)!]! | その仕様に含まれるデータセットの種類。 |
| **minorVersions** | | \[[PlateauSpecMinor](#plateauspecminor)!]! | その仕様のマイナーバージョン。 |
#### PlateauSpecMinor
[Section titled “PlateauSpecMinor”](#plateauspecminor)
PLATEAU都市モデルの仕様のマイナーバージョン。
| Field | Argument | Type | Description |
| :--------------- | -------: | :------------------------------ | :--------------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **name** | | [String](#string)! | PLATEAU都市モデルの仕様の名前。 “第2.3版” のような文字列です。 |
| **version** | | [String](#string)! | バージョンを表す文字列。 “2.3” のような文字列です。 |
| **majorVersion** | | [Int](#int)! | メジャーバージョン番号。 2のような整数です。 |
| **year** | | [Int](#int)! | 仕様の公開年度(西暦)。 |
| **parentId** | | [ID](#id)! | その仕様が属する仕様のメジャーバージョンのID。 |
| **parent** | | [PlateauSpec](#plateauspec)! | その仕様が属する仕様のメジャーバージョン。 |
| **datasets** | | \[[Dataset](#dataset)!]! | その仕様に準拠して整備されたPLATEAU都市モデルデータセット(DatasetInput内のplateauSpecの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
#### Prefecture
[Section titled “Prefecture”](#prefecture)
都道府県
| Field | Argument | Type | Description |
| :----------- | -------: | :------------------------------ | :------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **type** | | [AreaType](#areatype)! | 地域の種類 |
| **code** | | [AreaCode](#areacode)! | 都道府県コード。2桁の数字から成る文字列です。 |
| **name** | | [String](#string)! | 都道府県名 |
| **cities** | | \[[City](#city)!]! | 都道府県に属する市区町村 |
| **datasets** | | \[[Dataset](#dataset)!]! | 都道府県に属するデータセット(DatasetInput内のareasCodeの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
| **parentId** | | [ID](#id) | 地域の親となる地域のID。市区町村の親は都道府県です。政令指定都市の区の親は市です。 |
| **parent** | | [Area](#area) | 地域の親となる地域。 |
| **children** | | \[[Area](#area)!]! | 地域に属する子地域。 |
#### RelatedDataset
[Section titled “RelatedDataset”](#relateddataset)
PLATEAU都市モデルデータセットと併せて表示することで情報を補完できる、関連データセット。 避難施設・ランドマーク・鉄道駅・鉄道・緊急輸送道路・公園・行政界などのデータセット。
| Field | Argument | Type | Description |
| :-------------------- | -------: | :--------------------------------------------- | :--------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **name** | | [String](#string)! | データセット名 |
| **description** | | [String](#string) | データセットの説明 |
| **year** | | [Int](#int)! | データセットの整備年度(西暦) |
| **registerationYear** | | [Int](#int)! | データセットの公開年度(西暦) |
| **groups** | | \[[String](#string)!] | データセットを分類するグループ。グループが階層構造になっている場合は、親から子の順番で複数のグループ名が存在することがあります。 |
| **openDataUrl** | | [String](#string) | データセットの公開データのURL。 |
| **prefectureId** | | [ID](#id) | データセットが属する都道府県のID。 |
| **prefectureCode** | | [AreaCode](#areacode) | データセットが属する都道府県コード。2桁の数字から成る文字列です。 |
| **cityId** | | [ID](#id) | データセットが属する市のID。 |
| **cityCode** | | [AreaCode](#areacode) | データセットが属する市コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **wardId** | | [ID](#id) | データセットが属する区のID。 |
| **wardCode** | | [AreaCode](#areacode) | データセットが属する区コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **typeId** | | [ID](#id)! | データセットの種類のID。 |
| **typeCode** | | [String](#string)! | データセットの種類コード。 |
| **prefecture** | | [Prefecture](#prefecture) | データセットが属する都道府県。 |
| **city** | | [City](#city) | データセットが属する市。 |
| **ward** | | [Ward](#ward) | データセットが属する区。 |
| **type** | | [RelatedDatasetType](#relateddatasettype)! | データセットの種類。 |
| **items** | | \[[RelatedDatasetItem](#relateddatasetitem)!]! | データセットのアイテム。 |
| **ar** | | [Boolean](#boolean)! | PLATEAU ARで閲覧可能なデータセットかどうか。 |
| **admin** | | [Any](#any) | 管理者用 |
#### RelatedDatasetItem
[Section titled “RelatedDatasetItem”](#relateddatasetitem)
関連データセットのアイテム。
| Field | Argument | Type | Description |
| :----------------- | -------: | :-------------------------------- | :--------------------------------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **format** | | [DatasetFormat](#datasetformat)! | データセットのアイテムのフォーマット。 |
| **name** | | [String](#string)! | データセットのアイテム名。 |
| **url** | | [String](#string)! | データセットのアイテムのURL。 |
| **originalFormat** | | [DatasetFormat](#datasetformat) | データセットのアイテムの変換前データのフォーマット。 originalUrlフィールドが存在する場合のみ存在します。 |
| **originalUrl** | | [String](#string) | データセットのアイテムの変換前データのURL。 鉄道駅情報・ランドマーク情報はurlフィールドではCZML形式で提供されていますが、元となったGeoJSONデータが存在します。 |
| **layers** | | \[[String](#string)!] | データセットのアイテムのレイヤー名。MVTやWMSなどのフォーマットの場合のみ存在。 レイヤー名が複数存在する場合は、同時に複数のレイヤーを表示可能であることを意味します。 |
| **parentId** | | [ID](#id)! | データセットのアイテムが属するデータセットのID。 |
| **parent** | | [RelatedDataset](#relateddataset) | データセットのアイテムが属するデータセット。 |
#### RelatedDatasetType
[Section titled “RelatedDatasetType”](#relateddatasettype)
関連データセットの種類。
| Field | Argument | Type | Description |
| :----------- | -------: | :------------------------------------------- | :--------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **code** | | [String](#string)! | データセットの種類コード。「park」など。 |
| **name** | | [String](#string)! | データセットの種類名。 |
| **category** | | [DatasetTypeCategory](#datasettypecategory)! | データセットの種類のカテゴリ。 |
| **order** | | [Int](#int)! | データセットの種類の順番を示す数字。大きいほど後に表示されます。 |
| **datasets** | | \[[RelatedDataset](#relateddataset)!]! | データセット(DatasetInput内のincludeTypesとexcludeTypesの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
#### River
[Section titled “River”](#river)
洪水浸水想定区域モデルにおける河川。
| Field | Argument | Type | Description |
| :-------- | -------: | :------------------------- | :------------------------ |
| **name** | | [String](#string)! | 河川名。通常、「〜水系〜川」という形式になります。 |
| **admin** | | [RiverAdmin](#riveradmin)! | 管理区間 |
#### Ward
[Section titled “Ward”](#ward)
区(政令指定都市のみ)
| Field | Argument | Type | Description |
| :----------------- | -------: | :------------------------------ | :---------------------------------------------- |
| **id** | | [ID](#id)! | |
| **type** | | [AreaType](#areatype)! | 種類 |
| **code** | | [AreaCode](#areacode)! | 区コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **name** | | [String](#string)! | 区名 |
| **prefectureId** | | [ID](#id)! | 区が属する都道府県のID。 |
| **prefectureCode** | | [AreaCode](#areacode)! | 区が属する都道府県コード。2桁の数字から成る文字列です。 |
| **cityId** | | [ID](#id)! | 区が属する市のID。 |
| **cityCode** | | [AreaCode](#areacode)! | 区が属する市のコード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **prefecture** | | [Prefecture](#prefecture) | 区が属する都道府県。 |
| **city** | | [City](#city) | 区が属する市。 |
| **datasets** | | \[[Dataset](#dataset)!]! | 区に属するデータセット(DatasetInput内のareasCodeの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
| **parentId** | | [ID](#id) | 地域の親となる地域のID。市区町村の親は都道府県です。政令指定都市の区の親は市です。 |
| **parent** | | [City](#city)! | 地域の親となる地域。 |
| **children** | | \[[Area](#area)!]! | 地域に属する子地域。 |
### Inputs
[Section titled “Inputs”](#inputs)
#### AreasInput
[Section titled “AreasInput”](#areasinput)
地域を検索するためのクエリ。
| Field | | Type | Description |
| :----------------- | :- | :---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **parentCode** | | [AreaCode](#areacode) | 検索したい地域が属する親となる地域のコード。例えば東京都に属する都市を検索したい場合は “13” を指定します。 |
| **datasetTypes** | | \[[String](#string)!] | データセットの種類コード。例えば、建築物モデルのデータセットが存在する地域を検索したい場合は “bldg” を指定します。複数指定するとOR条件で検索を行います。 未指定の場合、全てのデータセットの種類を対象に検索します。 |
| **categories** | | \[[DatasetTypeCategory](#datasettypecategory)!] | データセットの種類のカテゴリ。例えば、PLATEAU都市モデルデータセットが存在する地域を検索したい場合は PLATEAU を指定します。複数指定するとOR条件で検索を行います。 未指定の場合、全てのカテゴリのデータセットを対象に検索します。 |
| **areaTypes** | | \[[AreaType](#areatype)!] | 地域の種類。例えば、市を検索したい場合は CITY を指定します。複数指定するとOR条件で検索を行います。 未指定の場合、全ての地域を対象に検索します。 |
| **searchTokens** | | \[[String](#string)!] | 検索文字列。複数指定するとAND条件で絞り込み検索が行えます。 |
| **includeParents** | | [Boolean](#boolean) | datasetTypes が指定された場合に、検索結果にその地域の親も含めるかどうか。デフォルトは false です。 |
| **includeEmpty** | | [Boolean](#boolean) | 属しているDatasetが存在しない都市を含めます。通常のデータセットは存在しないが、 CityGMLDataset の city として使用されている都市が含まれます。 |
| **deep** | | [Boolean](#boolean) | parentCode が指定された場合に、その地域に間接的に属している地域も検索対象にするかどうか。デフォルトは false です。 |
#### CityGMLDatasetsInput
[Section titled “CityGMLDatasetsInput”](#citygmldatasetsinput)
CityGMLデータセットを検索するためのクエリ。
| Field | | Type | Description |
| :------------------ | :- | :------------------------ | ----------------------------------- |
| **prefectureCodes** | | \[[AreaCode](#areacode)!] | データセットの都道府県コード。複数指定するとOR条件で検索を行います。 |
| **cityCodes** | | \[[AreaCode](#areacode)!] | データセットの市区町村コード。複数指定するとOR条件で検索を行います。 |
| **years** | | \[[Int](#int)!] | データの整備年度(西暦)。複数指定するとOR条件で検索を行います。 |
#### DatasetTypesInput
[Section titled “DatasetTypesInput”](#datasettypesinput)
データセットの種類を検索するためのクエリ。
| Field | | Type | Description |
| :-------------- | :- | :------------------------------------------ | -------------------------------------- |
| **category** | | [DatasetTypeCategory](#datasettypecategory) | データセットの種類のカテゴリ。 |
| **plateauSpec** | | [String](#string) | データセットの種類が属するPLATEAU都市モデルの仕様名。 |
| **year** | | [Int](#int) | データセットの種類が属するPLATEAU都市モデルの仕様の公開年度(西暦)。 |
#### DatasetsInput
[Section titled “DatasetsInput”](#datasetsinput)
データセットを検索するためのクエリ。
| Field | | Type | Description |
| :------------------- | :- | :------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **areaCodes** | | \[[AreaCode](#areacode)!] | データセットの地域コード(都道府県コードや市区町村コードが使用可能)。複数指定するとOR条件で検索を行います。 |
| **plateauSpec** | | [String](#string) | 仕様書のバージョン。「第2.3版」「2.3」「2」などの文字列が使用可能です。 |
| **year** | | [Int](#int) | データの整備年度(西暦)。 |
| **registrationYear** | | [Int](#int) | データの公開年度(西暦)。 |
| **excludeTypes** | | \[[String](#string)!] | 検索結果から除外するデータセットの種類コード。種類コードは例えば “bldg”(建築物モデル)の他、“plateau”(PLATEAU都市モデルデータセット)、“related”(関連データセット)、“generic”(その他のデータセット)が使用可能です。 |
| **includeTypes** | | \[[String](#string)!] | 検索結果に含めるデータセットの種類コード。未指定の場合、全てのデータセットの種類を対象に検索し、指定するとその種類で検索結果を絞り込みます。種類コードは例えば “bldg”(建築物モデル)の他、“plateau”(PLATEAU都市モデルデータセット)、“related”(関連データセット)、“generic”(その他のデータセット)が使用可能です。 |
| **searchTokens** | | \[[String](#string)!] | 検索文字列。複数指定するとAND条件で絞り込み検索が行えます。 |
| **shallow** | | [Boolean](#boolean) | areaCodesで指定された地域に直接属しているデータセットのみを検索対象にするかどうか。 デフォルトはfalseで、指定された地域に間接的に属するデータセットも全て検索します。 例えば、札幌市を対象にした場合、札幌市には中央区や北区といった区のデータセットも存在しますが、trueにすると札幌市のデータセットのみを返します。 |
| **groupedOnly** | | [Boolean](#boolean) | 特殊なグループを持つデータセットのみを検索対象にするかどうか。デフォルトはfalseです。 |
| **ar** | | [Boolean](#boolean) | PLATEAU ARで閲覧可能なデータセットを含めるかどうか。 trueの場合はARで閲覧可能なデータセットのみ、falseの場合はARで閲覧不可能なデータセットのみを返します。 |
### Enums
[Section titled “Enums”](#enums)
#### AreaType
[Section titled “AreaType”](#areatype)
| Value | Description |
| :------------- | :---------- |
| **PREFECTURE** | 都道府県 |
| **CITY** | 市町村 |
| **WARD** | 区(政令指定都市のみ) |
| **GLOBAL** | 全球(グローバル) |
#### DatasetFormat
[Section titled “DatasetFormat”](#datasetformat)
データセットのフォーマット。
| Value | Description |
| :----------------- | :-------------------------------------------- |
| **CSV** | CSV |
| **CZML** | CZML |
| **CESIUM3DTILES** | 3D Tiles |
| **GLTF** | GlTF |
| **GTFS\_REALTIME** | GTFS Realtime |
| **GEOJSON** | GeoJSON |
| **MVT** | Mapbox Vector Tile |
| **TMS** | Tile Map Service |
| **TILES** | XYZで分割された画像タイル。/{z}/{x}/{y}.png のようなURLになります。 |
| **WMS** | Web Map Service |
#### DatasetTypeCategory
[Section titled “DatasetTypeCategory”](#datasettypecategory)
データセットの種類のカテゴリ。
| Value | Description |
| :---------- | :----------------- |
| **PLATEAU** | PLATEAU都市モデルデータセット |
| **RELATED** | 関連データセット |
| **GENERIC** | その他のデータセット |
#### FloodingScale
[Section titled “FloodingScale”](#floodingscale)
浸水想定区域モデルにおける浸水規模。
| Value | Description |
| :-------------------- | :---------- |
| **PLANNED** | 計画規模 |
| **EXPECTED\_MAXIMUM** | 想定最大規模 |
#### RiverAdmin
[Section titled “RiverAdmin”](#riveradmin)
河川の管理区間
| Value | Description |
| :------------- | :---------- |
| **NATIONAL** | 国管理区間 |
| **PREFECTURE** | 都道府県管理区間 |
#### Texture
[Section titled “Texture”](#texture)
建築物モデルのテクスチャの種類。
| Value | Description |
| :---------- | :---------- |
| **NONE** | テクスチャなし |
| **TEXTURE** | テクスチャあり |
### Scalars
[Section titled “Scalars”](#scalars)
#### Any
[Section titled “Any”](#any)
#### AreaCode
[Section titled “AreaCode”](#areacode)
行政コードを表す文字列。 都道府県の場合は、2桁の数字で構成された文字列です。 自治体の場合は、先頭に2桁の都道府県コードを含む、5桁の数字で構成された文字列です。
#### Boolean
[Section titled “Boolean”](#boolean)
The `Boolean` scalar type represents `true` or `false`.
#### ID
[Section titled “ID”](#id)
The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.
#### Int
[Section titled “Int”](#int)
The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
#### String
[Section titled “String”](#string)
The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
### Interfaces
[Section titled “Interfaces”](#interfaces)
#### Area
[Section titled “Area”](#area)
地域。都道府県(Prefecture)・市区町村(City)・区(政令指定都市のみ・Ward)のいずれかです。 政令指定都市の場合のみ、市の下に区が存在します。
| Field | Argument | Type | Description |
| :----------- | -------: | :------------------------------ | :---------------------------------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **type** | | [AreaType](#areatype)! | 地域の種類 |
| **code** | | [AreaCode](#areacode)! | 地域コード。行政コードや市区町村コードとも呼ばれます。 都道府県の場合は二桁の数字から成る文字列です。 市区町村の場合は、先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **name** | | [String](#string)! | 地域名 |
| **datasets** | | \[[Dataset](#dataset)!]! | 地域に属するデータセット(DatasetInput内のareasCodeの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
| **parentId** | | [ID](#id) | 地域の親となる地域のID。市区町村の親は都道府県です。政令指定都市の区の親は市です。 |
| **parent** | | [Area](#area) | 地域の親となる地域。 |
| **children** | | \[[Area](#area)!]! | 地域に属する子地域。 |
**Possible Types:** [Prefecture](#prefecture), [City](#city), [Ward](#ward), [GlobalArea](#globalarea)
#### Dataset
[Section titled “Dataset”](#dataset)
データセット。
| Field | Argument | Type | Description |
| :-------------------- | -------: | :------------------------------- | :--------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **name** | | [String](#string)! | データセット名 |
| **description** | | [String](#string) | データセットの説明 |
| **year** | | [Int](#int)! | データセットの整備年度(西暦) |
| **registerationYear** | | [Int](#int)! | データセットの登録年度(西暦) |
| **groups** | | \[[String](#string)!] | データセットを分類するグループ。グループが階層構造になっている場合は、親から子の順番で複数のグループ名が存在することがあります。 |
| **openDataUrl** | | [String](#string) | データセットの公開データのURL。 |
| **prefectureId** | | [ID](#id) | データセットが属する都道府県のID。 |
| **prefectureCode** | | [AreaCode](#areacode) | データセットが属する都道府県コード。2桁の数字から成る文字列です。 |
| **cityId** | | [ID](#id) | データセットが属する市のID。 |
| **cityCode** | | [AreaCode](#areacode) | データセットが属する市コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **wardId** | | [ID](#id) | データセットが属する区のID。 |
| **wardCode** | | [AreaCode](#areacode) | データセットが属する区コード。先頭に都道府県コードを含む5桁の数字から成る文字列です。 |
| **typeId** | | [ID](#id)! | データセットの種類のID。 |
| **typeCode** | | [String](#string)! | データセットの種類コード。 |
| **prefecture** | | [Prefecture](#prefecture) | データセットが属する都道府県。 |
| **city** | | [City](#city) | データセットが属する市。 |
| **ward** | | [Ward](#ward) | データセットが属する区。 |
| **type** | | [DatasetType](#datasettype)! | データセットの種類。 |
| **items** | | \[[DatasetItem](#datasetitem)!]! | データセットのアイテム。 |
| **ar** | | [Boolean](#boolean)! | PLATEAU ARで閲覧可能なデータセットかどうか。 |
| **admin** | | [Any](#any) | 管理者用 |
**Possible Types:** [PlateauDataset](#plateaudataset), [RelatedDataset](#relateddataset), [GenericDataset](#genericdataset)
#### DatasetItem
[Section titled “DatasetItem”](#datasetitem)
データセットのアイテム。
| Field | Argument | Type | Description |
| :----------- | -------: | :------------------------------- | :------------------------------------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **format** | | [DatasetFormat](#datasetformat)! | データセットのアイテムのフォーマット。 |
| **name** | | [String](#string)! | データセットのアイテム名。 |
| **url** | | [String](#string)! | データセットのアイテムのURL。 |
| **layers** | | \[[String](#string)!] | データセットのアイテムのレイヤー名。MVTやWMSなどのフォーマットの場合のみ存在。 レイヤー名が複数存在する場合は、同時に複数のレイヤーを表示可能であることを意味します。 |
| **parentId** | | [ID](#id)! | データセットのアイテムが属するデータセットのID。 |
| **parent** | | [Dataset](#dataset) | データセットのアイテムが属するデータセット。 |
**Possible Types:** [PlateauDatasetItem](#plateaudatasetitem), [RelatedDatasetItem](#relateddatasetitem), [GenericDatasetItem](#genericdatasetitem)
#### DatasetType
[Section titled “DatasetType”](#datasettype)
データセットの種類。
| Field | Argument | Type | Description |
| :----------- | -------: | :------------------------------------------- | :--------------------------------------------------------- |
| **id** | | [ID](#id)! | |
| **code** | | [String](#string)! | データセットの種類コード。 “bldg” など。 |
| **name** | | [String](#string)! | データセットの種類名。 |
| **category** | | [DatasetTypeCategory](#datasettypecategory)! | データセットの種類のカテゴリ。 |
| **order** | | [Int](#int)! | データセットの種類の順番を示す数字。大きいほど後に表示されます。 |
| **datasets** | | \[[Dataset](#dataset)!]! | データセット(DatasetInput内のincludeTypesとexcludeTypesの指定は無視されます)。 |
| input | | [DatasetsInput](#datasetsinput) | |
**Possible Types:** [PlateauDatasetType](#plateaudatasettype), [RelatedDatasetType](#relateddatasettype), [GenericDatasetType](#genericdatasettype)
#### Node
[Section titled “Node”](#node)
IDを持つオブジェクト。nodeまたはnodesクエリでIDを指定して検索可能です。
| Field | Argument | Type | Description |
| :----- | -------: | :--------- | :---------- |
| **id** | | [ID](#id)! | オブジェクトのID |
**Possible Types:** [Prefecture](#prefecture), [City](#city), [Ward](#ward), [GlobalArea](#globalarea), [PlateauSpec](#plateauspec), [PlateauSpecMinor](#plateauspecminor), [PlateauDataset](#plateaudataset), [PlateauDatasetItem](#plateaudatasetitem), [PlateauDatasetType](#plateaudatasettype), [RelatedDataset](#relateddataset), [RelatedDatasetItem](#relateddatasetitem), [RelatedDatasetType](#relateddatasettype), [GenericDataset](#genericdataset), [GenericDatasetItem](#genericdatasetitem), [GenericDatasetType](#genericdatasettype), [CityGMLDataset](#citygmldataset)
# PLATEAU-3DTiles / MVT
> 3D Tiles および MVT 形式での建築物モデル等の配信仕様と利用方法
## 1. PLATEAU-3DTiles / MVT の概要
[Section titled “1. PLATEAU-3DTiles / MVT の概要”](#1-plateau-3dtiles--mvt-の概要)
Project PLATEAU では、CityGML 形式で作成された 3D 都市モデルのデータを 3D Tiles および MVT(Mapbox Vector Tiles)形式に変換し、それぞれ配信を行っています。3D Tiles の形式バージョンは従来 1.0 ですが、2025 年度以降に整備されたデータの一部は 1.1 で配信されます。
本チュートリアルでは、3D Tiles および MVT の利用方法について解説します。
ヒント
3D Tiles 形式の 3D 都市モデルデータの仕様については、[PLATEAU 2023 可視化用データ変換仕様](/spec/visualization/) をご覧ください。
## 2. CityGML の 3D Tiles / MVT への変換
[Section titled “2. CityGML の 3D Tiles / MVT への変換”](#2-citygml-の-3d-tiles--mvt-への変換)
CityGML を 3D Tiles または MVT 形式に変換するためには、以下の方法があります。
* [PLATEAU GIS Converter](https://github.com/Project-PLATEAU/PLATEAU-GIS-Converter): FY2023 の Project PLATEAU「都市デジタルツインの実現に向けた研究開発及び実証調査業務」(内閣府/研究開発と Society5.0 との橋渡しプログラム(BRIDGE))において開発された OSS の変換ツール
* [FME](https://github.com/Project-PLATEAU/FMEscript-CityGML-to-3DTiles): Project PLATEAU で利用した CityGML から 3D Tiles への FME 変換テンプレート
* [Cesium ion](https://cesium.com/learn/3d-tiling/ion-tile-3d-buildings/): オンラインサービスを利用したデータ変換とホスティング
* [Cesium ion オンプレミス](https://cesium.com/platform/on-premises-products/): 3D Tiles 変換用の有償のコマンドラインツール
* [citygml-to-3dtiles](https://github.com/njam/citygml-to-3dtiles): データ変換用オープンソースツール
## 3. PLATEAU-3DTiles / MVT の利用方法
[Section titled “3. PLATEAU-3DTiles / MVT の利用方法”](#3-plateau-3dtiles--mvt-の利用方法)
PLATEAU-3DTiles / MVT の配信サービスを利用することで、独自に立ち上げた CesiumJS 等の環境で 3D 都市モデルをすぐに利用することができます。詳しくは、本ドキュメント末尾の「配信データの取得方法」をご覧ください。
なお、本サービスはあくまで試験的な運用であるため、提供期間やサービスレベルについては保証できないことをご了承ください。またデータの内容は予告なく更新されることがあります。
### 3.1. CesiumJS での利用方法
[Section titled “3.1. CesiumJS での利用方法”](#31-cesiumjs-での利用方法)
3D Tiles / MVT 形式のデータは、PLATEAU VIEW 上でデータカタログから選択したり、CesiumJS を利用したコードを作成したりすることで表示できます。ただし、MVT は現在 CesiumJS ではサポートされていないため、別途外部ライブラリが必要になります(ここでは [cesium-mvt-imagery-provider](https://github.com/reearth/cesium-mvt-imagery-provider) を使用)。
以下は、CesiumJS を利用して 3D Tiles を表示させるためのサンプルコードです。この例では、東京都千代田区の建築物モデル(3D Tiles)を利用していますが、下記の「配信データの取得方法」にある URL に置き換えることで、様々なデータを表示することができます。
```html
PLATEAU-3DTiles/MVT、PLATEAU-Ortho、PLATEAU-Terrain を Cesium で表示
```
## 4. 配信データの取得方法
[Section titled “4. 配信データの取得方法”](#4-配信データの取得方法)
Project PLATEAU が [G空間情報センター](https://www.geospatial.jp/ckan/dataset/plateau) において公開している都市の 3D Tiles および MVT データを利用可能です。
配信データを取得するための API として、以下の 2 種類の「データカタログ API」を公開しています。
* 通常の Web API
* GraphQL API
詳細なリファレンス
各エンドポイントの**パラメータ仕様・レスポンス構造・対話的なリクエスト実行**は API リファレンスを参照してください。本ページは利用方法の概観に注力します。
* REST: [`GET /datacatalog/plateau-datasets`](/api/rest/operations/datacatalogplateau-datasets/)
* GraphQL: [スキーマリファレンス](/api/graphql/schema/) / [プレイグラウンド](/api/graphql/playground/)
### 4.1. 通常の Web API(REST)
[Section titled “4.1. 通常の Web API(REST)”](#41-通常の-web-apirest)
[**`GET /datacatalog/plateau-datasets`**](/api/rest/operations/datacatalogplateau-datasets/) を呼び出すと、3D Tiles / MVT のデータ一覧が JSON で返却されます。レスポンス内の `url` フィールドに含まれる URL を CesiumJS 等で利用してください。
```sh
curl https://api.plateauview.mlit.go.jp/datacatalog/plateau-datasets
```
主要なフィールド: `name`, `pref` / `pref_code`, `city` / `city_code`, `ward` / `ward_code`, `type` / `type_en`, `url`, `file_size`(`url` 先 zip のファイルサイズ(バイト)。CMS のメタデータが取得できる場合に提供), `composite_url`(3D Tiles の場合は複合 `tileset.json`、MVT の場合は自治体単位の `tilejson.json` への直リンク), `layers`(MVT のみ), `year`, `registration_year`, `spec`, `format`(`3D Tiles` または `MVT`), `format_version`(3D Tiles の場合のみ。`1.0` または `1.1`。2025年度以降に Flow で変換されたデータは `1.1`、それ以外は `1.0`), `lod`, `texture`。型と意味の一覧は [REST API リファレンス](/api/rest/operations/datacatalogplateau-datasets/) を参照してください。
`url` ではなく `composite_url` の利用を推奨します
PLATEAU の都市データは毎年更新され、新しい整備年度のデータが公開されます。`url` フィールドは CMS 上の特定アセットへの直リンクのため、新しい年度のデータが公開されてもアプリケーション側で URL を書き換えない限り古いデータを参照し続けます。
`composite_url` は API サーバ側でデータセットを動的に解決して `tileset.json` / `tilejson.json` を返すため、URL がより安定しています。さらに、後述の [複合 tileset.json](#42-%E8%A4%87%E5%90%88-tilesetjson%E8%A4%87%E6%95%B0%E9%83%BD%E5%B8%82%E3%81%AE-3d-tiles-%E3%82%92-1-%E3%81%A4%E3%81%AE-url-%E3%81%A7%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E5%8F%96%E5%BE%97) や [MVT TileJSON](#43-%E8%87%AA%E6%B2%BB%E4%BD%93%E5%8D%98%E4%BD%8D%E3%81%AE-mvt-tilejsonmaplibre-%E3%81%AA%E3%81%A9%E3%81%8B%E3%82%89%E5%88%A9%E7%94%A8) で **整備年度を `latest` に指定した形**(例: `13101-bldg-lod2-latest`、`13101-luse-latest`)を使えば、新しい整備年度のデータが公開されたタイミングで URL を変更しなくても自動的に最新データに追従します。
レスポンスにはさらに次の配列が含まれます。
* `composite_tilesets`: 全国(`all-...`)と都道府県別(`13-...` など)の複合 `tileset.json` を実データから派生して列挙したリスト。CesiumJS で広域をまとめて表示したい場合の入口として利用できます。年度別エントリと「最新整備年度」を自動採用する `-latest` エントリの両方を含みます。
* `latest_datasets`: 各 `(自治体, 種別, LOD, 形式)` について **最新整備年度** を自動採用する 3D Tiles / MVT 用の動的 URL 一覧。`year` は常に `"latest"`。新しい整備年度が公開されたタイミングで URL を変更しなくても自動的に最新データに追従します。
* `latest_citygml`: 各自治体について **最新整備年度** の CityGML zip にリダイレクトする URL 一覧。同様に `year` は `"latest"`。
加えて `citygml` 配列には、自治体ごとの CityGML データセットが含まれます。地物型ごとには分かれず、各自治体の全地物型を 1 つの zip ファイルにまとめた形で、自治体単位で 1 件ずつ返却されます。詳細は [PLATEAU-CityGML](/datasets/citygml/) を参照してください。
注意
レスポンスサイズは約 2 MB 以上あります。API は gzip 圧縮に対応しているものの、モバイル回線では十分ご注意ください。手早くデータを探したいだけなら [データセット一覧](/datasets/explorer/) ページがおすすめです。
### 4.2. 複合 tileset.json(複数都市の 3D Tiles を 1 つの URL でまとめて取得)
[Section titled “4.2. 複合 tileset.json(複数都市の 3D Tiles を 1 つの URL でまとめて取得)”](#42-複合-tilesetjson複数都市の-3d-tiles-を-1-つの-url-でまとめて取得)
複数の都市の 3D Tiles を CesiumJS で表示したい場合、各都市の `tileset.json` を個別に追加する代わりに、**複合 tileset.json API** を利用すると 1 つの URL で対象都市の 3D Tiles を一度に表示できます。これは [3D Tiles 仕様の external tileset 参照](https://github.com/CesiumGS/3d-tiles/tree/main/specification#external-tilesets) を使い、子タイルの `content.uri` で各都市の `tileset.json` を間接的に指す `tileset.json` を動的生成する仕組みです。
```plaintext
GET /datacatalog/3dtiles/{spec}/tileset.json
```
例:
```plaintext
https://api.plateauview.mlit.go.jp/datacatalog/3dtiles/all-bldg-lod1-2025/tileset.json
```
#### `{spec}` の書式
[Section titled “{spec} の書式”](#spec-の書式)
```plaintext
--[-interior][-]-
```
| セグメント | 値 | 意味 |
| ---------- | -------------------------- | ---------------------------------------- |
| `area` | `all` | 全国 |
| | 2 桁数字 | 都道府県コード(例: `13` = 東京都) |
| | 5 桁数字 | 市区町村コード(区がある場合は区コード、無ければ市コード) |
| `type` | `bldg` / `tran` / `dem` など | データセットの種別コード |
| `lod` | `lod` | LOD が `` と完全一致するデータのみ |
| | `maxlod` | LOD が `` 以下で、各エリアごとに利用可能な最高 LOD を採用 |
| `interior` | (省略) | 屋外モデル(CityGML 3.0 以前のデータも含む) |
| | `interior` | CityGML 3.0 の屋内モデルのみ |
| `texture` | (省略) | テクスチャありを優先、無ければテクスチャなしを採用 |
| | `texture` | テクスチャありのデータのみ |
| | `notexture` | テクスチャなしのデータのみ |
| `year` | 4 桁の西暦 | その整備年度のデータのみを採用 |
| | `latest` | 整備年度のフィルタを行わず、各自治体について利用可能な最新整備年度のデータを採用 |
例:
| URL | 意味 |
| --------------------------- | ------------------------------------------ |
| `all-bldg-lod1-2025` | 全国の建築物モデル LOD1(2025年度整備) |
| `all-bldg-maxlod2-2025` | 全国の建築物モデル、各都市で LOD2 まで取れるなら LOD2、無ければ LOD1 |
| `13-bldg-lod2-texture-2025` | 東京都の建築物モデル LOD2、テクスチャあり限定 |
| `13101-bldg-lod2-2025` | 千代田区の建築物モデル LOD2 |
| `all-bldg-lod2-latest` | 全国の建築物モデル LOD2、各自治体ごとに最新整備年度を採用 |
#### CesiumJS での利用例
[Section titled “CesiumJS での利用例”](#cesiumjs-での利用例)
```javascript
const tileset = await Cesium.Cesium3DTileset.fromUrl(
"https://api.plateauview.mlit.go.jp/datacatalog/3dtiles/all-bldg-lod1-2025/tileset.json",
);
viewer.scene.primitives.add(tileset);
```
注意
* 子の `tileset.json` 自体は別ホスト(PLATEAU CMS)から配信されます。CesiumJS は自動でクロスオリジン取得を行いますが、ネットワーク環境によってはまとめて読み込む際に時間がかかる場合があります。
* API は試験運用中であり、URL の書式やレスポンスは予告なく変更されることがあります。
#### HTTP キャッシュ
[Section titled “HTTP キャッシュ”](#http-キャッシュ)
`/datacatalog/plateau-datasets`、`/datacatalog/3dtiles/{spec}/tileset.json`、`/datacatalog/mvt/{spec}/tilejson.json`、`/datacatalog/citygml/{spec}/citygml.zip` の各エンドポイントは、データカタログのリポジトリリビジョンと URL から導出した **弱 ETag** (`W/"..."`) と `Cache-Control: no-cache, must-revalidate` を返します。クライアントが `If-None-Match` ヘッダを付けて再リクエストすれば、データが変わっていなければ `304 Not Modified` で短絡し、ボディは送信されません(サーバ側でも本処理をスキップするため高速)。CMS 側でデータが差し替わると ETag も変わるため、`-latest` URL を使っていても安全に最新データへ追従できます。
### 4.3. 自治体単位の MVT TileJSON(MapLibre などから利用)
[Section titled “4.3. 自治体単位の MVT TileJSON(MapLibre などから利用)”](#43-自治体単位の-mvt-tilejsonmaplibre-などから利用)
MVT データセットを MapLibre GL JS / Mapbox GL JS のような TileJSON ベースのクライアントから扱うために、自治体単位の **TileJSON 3.0** を動的生成するエンドポイントを提供しています。
```plaintext
GET /datacatalog/mvt/{spec}/tilejson.json
```
`{spec}` の書式:
```plaintext
-[-lod][-interior]-
```
| セグメント | 値 | 意味 |
| ---------- | ----------------- | ----------------------------- |
| `cityCode` | 5 桁数字 | 市区町村コード(区がある場合は区コード、無ければ市コード) |
| `type` | `luse` / `fld` など | データセットの種別コード |
| `lod` | (省略) | LOD が指定されていないデータセットを採用 |
| | `lod` | LOD が `` のデータセットを採用 |
| `interior` | (省略) | 屋外モデル |
| | `interior` | CityGML 3.0 の屋内モデルのみ |
| `year` | 4 桁の西暦 | その整備年度のデータのみを採用 |
| | `latest` | 利用可能な最新整備年度のデータを採用 |
例:
| URL | 意味 |
| ------------------------------- | ------------------------ |
| `13101-luse-2025` | 千代田区の土地利用 MVT(2025年度整備) |
| `13101-luse-latest` | 千代田区の土地利用 MVT、最新整備年度 |
| `13101-fld-lod1-2025` | 千代田区の洪水浸水想定区域 MVT(LOD1) |
| `13101-bldg-lod3-interior-2025` | 千代田区の建築物モデル LOD3、屋内モデルのみ |
[シンプル API](#41-%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB-api) のレスポンスでも、各 MVT 行の `composite_url` フィールドにこの TileJSON URL が入ります。
### 4.4. GraphQL API
[Section titled “4.4. GraphQL API”](#44-graphql-api)
[GraphQL](https://graphql.org/) API では、必要な型・フィールドだけを 1 リクエストで取得できます。エンドポイント:
```plaintext
https://api.plateauview.mlit.go.jp/datacatalog/graphql
```
ブラウザで開くと **GraphiQL** が起動し、対話的にクエリを試せます。型定義の一覧は [GraphQL スキーマリファレンス](/api/graphql/schema/)、サンプル付きの埋め込みは [プレイグラウンド](/api/graphql/playground/) を参照してください。
クエリ例(札幌市のデータ一覧):
```graphql
query {
area(code: "01100") {
id
type
datasets {
id
name
items { id name url }
}
}
}
```
```sh
curl -X POST -H 'Content-Type: application/json' \
-d '{"query":"{ area(code: \"01100\") { datasets { name items { url } } } }"}' \
https://api.plateauview.mlit.go.jp/datacatalog/graphql
```
注意
GraphQL のスキーマやレスポンスは予告なく変更されることがあります。複雑すぎるクエリは動作速度低下防止のため制限されます。レスポンスは数 MB 以上になり得ます。
# PLATEAU-CityGML
> PLATEAU の CityGML 形式データの配信仕様と CityGML API の利用方法
Project PLATEAU では、CityGML 形式で作成された 3D 都市モデルのデータの配信を行っており、Project PLATEAU が [G空間情報センター](https://front.geospatial.jp/plateau_portal_site/) において公開している都市の CityGML データを利用可能です。
ここでは、その CityGML データをより柔軟に取得するための **CityGML API** 群の使い方を、ユースケース別に説明します。
* API 共通エンドポイント: `https://api.plateauview.mlit.go.jp`
詳細なリファレンス
各エンドポイントの**パラメータ仕様・レスポンス構造・エラーコード・対話的なリクエスト実行**は [REST API リファレンス](/api/rest/) を参照してください。本ページは利用方法の解説に注力します。
注意
この API は試験運用中であり、API のスキーマやレスポンスは予告なく変更されることがあります。また、提供期間やサービスレベルの保証もしておりません。クエリによってはレスポンスのサイズが大きくなることがあるため、モバイル回線などで使用する際は十分ご注意ください。
## 1. 自治体ごとの CityGML 一覧 API
[Section titled “1. 自治体ごとの CityGML 一覧 API”](#1-自治体ごとの-citygml-一覧-api)
各自治体ごとに、すべての地物型を 1 つの zip ファイルにまとめた CityGML を一括取得できます。地物型ごとにファイルが分かれていない、配信用の統合された zip ファイルです。
[**`GET /datacatalog/plateau-datasets`**](/api/rest/operations/datacatalogplateau-datasets/) のレスポンスに含まれる `citygml` 配列に、自治体ごとの 1 件ずつの CityGML データセットが返却されます。
```sh
curl https://api.plateauview.mlit.go.jp/datacatalog/plateau-datasets | jq '.citygml[0]'
```
主要なフィールド: `id`, `pref` / `pref_code`, `city` / `city_code`, `url`(PLATEAU CMS 上の zip ファイル URL), `file_size`(zip のファイルサイズ(バイト)。CMS のメタデータが取得できる場合に提供), `composite_url`(自治体・整備年度を指定して zip にリダイレクトする安定 URL), `feature_types`(含まれる地物型コードのリスト), `year`, `registration_year`, `spec`。
レスポンスには加えて `latest_citygml` 配列が含まれます。各自治体について **最新整備年度** の zip にリダイレクトする URL を提供し、`year` は常に `"latest"`、`file_size` も同梱されます。新しいデータが公開されてもアプリケーション側の URL を変更する必要がありません。
`url` ではなく `composite_url` の利用を推奨します
PLATEAU の都市データは毎年更新され、`url` フィールドの CMS 直リンクは新しい年度のデータが公開されるとパスが変わる場合があります。`composite_url`(`/datacatalog/citygml/{cityCode}-{year|latest}/citygml.zip`)は API サーバ側で動的に解決するため、URL がより安定しています。さらに整備年度を `latest` に指定すれば、新しいデータが公開されたタイミングで URL を変更しなくても自動的に最新データに追従します。
`composite_url` および `latest_citygml[].url` へのリクエストには **弱 ETag** と `Cache-Control: no-cache, must-revalidate` が付与されます。クライアントが `If-None-Match` を送れば、リダイレクト先が変わっていなければ `304 Not Modified` で短絡します。
GraphQL からも同じ情報を取得できます。`citygmlDatasets` クエリで都道府県・市区町村・年度によるフィルタが可能です。`fileSize` フィールドは zip のバイト数を返します:
```graphql
query {
citygmlDatasets(input: { prefectureCodes: ["13"] }) {
id
cityCode
url
fileSize
year
featureTypes
}
}
```
ヒント
個別の CityGML ファイル(`bldg`、`tran` など地物型ごとに分かれた gml ファイル)が必要な場合は、続く CityGML ファイル検索 API を使用してください。
## 2. CityGML ファイル検索 API
[Section titled “2. CityGML ファイル検索 API”](#2-citygml-ファイル検索-api)
自治体コードやメッシュコードなど、様々な方法で指定した範囲に含まれる各種 CityGML ファイルの URL のリストを取得します。
[**`GET /datacatalog/citygml/{conditions}`**](/api/rest/operations/datacatalogcitygmlconditions/) — 検索条件 `conditions` には以下の形式が使えます:
| 種類 | プレフィックス | 例 |
| :---------- | :---------- | :-------------------------------- |
| メッシュコード | `m:` | `m:533944,533945` |
| メッシュコード厳密検索 | `mm:` | `mm:533944` |
| 空間 ID | `s:` | `s:18/1/232853/103220` |
| 座標範囲(中心点) | `r:` | `r:139.7375,35.6583` |
| 座標範囲(矩形) | `r:` | `r:139.7375,35.6583,139.74,35.66` |
| ジオコーディング | `g:` | `g:千代田区` |
| 自治体コード | (プレフィックスなし) | `13999` |
呼び出し例:
```sh
curl 'https://api.plateauview.mlit.go.jp/datacatalog/citygml/m:533935'
```
## 3. CityGML Pack API
[Section titled “3. CityGML Pack API”](#3-citygml-pack-api)
複数の CityGML ファイル URL を投入すると、関連するファイルをまとめた zip ファイルを非同期で生成します。
| エンドポイント | 用途 |
| :--------------------------------------------------------------------------- | :------------------------------------------------------------- |
| [`POST /citygml/pack`](/api/rest/operations/citygmlpack/) | パック処理を開始してパック ID を取得 |
| [`GET /citygml/pack/{id}/status`](/api/rest/operations/citygmlpackidstatus/) | パック処理の状態確認(`accepted` / `processing` / `succeeded` / `failed`) |
| [`GET /citygml/pack/{id}.zip`](/api/rest/operations/citygmlpackidzip/) | 生成された zip のダウンロード |
呼び出し例:
```sh
curl https://api.plateauview.mlit.go.jp/citygml/pack \
--json '{
"urls": [
"https://assets.cms.plateau.reearth.io/assets/.../53394509_bldg_6697_op.gml",
"https://assets.cms.plateau.reearth.io/assets/.../53394518_bldg_6697_op.gml"
]
}'
```
サーバー負荷抑制のためタイムアウトなどの制限が設けられており、また一度作成された zip は一定時間経過後に削除されることがあります。投入できる URL は PLATEAU CMS(`assets.cms.plateau.reearth.io`)からのファイルのみです。
## 4. CityGML 属性 API
[Section titled “4. CityGML 属性 API”](#4-citygml-属性-api)
CityGML ファイルの URL と地物の `gml:id` を渡すと、その地物の属性情報を JSON で返します。
[**`GET /citygml/attributes`**](/api/rest/operations/citygmlattributes/) — クエリパラメータ:
* `url`: CityGML ファイルの URL
* `id`: `gml:id` をカンマ区切りで複数指定
* `skip_code_list_fetch`: コードリスト取得をスキップして生のコードを返す
## 5. CityGML 空間 ID 検索 API
[Section titled “5. CityGML 空間 ID 検索 API”](#5-citygml-空間-id-検索-api)
CityGML の URL と空間 ID のリストを渡すと、その空間 ID 内に含まれる地物の `gml:id` のリストを返します。
[**`GET /citygml/features`**](/api/rest/operations/citygmlfeatures/) — クエリパラメータ:
* `url`: CityGML ファイルの URL
* `sid`: 空間 ID(カンマ区切り、`z/x/y`・`z/f/x/y`・ハッシュタイル形式)
## 6. CityGML 空間 ID 属性 API
[Section titled “6. CityGML 空間 ID 属性 API”](#6-citygml-空間-id-属性-api)
空間 ID と地物型のリストを渡すと、該当地物の属性情報を JSON で返します。2・5・4 の API を順番に呼び出す手間を省く統合 API です。
[**`GET /citygml/spatialid_attributes`**](/api/rest/operations/citygmlspatialid_attributes/) — クエリパラメータ:
* `sid`: 空間 ID(カンマ区切り、最低 1 つ)
* `type`: 地物型(カンマ区切り、最低 1 つ。例: `bldg,veg,tran`)
* `skip_code_list_fetch`: コードリスト取得スキップ
# データセット一覧
> PLATEAU 配信サービスで提供されている全データセットを絞り込み検索し、配信 URL をコピーできるエクスプローラ
PLATEAU 配信サービスで現在配信されているすべてのデータセットの一覧です。 都道府県・種別・形式などで絞り込み、配信 URL をワンクリックでコピーできます。このページは [`GET /datacatalog/plateau-datasets`](/datasets/3d-tiles/#41-%E9%80%9A%E5%B8%B8%E3%81%AE-web-api) の内容をブラウザで読み込んで表示しています。実際のデータを地図上で閲覧するには [PLATEAU VIEW](https://plateauview.mlit.go.jp) をご利用ください。
名称・市区町村・地物型を検索…リセット
都道府県(すべて)市区町村(すべて)地物型(すべて)形式(すべて)LOD(すべて)整備年度(すべて)テクスチャ(すべて)
\[ ]Raw URL を表示
データを読み込んでいます…
| 名称 | 都道府県 | 市区町村 | 区 | 地物型 | 形式 | LOD | テクスチャ | 整備年度 | URL |
| -- | ---- | ---- | - | --- | -- | --- | ----- | ---- | --- |
# PLATEAU-Ortho
> 航空写真オルソ画像タイルデータの配信仕様と利用方法
## 1. PLATEAU-Ortho の概要
[Section titled “1. PLATEAU-Ortho の概要”](#1-plateau-ortho-の概要)
Project PLATEAU では、航空写真測量によって作成したオルソ画像をタイル化し、PLATEAU-Ortho として配信を行っています。本チュートリアルでは、タイル化技術および PLATEAU-Ortho の利用方法について解説します。
### 1.1. オルソ画像タイルについて
[Section titled “1.1. オルソ画像タイルについて”](#11-オルソ画像タイルについて)
オルソ画像タイルとは、大きなオルソ画像をタイル状に分割したものです。
オルソ画像をタイル化する理由は、現状のインターネットやパソコン、スマホの能力では、大きな画像が重たすぎて、スムーズな配信・表示ができないからです。
PLATEAU VIEW ではオルソ航空写真をあらかじめオルソ画像タイルにしてあるので、どこまでもスクロールしながら綺麗なオルソ画像を楽しむことができるようになっています。PLATEAU VIEW はサーバーから日本全部の画像をダウンロードしているのではなく、その時の表示範囲に必要な画像タイルを、ほんの何十枚かだけ取ってきています。
画像タイル 1 枚のサイズは 256x256 ピクセルの正方形で、非常に小さく軽く作られているので、新しいタイルをどんどんダウンロードしても、表示が重たくなることはありません。
### 1.2. PLATEAU-Ortho の構成
[Section titled “1.2. PLATEAU-Ortho の構成”](#12-plateau-ortho-の構成)
PLATEAU VIEW で見ることのできるオルソ画像タイルは 2 種類あります。
* Project PLATEAU で新たに整備した PLATEAU-Ortho
* 国土地理院が整備した日本全国をカバーする地理院タイル全国最新写真(シームレス)
PLATEAU-Ortho の特徴は、国土地理院が整備している [地理院タイル](https://maps.gsi.go.jp/development/siyou.html) をベースにしつつ、新たに取得したオルソ航空写真を組み合わせ、精度を高めているところです。これにより、全体のカバー率を維持しつつ、ユースケース等に必要な範囲で高精度の地形テクスチャを提供することが可能になっています。また、地理院タイルと比べて新しいデータを利用可能です。
Project PLATEAU が新たに取得したオルソ航空写真は [G空間情報センター](https://www.geospatial.jp/ckan/dataset/plateau) から GeoTIFF 形式で入手可能です。
Project PLATEAU で配布しているデータの利用許諾については、クリエイティブ・コモンズ・ライセンスの表示 4.0 国際等に準拠していますので、無償かつ商用も含めた利用が可能です。詳しくは Project PLATEAU [サイトポリシー](https://www.mlit.go.jp/plateau/site-policy/) をご確認ください。
## 2. 配信 URL
[Section titled “2. 配信 URL”](#2-配信-url)
注意
本サービスはあくまで試験的な運用であるため、提供期間やサービスレベルについては保証できないことをご了承ください。
### 2.1. 配信中のタイル一覧(カタログ API)
[Section titled “2.1. 配信中のタイル一覧(カタログ API)”](#21-配信中のタイル一覧カタログ-api)
`/tiles/catalog.json` で、現在配信中の全タイルソースの一覧をプログラムから取得できます。各エントリには `name`、`description`、フォーマット別の TileJSON URL(`png` / `webp` / `avif`)が含まれます。
```plaintext
https://tile.plateauview.mlit.go.jp/tiles/catalog.json
```
レスポンス例:
```json
{
"tiles": [
{
"name": "plateau-ortho-2023",
"description": "PLATEAU-Ortho(2023 年度版)",
"urls": {
"png": "https://tile.plateauview.mlit.go.jp/tiles/plateau-ortho-2023/tilejson.json?format=png",
"webp": "https://tile.plateauview.mlit.go.jp/tiles/plateau-ortho-2023/tilejson.json?format=webp",
"avif": "https://tile.plateauview.mlit.go.jp/tiles/plateau-ortho-2023/tilejson.json?format=avif"
}
}
]
}
```
地形(`terrain` / `terrarium` / `mapbox`)も同じカタログに含まれます。詳細は [PLATEAU-Terrain](/datasets/terrain/) を参照してください。
### 2.2. PLATEAU-Ortho(XYZ タイル)
[Section titled “2.2. PLATEAU-Ortho(XYZ タイル)”](#22-plateau-orthoxyz-タイル)
2023 年度に作成されたデータが利用可能です。
```plaintext
https://tile.plateauview.mlit.go.jp/tiles/plateau-ortho-2023/{z}/{x}/{y}.png
```
ズームレベルは 10〜19 に対応しています。
#### 整備地域(XYZ タイル)
[Section titled “整備地域(XYZ タイル)”](#整備地域xyz-タイル)
| 地域コード | 都道府県 | 市町村 | データ提供年度 |
| ----- | ---- | ---- | ------- |
| 01100 | 北海道 | 札幌市 | 2020 |
| 03201 | 岩手県 | 盛岡市 | 2024 |
| 03202 | 岩手県 | 宮古市 | 2024 |
| 04100 | 宮城県 | 仙台市 | 2022 |
| 05204 | 秋田県 | 大館市 | 2024 |
| 07201 | 福島県 | 福島市 | 2024 |
| 07203 | 福島県 | 郡山市 | 2020 |
| 07204 | 福島県 | いわき市 | 2020 |
| 07205 | 福島県 | 白河市 | 2020 |
| 07209 | 福島県 | 相馬市 | 2023 |
| 09201 | 栃木県 | 宇都宮市 | 2020 |
| 10201 | 群馬県 | 前橋市 | 2023 |
| 10207 | 群馬県 | 館林市 | 2020 |
| 11202 | 埼玉県 | 熊谷市 | 2024 |
| 11203 | 埼玉県 | 川口市 | 2024 |
| 11208 | 埼玉県 | 所沢市 | 2024 |
| 11210 | 埼玉県 | 加須市 | 2023 |
| 11214 | 埼玉県 | 春日部市 | 2023 |
| 11217 | 埼玉県 | 鴻巣市 | 2024 |
| 11222 | 埼玉県 | 越谷市 | 2023 |
| 11223 | 埼玉県 | 蕨市 | 2024 |
| 11228 | 埼玉県 | 志木市 | 2024 |
| 11230 | 埼玉県 | 新座市 | 2024 |
| 11232 | 埼玉県 | 久喜市 | 2023 |
| 11234 | 埼玉県 | 八潮市 | 2023 |
| 11235 | 埼玉県 | 富士見市 | 2024 |
| 11237 | 埼玉県 | 三郷市 | 2024 |
| 11238 | 埼玉県 | 蓮田市 | 2022 |
| 11240 | 埼玉県 | 幸手市 | 2024 |
| 11241 | 埼玉県 | 鶴ヶ島市 | 2024 |
| 11243 | 埼玉県 | 吉川市 | 2023 |
| 11246 | 埼玉県 | 白岡市 | 2023 |
| 11301 | 埼玉県 | 伊奈町 | 2024 |
| 11324 | 埼玉県 | 三芳町 | 2024 |
| 11385 | 埼玉県 | 上里町 | 2024 |
| 11442 | 埼玉県 | 宮代市 | 2023 |
| 11464 | 埼玉県 | 杉戸市 | 2023 |
| 11465 | 埼玉県 | 松伏町 | 2023 |
| 12210 | 千葉県 | 茂原市 | 2022 |
| 12217 | 千葉県 | 柏市 | 2020 |
| 13100 | 東京都 | 23区 | 2023 |
| 13213 | 東京都 | 東村山市 | 2020 |
| 13219 | 東京都 | 狛江市 | 2023 |
| 13229 | 東京都 | 西東京市 | 2022 |
| 14100 | 神奈川県 | 横浜市 | 2023 |
| 14130 | 神奈川県 | 川崎市 | 2022 |
| 14204 | 神奈川県 | 鎌倉市 | 2024 |
| 15202 | 新潟県 | 長岡市 | 2023 |
| 15222 | 新潟県 | 上越市 | 2023 |
| 17206 | 石川県 | 加賀市 | 2022 |
| 19201 | 山梨県 | 甲府市 | 2022 |
| 20202 | 長野県 | 松本市 | 2020 |
| 20204 | 長野県 | 岡谷市 | 2020 |
| 20206 | 長野県 | 諏訪市 | 2023 |
| 20209 | 長野県 | 伊那市 | 2020 |
| 20214 | 長野県 | 茅野市 | 2022 |
| 20220 | 長野県 | 安曇野市 | 2024 |
| 21202 | 岐阜県 | 大垣市 | 2024 |
| 22203 | 静岡県 | 沼津市 | 2020 |
| 22213 | 静岡県 | 掛川市 | 2020 |
| 23100 | 愛知県 | 名古屋市 | 2020 |
| 23201 | 愛知県 | 豊橋市 | 2023 |
| 23206 | 愛知県 | 春日井市 | 2023 |
| 23207 | 愛知県 | 豊川市 | 2022 |
| 23208 | 愛知県 | 津島市 | 2020 |
| 24202 | 三重県 | 四日市市 | 2023 |
| 26100 | 京都府 | 京都市 | 2022 |
| 27100 | 大阪府 | 大阪市 | 2024 |
| 27203 | 大阪府 | 豊中市 | 2020 |
| 27204 | 大阪府 | 池田市 | 2020 |
| 28201 | 兵庫県 | 姫路市 | 2023 |
| 28210 | 兵庫県 | 加古川市 | 2020 |
| 28225 | 兵庫県 | 朝来市 | 2022 |
| 31202 | 鳥取県 | 米子市 | 2024 |
| 31384 | 鳥取県 | 日吉津村 | 2023 |
| 32204 | 島根県 | 益田市 | 2024 |
| 33211 | 岡山県 | 備前市 | 2023 |
| 34100 | 広島県 | 広島市 | 2022 |
| 34304 | 広島県 | 海田町 | 2024 |
| 36201 | 徳島県 | 徳島市 | 2023 |
| 37201 | 香川県 | 高松市 | 2022 |
| 38201 | 愛媛県 | 松山市 | 2020 |
| 40202 | 福岡県 | 大牟田市 | 2023 |
| 40203 | 福岡県 | 久留米市 | 2020 |
| 40225 | 福岡県 | うきは市 | 2023 |
| 40447 | 福岡県 | 筑前町 | 2023 |
| 42323 | 長崎県 | 波佐見町 | 2024 |
| 43100 | 熊本県 | 熊本市 | 2020 |
| 43206 | 熊本県 | 玉名市 | 2020 |
| 43443 | 熊本県 | 益城町 | 2023 |
| 47201 | 沖縄県 | 那覇市 | 2020 |
### 2.3. PLATEAU-Ortho(OGC WMS)
[Section titled “2.3. PLATEAU-Ortho(OGC WMS)”](#23-plateau-orthoogc-wms)
2020 年度に作成されたデータが WMS で利用可能です。
**サービスアドレス**:
```plaintext
https://plateauortho.geospatial.jp/mapproxy/service
```
**WMS バージョン**: 1.1.1 または 1.3.0 に準拠。
**サポートする WMS リクエスト**: `GetCapabilities`, `GetMap`
**座標系**: EPSG:4326、EPSG:3857、EPSG:900913、CRS:84
**レイヤー**:
| レイヤー名 | 内容 |
| :-------------: | :------------------------: |
| `plateau` | PLATEAU-Ortho |
| `photo` | 国土地理院の写真(ベースマップ) |
| `plateau_photo` | `plateau` と `photo` の重ね合わせ |
**リクエスト例**:
* GetCapabilities
```plaintext
https://plateauortho.geospatial.jp/mapproxy/service?REQUEST=GetCapabilities
```
* GetMap (EPSG:3857)
```plaintext
https://plateauortho.geospatial.jp/mapproxy/service?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=15528612.30738627352,4234060.365724110045,15581327.2790426109,4277115.012342031114&CRS=EPSG:3857&WIDTH=1075&HEIGHT=878&LAYERS=plateau_photo&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE
```
* GetMap (EPSG:4326)
```plaintext
https://plateauortho.geospatial.jp/mapproxy/service?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=35.62364808927861759,139.853018468884585,35.67783063591231496,139.9193581472800645&CRS=EPSG:4326&WIDTH=1075&HEIGHT=878&LAYERS=plateau_photo&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE
```
**ズームレベル**: ズームレベル 19 までの拡大が可能で、約 30cm の解像度に相当します。
| ズームレベル | 画像解像度 |
| :----: | :---: |
| 10 | 153m |
| 11 | 76m |
| 12 | 38m |
| 13 | 19m |
| 14 | 10m |
| 15 | 5m |
| 16 | 2m |
| 17 | 1.2m |
| 18 | 0.6m |
| 19 | 0.3m |
## 3. PLATEAU-Ortho の利用方法
[Section titled “3. PLATEAU-Ortho の利用方法”](#3-plateau-ortho-の利用方法)
本節では、PLATEAU-Ortho(XYZ タイル)を CesiumJS、TerriaJS、Leaflet、QGIS で利用する方法について解説します。
### 3.1. CesiumJS で利用する方法
[Section titled “3.1. CesiumJS で利用する方法”](#31-cesiumjs-で利用する方法)
CesiumJS は一般的に使われている 3 次元地図を表示するための JavaScript ライブラリです。
CesiumJS でオルソ画像タイルを利用するには、地形モデルもあわせて使用することをおすすめします。ここでは、地形データとして PLATEAU-Terrain を利用し、PLATEAU-Ortho を表示するためのサンプルコードを示します。
PLATEAU-Terrain については [PLATEAU-Terrain](/datasets/terrain/) を、建物モデルは [PLATEAU-3DTiles/MVT](/datasets/3d-tiles/) を参照してください。
```html
PLATEAU-3DTiles/MVT、PLATEAU-Ortho、PLATEAU-Terrain を Cesium で表示
```
### 3.2. TerriaJS で利用する方法
[Section titled “3.2. TerriaJS で利用する方法”](#32-terriajs-で利用する方法)
TerriaJS のカタログファイルに以下のように記述することで、PLATEAU-Ortho を TerriaJS のレイヤとして組み込むことができます。
```json
{
"type": "open-street-map",
"id": "/basemap//オルソ画像タイル/imagery",
"name": "航空写真",
"url": "https://tile.plateauview.mlit.go.jp/tiles/plateau-ortho-2023/",
"fileExtension": "png",
"attribution": ""
}
```
Project PLATEAU では [PLATEAU VIEW 1.1](https://github.com/Project-PLATEAU/PLATEAU-VIEW-1.1) およびそのための [カタログファイルジェネレータ](https://github.com/Project-PLATEAU/plateau-catalog-generator) のソーススクリプトを公開していますので、そちらも参照してください。
### 3.3. Leaflet で利用する方法
[Section titled “3.3. Leaflet で利用する方法”](#33-leaflet-で利用する方法)
以下の HTML は Leaflet でオルソ画像タイルを表示するサンプルです。`ortho_test.html` などの名前で PC に保存して、ブラウザで開いてみてください。
```html
Leaflet で PLATEAU-Ortho を表示する
```
### 3.4. QGIS で利用する方法
[Section titled “3.4. QGIS で利用する方法”](#34-qgis-で利用する方法)
[QGIS](https://qgis.org/ja/site/) は Windows や Mac で使える、オープンソースの GIS ソフトです。QGIS では GIS データを表示するときの背景図として、PLATEAU-Ortho を使うことができます。
1. QGIS のブラウザタブにある「XYZ Tiles」を右クリックして、「新規接続」を選びます

2. 下図のウインドウが出てきますので、名前、URL、最大ズームレベルを記入してください
* URL 欄に `https://tile.plateauview.mlit.go.jp/tiles/plateau-ortho-2023/{z}/{x}/{y}.png` を入力
* 最大ズームレベルは `19`
* 「OK」を押します

3. ブラウザウインドウに「PLATEAU-Ortho 画像タイル」が追加されます
4. 地図にオルソ画像タイルを組み込んで表示。最初に「OpenStreetMap」をつかんでレイヤタブに入れ、次に「PLATEAU-Ortho 画像タイル」をつかんでレイヤタブに入れます

5. 拡大すると、PLATEAU-Ortho の画像タイルが表示されます

## 4. オルソ画像タイルを作成する方法
[Section titled “4. オルソ画像タイルを作成する方法”](#4-オルソ画像タイルを作成する方法)
オルソ画像タイルを作るには専用のソフトウェアを利用します。
Project PLATEAU では、大量のオルソ画像のタイル化を効率的に行うために、FME という市販のソフトウェアを利用していますが、オープンソースやフリーソフトでも、オルソ画像タイルを作成することができます。
例えば、以下のウェブサイトでは QGIS というオープンソースの GIS ソフトを利用したタイル生成の方法が紹介されています。
* [「GIS 実習オープン教材」タイル地図入門(ラスタ)](https://gis-oer.github.io/gitbook/book/materials/web_gis/rastertile/rastertile.html)
オルソ画像タイルを作成する手順は以下の 2 ステップです。
1. **オルソ画像の準備**: オルソ画像の材料は航空写真や衛星画像です。普通は航空測量会社やリモートセンシング技術センターなどから購入することになりますが、小さな範囲であれば、ドローンを使って自前のオルソ航空写真を作成することができます。なおドローン撮影には一般的に関係部署の許可が必要です。
2. **オルソ画像のタイル化**: オルソ画像を専用ソフトに読み込ませて、オルソ画像タイルを保存します。
# PLATEAU-Terrain
> 日本全国の地形データ配信サービスの利用方法
## 1. PLATEAU-Terrain の概要
[Section titled “1. PLATEAU-Terrain の概要”](#1-plateau-terrain-の概要)
Project PLATEAU では、日本全国の地形データを Cesium / MapLibre / Mapbox GL など主要な 3D 地図エンジンから直接利用できるタイル配信サービス「PLATEAU-Terrain」を提供しています。
国土地理院の基盤地図情報数値標高モデル(DEM)をはじめとした各種データソースから生成された標高値に、日本のジオイドモデル([GSIGEO2011](https://www.gsi.go.jp/buturisokuchi/grageo_geoidseika.html) など)を合成して **楕円体高(ellipsoidal height)** に変換したタイルを配信しています。Cesium と MapLibre のどちらから利用しても 3D Tiles などのジオコード済みデータと垂直方向のずれが発生しないようになっています。
本チュートリアルでは、PLATEAU-Terrain の利用方法について解説します。
### 1.1. 提供する地形データ
[Section titled “1.1. 提供する地形データ”](#11-提供する地形データ)
PLATEAU-Terrain は、3 種類の標準的なフォーマットで同じ標高データを配信しています。利用する地図エンジンに合わせて選択してください。
| エンドポイント | フォーマット | 用途 |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| `/terrain/` | [Cesium quantized-mesh-1.0](https://github.com/CesiumGS/quantized-mesh)(TMS Geodetic、`octvertexnormals` 拡張付き) | CesiumJS の `CesiumTerrainProvider` |
| `/terrarium/` | [Mapzen Terrarium](https://github.com/tilezen/joerd/blob/master/docs/formats.md#terrarium)(PNG / WebP / AVIF、Web Mercator XYZ) | MapLibre / Mapbox GL の `raster-dem` ソース(`encoding: "terrarium"`) |
| `/mapbox/` | [Mapbox Terrain-RGB v1](https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/)(PNG / WebP / AVIF、Web Mercator XYZ) | MapLibre / Mapbox GL の `raster-dem` ソース(`encoding: "mapbox"`) |
### 1.2. 高さの基準(楕円体高)
[Section titled “1.2. 高さの基準(楕円体高)”](#12-高さの基準楕円体高)
3D 地図エンジンは一般に WGS84 楕円体(GPS と同じ基準面)を 3 次元空間の基準にしているのに対し、国土地理院の DEM や日常的な「標高」は **正標高(orthometric height、平均海面からの高さ)** で表現されています。両者の差はジオイド高 N と呼ばれ、日本付近では概ね **+30〜+45 m** あります。この差を補正しないと、3D Tiles などのデータと地形が垂直方向にずれてしまいます。
PLATEAU-Terrain では各タイル生成時に、選択されたジオイドモデルから算出した N を画素ごとに加算し、結果を楕円体高として配信しています。
```plaintext
ellipsoidal height = orthometric height + geoid height (N)
```
### 1.3. ジオイドモデルの切り替え
[Section titled “1.3. ジオイドモデルの切り替え”](#13-ジオイドモデルの切り替え)
すべてのエンドポイントは `?geoid=` クエリパラメータでジオイドモデルを切り替えられます。
| `geoid=` | 内容 | 適用範囲 |
| -------------------- | ---------------------------- | ----------- |
| `gsigeo2011`(既定) | 国土地理院「日本のジオイド 2011」(Ver.2.2) | 日本陸域 |
| `jpgeo2024` | 国土地理院「日本のジオイド 2024」 | 日本陸域 + 周辺海域 |
| `jpgeo2024-hrefconv` | JPGEO2024 + Hrefconv 補正 | 日本陸域のみ |
| `none` | ジオイド補正なし(正標高のまま) | グローバル |
ジオイドのカバー範囲を完全に外れているタイルは `404 Not Found` を返します。
### 1.4. ズームレベルとアップサンプリング
[Section titled “1.4. ズームレベルとアップサンプリング”](#14-ズームレベルとアップサンプリング)
DEM の元データの最大ズームよりも高いズームレベルが要求された場合、サーバー側で親タイルを取得し、要求された領域を bilinear で **アップサンプリング** して返します。Cesium の terrain LOD や MapLibre の terrain mesh が高ズームでも切れずに描画されます。
最大ズームは `/terrain/layer.json` および `/terrarium/tilejson.json`、`/mapbox/tilejson.json` の `maxzoom` で確認できます。
## 2. 配信 URL
[Section titled “2. 配信 URL”](#2-配信-url)
注意
本サービスはあくまで試験的な運用であるため、提供期間やサービスレベルについては保証できないことをご了承ください。またデータの内容は予告なく更新されることがあります。
ベース URL:
```plaintext
https://tile.plateauview.mlit.go.jp
```
### 2.1. 配信中のタイル一覧(カタログ API)
[Section titled “2.1. 配信中のタイル一覧(カタログ API)”](#21-配信中のタイル一覧カタログ-api)
`/tiles/catalog.json` で、現在配信中の全タイルソース(オルソ画像と地形を含む)の一覧をプログラムから取得できます。地形は以下の 3 種類のエントリとして含まれます。
```plaintext
https://tile.plateauview.mlit.go.jp/tiles/catalog.json
```
| `name` | `urls` のキー | URL |
| ----------- | ----------------------- | ------------------------------------- |
| `terrain` | `quantized-mesh` | `/terrain/layer.json` |
| `terrarium` | `png` / `webp` / `avif` | `/terrarium/tilejson.json?format=...` |
| `mapbox` | `png` / `webp` / `avif` | `/mapbox/tilejson.json?format=...` |
レスポンス例(地形部分の抜粋):
```json
{
"tiles": [
{
"name": "terrain",
"description": "Cesium quantized-mesh terrain (ellipsoidal heights, Japan coverage)",
"urls": {
"quantized-mesh": "https://tile.plateauview.mlit.go.jp/terrain/layer.json"
}
},
{
"name": "terrarium",
"description": "MapLibre raster-dem source (Terrarium encoding, ellipsoidal heights)",
"urls": {
"png": "https://tile.plateauview.mlit.go.jp/terrarium/tilejson.json?format=png",
"webp": "https://tile.plateauview.mlit.go.jp/terrarium/tilejson.json?format=webp",
"avif": "https://tile.plateauview.mlit.go.jp/terrarium/tilejson.json?format=avif"
}
}
]
}
```
### 2.2. Cesium 用 quantized-mesh terrain
[Section titled “2.2. Cesium 用 quantized-mesh terrain”](#22-cesium-用-quantized-mesh-terrain)
```plaintext
https://tile.plateauview.mlit.go.jp/terrain/layer.json
https://tile.plateauview.mlit.go.jp/terrain/{z}/{x}/{y}.terrain
```
CesiumJS の `CesiumTerrainProvider.fromUrl` に `layer.json` の URL を渡すだけで利用できます。`?geoid=` を付けるとジオイドモデルを切り替えられます(既定は `gsigeo2011`)。
### 2.3. MapLibre / Mapbox GL 用 raster-dem(Terrarium)
[Section titled “2.3. MapLibre / Mapbox GL 用 raster-dem(Terrarium)”](#23-maplibre--mapbox-gl-用-raster-demterrarium)
```plaintext
https://tile.plateauview.mlit.go.jp/terrarium/tilejson.json
https://tile.plateauview.mlit.go.jp/terrarium/{z}/{x}/{y}.{png|webp|avif}
```
`tilejson.json` を MapLibre の `raster-dem` ソースの `url` に指定し、`encoding: "terrarium"` を併せて指定してください。タイル拡張子は既定で `webp`、`tilejson.json?format=png` のように切り替えできます。
### 2.4. MapLibre / Mapbox GL 用 raster-dem(Mapbox Terrain-RGB v1)
[Section titled “2.4. MapLibre / Mapbox GL 用 raster-dem(Mapbox Terrain-RGB v1)”](#24-maplibre--mapbox-gl-用-raster-demmapbox-terrain-rgb-v1)
```plaintext
https://tile.plateauview.mlit.go.jp/mapbox/tilejson.json
https://tile.plateauview.mlit.go.jp/mapbox/{z}/{x}/{y}.{png|webp|avif}
```
`encoding: "mapbox"` を指定してください。タイル拡張子は既定で `webp`、`tilejson.json?format=png` のように切り替えできます。
## 3. 利用例
[Section titled “3. 利用例”](#3-利用例)
### 3.1. CesiumJS
[Section titled “3.1. CesiumJS”](#31-cesiumjs)
`Cesium.Ion` のトークンは不要です。`CesiumTerrainProvider.fromUrl` に `/terrain/` の URL を渡すだけで動作します。
```html
PLATEAU-Terrain を Cesium で表示
```
### 3.2. MapLibre GL JS
[Section titled “3.2. MapLibre GL JS”](#32-maplibre-gl-js)
`raster-dem` ソースに `tilejson.json` を URL として渡し、`terrain` と `hillshade` レイヤーで参照します。`encoding` と `tileSize` を必ず指定してください。
```html
PLATEAU-Terrain を MapLibre で表示
```
### 3.3. プレビュー
[Section titled “3.3. プレビュー”](#33-プレビュー)
ブラウザで以下にアクセスすると、ジオイド切り替えや 3D / hillshade のオン・オフを試せるプレビューが利用できます。
* MapLibre プレビュー:
* Cesium プレビュー:
## 4. 帰属表示
[Section titled “4. 帰属表示”](#4-帰属表示)
PLATEAU-Terrain を利用する場合は、地図画面上に下記のいずれかの帰属を必ず表示してください。
```plaintext
PLATEAU | Mapterhorn | 国土地理院
```
`/terrarium/tilejson.json` および `/mapbox/tilejson.json`、`/terrain/layer.json` のレスポンスにも同等の `attribution` 文字列が含まれます。
## 5. PLATEAU-Terrain (Cesium ion)
[Section titled “5. PLATEAU-Terrain (Cesium ion)”](#5-plateau-terrain-cesium-ion)
2024 年度以前から提供している、Cesium ion でホストされた `terraindb` 形式の地形データです。新たに 2 章で説明したタイル配信サービスを利用される場合はそちらが推奨ですが、Cesium ion 経由で従来通り利用したい場合は本節の手順を参照してください。
### 5.1. アクセストークンおよびアセット ID
[Section titled “5.1. アクセストークンおよびアセット ID”](#51-アクセストークンおよびアセット-id)
PLATEAU-Terrain (Cesium ion) を Cesium で利用する際は以下のトークンとアセット ID を利用してください。
注意
本サービスはあくまで試験的な運用であるため、提供期間やサービスレベルについては保証できないことをご了承ください。またデータの内容は予告なく更新されることがあります。
**トークン**:
```plaintext
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiODVhMmQ5OS1hOWZjLTQ3YmYtODlmNi1lNWUwY2MwOGUxYTMiLCJpZCI6MTQ5ODk3LCJpYXQiOjE2ODc5MzQ3NDN9.OG0mc3i7ZxGwHQjlMv3TRjiOvKWpzxglxmJRaUIykTY
```
**アセット ID**:
```plaintext
3258112
```
**使用例**:
```js
Cesium.Ion.defaultAccessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiODVhMmQ5OS1hOWZjLTQ3YmYtODlmNi1lNWUwY2MwOGUxYTMiLCJpZCI6MTQ5ODk3LCJpYXQiOjE2ODc5MzQ3NDN9.OG0mc3i7ZxGwHQjlMv3TRjiOvKWpzxglxmJRaUIykTY";
viewer.scene.setTerrain(
new Cesium.Terrain(
Cesium.CesiumTerrainProvider.fromIonAssetId(3258112),
),
);
```
### 5.2. CesiumJS アプリケーションの作成
[Section titled “5.2. CesiumJS アプリケーションの作成”](#52-cesiumjs-アプリケーションの作成)
CesiumJS 上で PLATEAU-Terrain (Cesium ion) を利用するためのサンプルコードを示します。
地形データの配信についてご質問がある方は、PacificSpatialSolutions 株式会社()までご連絡ください。
配信された地形データを利用する場合は、「地形データは、測量法に基づく国土地理院長承認(使用)R3JHs 778 を得て使用」とデータの帰属に記載してください。
なお、建物モデルは [PLATEAU-3DTiles](/datasets/3d-tiles/) から配信されている千代田区の建物モデルデータを、ドレープするオルソ写真は [PLATEAU-Ortho](/datasets/ortho/) から配信されている東京都 23 区の航空写真を参照しています。
```html
PLATEAU-3DTiles/MVT、PLATEAU-Ortho、PLATEAU-Terrain (Cesium ion) を Cesium で表示
```
ノート
CesiumJS では、PLATEAU-Terrain 以外に、地形データとして Cesium がデフォルトで配信している Cesium World Terrain を利用することもできます。日本地域における地形データ詳細度は、Cesium World Terrain のほうが PLATEAU-Terrain より劣りますが、世界各地で地形表現を有効にできます。
```js
const viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider: Cesium.createWorldTerrain()
});
```
### 5.3. Cesium ion 用地形データの作成
[Section titled “5.3. Cesium ion 用地形データの作成”](#53-cesium-ion-用地形データの作成)
PLATEAU-Terrain (Cesium ion) などのオープンデータとして利用できる地形データを利用することに加え、独自に地形データを作成することも可能です。
本節では、独自に地形データを整備するために必要なデジタル標高モデル(DEM)データの作成方法について説明します。
#### 5.3.1. DEM データの作成
[Section titled “5.3.1. DEM データの作成”](#531-dem-データの作成)
地形データを作成する場合は、地形データのもととなるラスター形式のデジタル標高モデル(DEM)を準備する必要があります。
ここでは、国土地理院が整備する基盤地図情報数値標高モデルを利用し、FME を用いて DEM データを作成する方法について説明します。
なお、DEM データは様々な方法で作成可能であり、必ずしも FME を利用する必要はありません。
##### (1) 作業フォルダと FME ワークスペースの格納
[Section titled “(1) 作業フォルダと FME ワークスペースの格納”](#1-作業フォルダと-fme-ワークスペースの格納)
基盤地図情報数値標高モデルから地形モデル用 GeoTIFF 形式 DEM ラスターへの変換を行うため、以下のワークスペースをダウンロードして作業フォルダ内に格納してください。
* [s1\_基盤地図情報DEMのGeoTIFF変換.fmw](/fme/s1_%E5%9F%BA%E7%9B%A4%E5%9C%B0%E5%9B%B3%E6%83%85%E5%A0%B1DEM%E3%81%AEGeoTIFF%E5%A4%89%E6%8F%9B.fmw)
* [s1\_基盤地図情報DEMのGeoTIFF変換\_runner.fmw](/fme/s1_%E5%9F%BA%E7%9B%A4%E5%9C%B0%E5%9B%B3%E6%83%85%E5%A0%B1DEM%E3%81%AEGeoTIFF%E5%A4%89%E6%8F%9B_runner.fmw)
* [s2\_海面つきDEM10B\_GeoTIFF作成.fmw](/fme/s2_%E6%B5%B7%E9%9D%A2%E3%81%A4%E3%81%8DDEM10B_GeoTIFF%E4%BD%9C%E6%88%90.fmw)
これらの FME ワークスペースは、以下の条件で稼働することを確認しています。
* FME 2021.2.2 またはそれ以降のバージョンの FME Desktop
* FME Hub で公開されているカスタムフォーマット [Japanese Fundamental Geospatial Data (FGD) DEM V2](https://hub.safe.com/publishers/pacific-spatial-solutions/formats/japanese-fundamental-geospatial-data-fgd-dem-v2) のダウンロードとインストール
* ダウンロードした `JP_FGD_DEM2.fds` をエクスプローラー上で右クリックしてインストール
##### (2) DEM データのダウンロード
[Section titled “(2) DEM データのダウンロード”](#2-dem-データのダウンロード)
基盤地図情報ダウンロードサイトから対象とする地域の数値標高モデル(DEM)データ(5A, 5B, 5C, 10A, 10B)をすべてダウンロードし、作業フォルダーに保存してください。
基盤地図情報 DEM の各データセット(2 次メッシュ区画単位)の zip ファイルは解凍しないでください。基盤地図情報ダウンロードサイトの「まとめてダウンロード」機能を使って複数のデータセット(zip)をさらにまとめた zip ファイルでダウンロードした場合には、最上位の zip のみ解凍して 2 次メッシュ区画単位のデータセットに展開しておいてください。
DEM の種類(5A, 5B, 5C, 10A, 10B)ごとにサブフォルダーに分ける必要はありません。
##### (3) FME ワークスペースの実行
[Section titled “(3) FME ワークスペースの実行”](#3-fme-ワークスペースの実行)
###### (3-a) 基盤地図情報 DEM データから GeoTIFF 形式 DEM ラスターへの変換
[Section titled “(3-a) 基盤地図情報 DEM データから GeoTIFF 形式 DEM ラスターへの変換”](#3-a-基盤地図情報-dem-データから-geotiff-形式-dem-ラスターへの変換)
ワークスペース: `s1_基盤地図情報DEMのGeoTIFF変換_runner.fmw`
このワークスペースを実行することにより、作業フォルダー以下(サブフォルダーも含む)に保存したすべての基盤地図情報 DEM データを DEM ラスターに変換し、出力先として指定したフォルダー内の DEM タイプ別サブフォルダー(`dem5a`, `dem5b`, `dem5c`, `dem10a`, `dem10b`)に GeoTIFF 形式で保存します。

図 1 `s1_基盤地図情報DEMのGeoTIFF変換_runner.fmw` 実行時のダイアログ
| パラメーター名 | 内容 |
| -------------------------------- | -------------------------------------------------- |
| FGD DEM Download Folder | 基盤地図情報 DEM データをダウンロードしたルートフォルダー(`downloads` フォルダー) |
| Destination GeoTIFF Root Folder | 変換結果 GeoTIFF ファイルの出力先ルートフォルダー |
| Log Folder | ログファイル出力先フォルダー |
| Maximum Concurrent FME Processes | 同時に実行する FME プロセス数(M, 最大 7) |
| Workspace Runs per FME Process | 1 つの FME プロセスによるワークスペースの実行回数(N) |
このワークスペースは、基盤地図情報 DEM データ(`*.zip`)を 1 ファイルずつ GeoTIFF 形式に変換するための子ワークスペース `s1_基盤地図情報DEMのGeoTIFF変換.fmw` をファイル数分、繰り返し実行します。
###### (3-b) 海域に標高値を与えた DEM ラスター(10B)の作成
[Section titled “(3-b) 海域に標高値を与えた DEM ラスター(10B)の作成”](#3-b-海域に標高値を与えた-dem-ラスター10bの作成)
ワークスペース: `s2_海面つきDEM10B_GeoTIFF作成.fmw`
`s1_基盤地図情報DEMのGeoTIFF変換_runner.fmw` によって基盤地図情報 DEM から GeoTIFF 形式 DEM ラスターが作成できますが、全国をカバーしている 10B でも海域は Nodata(値がない)であるため、このまま Cesium の地形モデルに変換すると陸域と海域の境界付近で高さが不連続になることがあります。このワークスペースを実行することにより、Nodata のセルに標高値 0 を与えるとともに、若干沖合に範囲を拡大した 10B の DEM ラスターデータセットを作成できます。

図 2 ワークスペース `s2_海面つきDEM10B_GeoTIFF作成.fmw` 実行時のダイアログ
| パラメーター名 | 内容 |
| ------------------------------- | ------------------------------------- |
| Source GeoTIFF Folder (dem10b) | 変換済みの GeoTIFF 形式 10B DEM ラスター保存先フォルダー |
| Destination GeoTIFF Root Folder | 変換結果 GeoTIFF ファイルの出力先フォルダー |
基盤地図情報 DEM は、10B 以外は全国の陸域をカバーしているわけではありません。標高値の精度は次の順で高くなります。
* 低: `10B < 10A < 5C < 5B < 5A` :高
そのため、Cesium ion の地形モデル(terrain)を作成する場合は、次の順に 1 つ前に作成した地形モデルに次の地形モデルを上乗せしていくことにより、地点ごとに存在する DEM タイプのうち最も精度が高いものの標高値を使用した地形モデルとなります。
* 海域に標高値を与えた `10B → 10A → 5C → 5B → 5A`
#### 5.3.2. 地形データへの変換
[Section titled “5.3.2. 地形データへの変換”](#532-地形データへの変換)
ここでは、Cesium ion を利用した DEM データの地形データへの変換方法を説明します。
Cesium ion のサービスを利用することで、データの変換後、地形データの配信も行えるようになります。なお、Cesium ion は有償サービスですが、一定の範囲内であれば無償で利用可能です。
Cesium ion では、ユーザーがアップロードした DEM ファイルを `terraindb` 形式に変換し、配信に利用可能です。`terraindb` 形式への変換は、Cesium ion のクラウドサービスに加え、Cesium のオンプレミス(有償)で提供される変換プログラムでも行えます。日本全国の詳細な地形データを作成する場合は、Cesium のオンプレミスの利用をお勧めします。
##### (1) Cesium ion アカウント開設
[Section titled “(1) Cesium ion アカウント開設”](#1-cesium-ion-アカウント開設)
まず、[Cesium ion](https://cesium.com/) のアカウントを用意します。データサイズが 50 GB を超える場合、有料の Commercial アカウント以上を利用する必要があります。
##### (2) 作成した DEM のアップロードと変換
[Section titled “(2) 作成した DEM のアップロードと変換”](#2-作成した-dem-のアップロードと変換)
FME 等で作成した地形データ作成用の DEM を Cesium ion のアカウントにアップロードして `terraindb` 形式の地形データを準備します。
FME により複数の水平解像度の DEM を用意した場合は、海域に標高値を与えた `10B → 10A → 5C → 5B → 5A` の順にアップロードし、解像度の高い DEM が一番最後にくるようにしてください。
以下では例として、5B / 5A の DEM をアップロードし、地形データを作成する手順を示します。
1. My Asset タブを開き、「Add data」と書かれた青いボタンをクリック

2. Add Data ページで、「Add files…」と書かれた青いボタンをクリックし、対象となるファイルを指定

3. 対象ファイルがリストに現れたら、Asset name を入力し、「What kind of data is this?」を `Raster Terrain` に指定。最初は Base Terrain として `Mean Sea Level` を指定し、「Upload」ボタンをクリック

4. アップロードして地形データとして変換された 5B データを確認したら、再び「Add data」ボタンをクリックして、次の 5A の DEM ファイルを指定

5. Base Terrain として、先ほどアップロードして変換したデータを指定

6. 重ね合わされた地形データが完成。必要に応じてプロセスを繰り返す

#### 5.3.3. 地形データの配信について
[Section titled “5.3.3. 地形データの配信について”](#533-地形データの配信について)
Cesium で地形データを利用するには、地形データをサーバーから配信する必要があります。XYZ タイルデータなどと異なり、データファイルを置いておくだけでは地形データは利用できません。
##### TerriaJS で Cesium ion から配信される地形データを表示する方法
[Section titled “TerriaJS で Cesium ion から配信される地形データを表示する方法”](#terriajs-で-cesium-ion-から配信される地形データを表示する方法)
* データカタログに登録する方法
```json
{
"name": "地形データ",
"type": "cesium-terrain",
"ionAssetId": "your_asset_id",
"ionAccessToken": "your_ion_access_token",
"description": "地形データは、国土地理院長の承認を得て基盤地図情報数値標高モデルを加工後、配信したものです(承認番号 XXXXXXXXX)"
}
```
* デフォルトの地形データとする方法(`config.json` を編集)
```json
{
"useCesiumIonTerrain": true,
"cesiumTerrainAssetId": "your_asset_id",
"cesiumIonAccessToken": "your_ion_access_token"
}
```
## 6. PLATEAU Mapbox Terrain Converter
[Section titled “6. PLATEAU Mapbox Terrain Converter”](#6-plateau-mapbox-terrain-converter)
`terraindb` 形式のデータは Cesium 向けの地形データ形式であり、Mapbox GL JS や MapLibre GL JS などの他の地図エンジンが直接扱えないという課題があります。
そこで、2024 年度の事業において、CityGML 形式の PLATEAU 地形モデル(TIN)を Mapbox や MapLibre で利用可能な地形データである Mapbox Terrain-RGB に変換するライブラリ「PLATEAU Mapbox Terrain Converter」が開発されました。
ライブラリの利用方法および生成した日本全域の地形データの利用方法については、下記のリポジトリを参照してください。
* [PLATEAU Mapbox Terrain Converter](https://github.com/Project-PLATEAU-Admin/plateau-mb-terrain-converter)
# 概要
> PLATEAU 配信サービスの概要と利用条件
Project PLATEAU では、プロジェクトにおいて作成した 3D 都市モデルをはじめとする各種データセットをウェブ上で提供する **PLATEAU 配信サービス** を運用しています。
本ドキュメントは、PLATEAU 配信サービスの利用方法及びこれに関連するナレッジ等を提供するリファレンスです。
## PLATEAU 配信サービスについて
[Section titled “PLATEAU 配信サービスについて”](#plateau-配信サービスについて)
Project PLATEAU では、3D 都市モデルの可視化環境として Cesium 及び Re:Earth を利用した [PLATEAU VIEW](https://plateauview.mlit.go.jp) を構築・運用しており、PLATEAU 配信サービスでは PLATEAU VIEW で利用されている各種データセットを無償で利用可能です。
なお、本サービスはあくまで試験的な運用であるため、提供期間やサービスレベルについては保証できないことをご了承ください。
## 利用可能なデータセット
[Section titled “利用可能なデータセット”](#利用可能なデータセット)
| データセット | 説明 |
| :------------------------------------------- | :-------------------------- |
| [PLATEAU-CityGML](/datasets/citygml/) | CityGML データ |
| [PLATEAU-3DTiles / MVT](/datasets/3d-tiles/) | 建築物モデル等の 3D Tiles / MVT データ |
| [PLATEAU-Terrain](/datasets/terrain/) | 地形モデルの terraindb データ |
| [PLATEAU-Ortho](/datasets/ortho/) | 航空写真オルソ画像タイルデータ |
| [PLATEAU MCP Server](/mcp/overview/) | AI クライアント向け MCP サーバー |
# PLATEAU MCP Server
> AI クライアント向け Model Context Protocol サーバーの利用方法とツール一覧
PLATEAU MCP Server は、PLATEAU の 3D 都市モデルに関する情報を AI クライアントから簡単にアクセスできるようにする MCP(Model Context Protocol)サーバーを提供します。
試験的な提供 - 利用上の注意
* **動作保証・SLA はありません** - 可用性やパフォーマンスの保証は一切行いません
* **予告なく変更されることがあります** - ツールの追加・削除・変更、レスポンス形式の変更などが事前告知なく行われることがあります
* **本番環境での利用は推奨しません** - 検証・評価目的での利用を想定しています
* **サポートは限定的です** - 問い合わせへの対応は保証されません
本サービスの利用により生じたいかなる損害についても、提供者は一切の責任を負いません。
## 概要
[Section titled “概要”](#概要)
PLATEAU MCP Server は、PLATEAU の都市モデルデータおよび仕様書へのアクセスを提供する HTTP ベースの MCP サーバーです。以下の情報にアクセスできます。
### データカタログ
[Section titled “データカタログ”](#データカタログ)
* **地域情報**: 都道府県、市区町村などの地域データ
* **データセット情報**: 建物、道路、土地利用などの 3D 都市モデルデータセット
* **データセット種類**: 利用可能なデータセットの種類と分類
* **メタデータ**: PLATEAU 全体の統計情報や仕様バージョン
* **CityGML データ**: 空間 ID・メッシュコードによる CityGML ファイルの検索と属性取得
### 仕様書
[Section titled “仕様書”](#仕様書)
* **3D 都市モデル標準製品仕様書**: PLATEAU の 3D 都市モデルに関する標準仕様
* **3D 都市モデル標準作業手順書**: 3D 都市モデル作成の標準手順
## AI クライアントでの設定方法
[Section titled “AI クライアントでの設定方法”](#ai-クライアントでの設定方法)
ノート
以下のセットアップ手順は各 AI クライアントの仕様変更により変わる可能性があります。最新の情報は各公式ドキュメントをご確認ください。
### Claude Desktop での設定
[Section titled “Claude Desktop での設定”](#claude-desktop-での設定)
#### 有料プラン (Pro / Business / Enterprise) の場合
[Section titled “有料プラン (Pro / Business / Enterprise) の場合”](#有料プラン-pro--business--enterprise-の場合)
1. Claude Desktop を開く
2. **Settings → Integrations** を選択
3. 「**+ Add Custom Integration**」をクリック
4. 以下の情報を入力
* **名前**: `PLATEAU MCP`
* **URL**: `https://api.plateauview.mlit.go.jp/mcp`
* **詳細設定 → 認証(OAuth)**: 空欄のまま
5. 設定を保存
#### 組織プラン(Enterprise / Business)で管理者が設定する場合
[Section titled “組織プラン(Enterprise / Business)で管理者が設定する場合”](#組織プランenterprise--businessで管理者が設定する場合)
1. Claude の管理コンソールにログイン
2. **管理者設定 → コネクタ** を選択
3. 「カスタムコネクタを追加」をクリック
4. 上記と同じ情報を入力して保存
#### 無料プランの場合
[Section titled “無料プランの場合”](#無料プランの場合)
Claude Desktop 無料版は HTTP MCP に対応していないため、HTTP-to-Stdio アダプタ CLI を使用する必要があります。
1. Claude Desktop を開く
2. **Settings → Developer** タブを選択
3. 「**Edit Config**」をクリック
4. 設定ファイルに以下を追加
```json
{
"mcpServers": {
"plateau": {
"command": "npx",
"args": ["-y", "@pyroprompts/mcp-stdio-to-streamable-http-adapter"],
"env": {
"URI": "https://api.plateauview.mlit.go.jp/mcp",
"MCP_NAME": "plateau"
}
}
}
}
```
5. ファイルを保存して Claude Desktop を再起動
Node.js のセットアップが必要
この方法では `npx` コマンドを使用するため、事前に Node.js をインストールする必要があります。[Node.js 公式サイト](https://nodejs.org/) から LTS 版をダウンロードしてインストールしてください。
**参考**:
* [Claude Desktop ヘルプセンター: ローカル MCP サーバー](https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop)
* [@pyroprompts/mcp-stdio-to-streamable-http-adapter](https://www.npmjs.com/package/@pyroprompts/mcp-stdio-to-streamable-http-adapter)
### ChatGPT での設定
[Section titled “ChatGPT での設定”](#chatgpt-での設定)
ChatGPT (Pro / Team / Enterprise / Edu) では、以下の手順で MCP サーバーを追加できます。
1. ChatGPT の **Settings** で Developer Mode を有効化
2. **Settings → Apps** を選択
3. 「アプリを作成する」をクリック
4. 以下の情報を入力
* **名前**: `PLATEAU MCP`
* **URL**: `https://api.plateauview.mlit.go.jp/mcp`
* **認証**: `認証なし` を選択
5. 「カスタム MCP サーバーのリスク警告」で「理解したうえで続行」にチェック
6. 設定を保存
7. チャットで「+」ボタン → 「More」→ PLATEAU MCP を選択して利用
参考: [ChatGPT MCP 公式ドキュメント](https://platform.openai.com/docs/mcp)
### Claude Code での設定
[Section titled “Claude Code での設定”](#claude-code-での設定)
```bash
claude mcp add --transport http plateau https://api.plateauview.mlit.go.jp/mcp
```
参考: [Claude Code MCP 公式ドキュメント](https://docs.anthropic.com/en/docs/claude-code/mcp)
### その他の MCP 対応 AI クライアント
[Section titled “その他の MCP 対応 AI クライアント”](#その他の-mcp-対応-ai-クライアント)
HTTP MCP をサポートする他の AI クライアントでも、同様にサーバー URL を設定することで利用できます。
```plaintext
https://api.plateauview.mlit.go.jp/mcp
```
## 各ツールの説明
[Section titled “各ツールの説明”](#各ツールの説明)
### 仕様書ツール
[Section titled “仕様書ツール”](#仕様書ツール)
#### 1. `plateau_spec_outline`
[Section titled “1. plateau\_spec\_outline”](#1-plateau_spec_outline)
仕様書の目次(アウトライン)を取得します。
**パラメータ**:
* `document_type` (optional): `standard`(標準製品仕様書、デフォルト)または `procedure`(標準作業手順書)
* `depth` (optional): 取得する階層の深さ(1=章のみ、2=章+節、3=より深く)。デフォルト: 2
* `chapter` (optional): 特定の章のみ取得(例: `toc4` でデータ構造の章)
* `format` (optional): `markdown`(デフォルト)または `json`
#### 2. `plateau_spec_read`
[Section titled “2. plateau\_spec\_read”](#2-plateau_spec_read)
特定の節の内容を取得します。デフォルトで子ページの内容も含めて取得します。
**パラメータ**:
* `path` (required): 読み込むパス(例: `/plateaudocument/toc1`、`/plateaudocument/toc4`)
* `document_type` (optional): `standard`(デフォルト)または `procedure`
* `single_page` (optional): `true` の場合、子ページを含めず指定したページのみ取得。デフォルト: `false`
* `include_images` (optional): `true` の場合、base64 エンコードされた画像をマークダウンに含める。デフォルト: `false`
**特徴**:
* 子ページを含む全内容を**並列で高速取得**
* 出力が長すぎる場合は**自動的にトランケート**され、より細かい節ごとに取得するためのヒントが表示される
### データカタログツール
[Section titled “データカタログツール”](#データカタログツール)
#### 3. `plateau_get_metadata`
[Section titled “3. plateau\_get\_metadata”](#3-plateau_get_metadata)
PLATEAU 全体のメタデータを取得します。
**パラメータ**: なし
**レスポンス例**:
```json
{
"available_years": [2020, 2021, 2022, 2023],
"plateau_specs": [
{ "id": "...", "major_version": 3, "year": 2023, "minor_versions": [...] }
],
"total_areas": 150,
"total_datasets": 1200
}
```
#### 4. `plateau_search_areas`
[Section titled “4. plateau\_search\_areas”](#4-plateau_search_areas)
地域(都道府県、市区町村)を検索します。
**パラメータ**:
* `parent_code` (optional): 親地域コード(例: `13` で東京都)
* `dataset_types` (optional): データセット種類コードのリスト
* `categories` (optional): カテゴリ(`PLATEAU`, `RELATED`, `GENERIC`)
* `area_types` (optional): 地域タイプ(`PREFECTURE`, `CITY`, `WARD`)
* `search_text` (optional): 検索文字列
* `include_parents` (optional): 親地域を含めるか
* `include_empty` (optional): データセットがない地域も含めるか
* `deep` (optional): 深い階層まで検索するか
#### 5. `plateau_get_area`
[Section titled “5. plateau\_get\_area”](#5-plateau_get_area)
特定の地域の詳細情報を取得します。
**パラメータ**:
* `code` (required): 地域コード(例: `13101`)
#### 6. `plateau_search_datasets`
[Section titled “6. plateau\_search\_datasets”](#6-plateau_search_datasets)
データセットを検索します。
**パラメータ**:
* `area_codes` (optional): 地域コードのリスト
* `dataset_types` (optional): データセット種類コードのリスト
* `categories` (optional): カテゴリ
* `plateau_spec` (optional): PLATEAU 仕様バージョン
* `year` (optional): 整備年度
* `registration_year` (optional): 登録年度
* `search_text` (optional): 検索文字列
* `shallow` (optional): 詳細情報を省略するか
#### 7. `plateau_get_dataset`
[Section titled “7. plateau\_get\_dataset”](#7-plateau_get_dataset)
特定のデータセットの詳細情報を取得します。
**パラメータ**:
* `id` (required): データセット ID
#### 8. `plateau_list_dataset_types`
[Section titled “8. plateau\_list\_dataset\_types”](#8-plateau_list_dataset_types)
データセット種類の一覧を取得します。
**パラメータ**:
* `category` (optional): カテゴリ
* `plateau_spec` (optional): PLATEAU 仕様バージョン
* `year` (optional): 対象年度
### CityGML ツール
[Section titled “CityGML ツール”](#citygml-ツール)
データカタログツールに加えて、CityGML ファイルから直接属性情報を取得するツールも提供しています。
#### 9. `plateau_citygml_get_attributes`
[Section titled “9. plateau\_citygml\_get\_attributes”](#9-plateau_citygml_get_attributes)
CityGML ファイルから指定した建物 ID の属性情報を取得します。
**使い方の流れ**:
1. `plateau_get_citygml_files` でメッシュコードや空間 ID を指定して CityGML URL を取得
2. レスポンスの `cities[].files[type][].url` から CityGML URL を取得
3. その URL と建物 ID をこのツールに渡す
**パラメータ**:
* `url` (required): CityGML ファイルの URL
* `building_ids` (required): 取得する建物 ID のリスト
* `skip_code_list` (optional): コードリストの取得をスキップするか(デフォルト: `false`)
#### 10. `plateau_citygml_get_features`
[Section titled “10. plateau\_citygml\_get\_features”](#10-plateau_citygml_get_features)
CityGML ファイルから指定した空間 ID(SpatialID)に交差する地物の ID リストを取得します。
**パラメータ**:
* `url` (required): CityGML ファイルの URL
* `spatial_ids` (required): 検索する空間 ID のリスト(例: `["25/52235/23212/25/0"]`)
#### 11. `plateau_citygml_get_geoid_height`
[Section titled “11. plateau\_citygml\_get\_geoid\_height”](#11-plateau_citygml_get_geoid_height)
指定した緯度経度のジオイド高を取得します。日本のジオイド 2011 に基づきます。標高の楕円体高と正標高の変換に使用できます。
**パラメータ**:
* `latitude` (required): 緯度(度)
* `longitude` (required): 経度(度)
#### 12. `plateau_get_citygml_files`
[Section titled “12. plateau\_get\_citygml\_files”](#12-plateau_get_citygml_files)
指定した条件で CityGML ファイルを検索します。メッシュコード、空間 ID、または矩形範囲で検索できます。
**条件フォーマット**:
* メッシュコード: `m:53393580,53393581`(カンマ区切りで複数指定可)
* 空間 ID: `s:15/0/29134/12950,15/0/29134/12951`
* 矩形範囲: `r:139.7,35.6,139.8,35.7`(西経度, 南緯度, 東経度, 北緯度)
**主な地物型**:
* `bldg`: 建築物モデル
* `tran`: 交通(道路)モデル
* `luse`: 土地利用モデル
* `dem`: 地形モデル
* `fld`: 洪水浸水想定区域モデル
* `lsld`: 土砂災害警戒区域モデル
* `urf`: 都市計画決定情報モデル
利用可能な全ての地物型は `plateau_list_dataset_types` ツールで取得できます。
**パラメータ**:
* `condition` (required): 検索条件
* `feature_types` (optional): 取得する地物型のリスト(例: `["bldg", "tran"]`)
### ヘルパーツール
[Section titled “ヘルパーツール”](#ヘルパーツール)
#### 13. `plateau_explain_spatial_id`
[Section titled “13. plateau\_explain\_spatial\_id”](#13-plateau_explain_spatial_id)
空間 ID(Spatial ID)の仕様と使い方を解説するマークダウンを返します。
空間 ID は 3 次元空間を一意に識別するための規格で、`{z}/{f}/{x}/{y}` 形式で表現されます。返される解説には以下が含まれます。
* 空間 ID のフォーマットと各要素の意味
* ズームレベルごとの解像度一覧
* 座標計算式
* PLATEAU ツールでの使い方
* 参考リンク
**パラメータ**: なし
## 制限事項
[Section titled “制限事項”](#制限事項)
* 検索結果は最大 100 件までに制限されています
* 100 件を超える場合、`metadata.has_more` が `true` となり、`refinement_suggestions` に絞り込み方法が提示されます
* より詳細な検索を行う場合は、パラメータを追加して絞り込んでください
## 技術仕様
[Section titled “技術仕様”](#技術仕様)
このサーバーは [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) の公式仕様に準拠しています。
* プロトコル: [MCP 2025-06-18](https://modelcontextprotocol.io/specification/2025-06-18)
* トランスポート: HTTP(単一 JSON レスポンス形式、SSE 非使用)
* メッセージ形式: JSON-RPC 2.0
* 認証: なし(公開データのため)
* 実装ライブラリ: [mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
## 関連リンク
[Section titled “関連リンク”](#関連リンク)
* [PLATEAU 公式サイト](https://www.mlit.go.jp/plateau/)
* [3D 都市モデル標準製品仕様書](https://www.mlit.go.jp/plateaudocument/)
* [3D 都市モデル標準作業手順書](https://www.mlit.go.jp/plateaudocument02/)
* [Model Context Protocol (MCP) 仕様](https://modelcontextprotocol.io/specification)
# クイックスタート
> PLATEAU 配信サービスから最初のデータを取得する最短手順
このページでは、PLATEAU 配信サービスから最初のデータを取得するまでの最短手順を紹介します。
## 1. データを探す
[Section titled “1. データを探す”](#1-データを探す)
API に慣れていない方は、まず [**データセット一覧**](/datasets/explorer/) ページがおすすめです。 都道府県・市区町村・種別・形式などで絞り込み、配信 URL をその場でコピーできます。 コピーした URL は、次の「3. 表示する」のサンプルコードにそのまま貼り付けて使えます。
API から直接取得したい場合は、データカタログ API を使ってデータを検索します。例えば、東京都千代田区(自治体コード `13101`)のデータセット一覧を取得:
```bash
curl 'https://api.plateauview.mlit.go.jp/datacatalog/plateau-datasets' \
| jq '.datasets[] | select(.city_code == "13101")'
```
または GraphQL でも取得できます:
```bash
curl -X POST https://api.plateauview.mlit.go.jp/datacatalog/graphql \
-H 'Content-Type: application/json' \
-d '{"query":"{ area(code: \"13101\") { datasets { name items { url format } } } }"}'
```
## 2. 配信 URL を取得する
[Section titled “2. 配信 URL を取得する”](#2-配信-url-を取得する)
レスポンスの `composite_url` フィールドが、CesiumJS や MapLibre などのクライアントから利用しやすい配信 URL です。
* 3D Tiles の場合: 自治体単位の `tileset.json` を動的生成した URL([複合 tileset.json API](/datasets/3d-tiles/#42-%E8%A4%87%E5%90%88-tilesetjson%E8%A4%87%E6%95%B0%E9%83%BD%E5%B8%82%E3%81%AE-3d-tiles-%E3%82%92-1-%E3%81%A4%E3%81%AE-url-%E3%81%A7%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E5%8F%96%E5%BE%97))
* MVT の場合: 自治体単位の TileJSON 3.0 を動的生成した URL([MVT TileJSON API](/datasets/3d-tiles/#43-%E8%87%AA%E6%B2%BB%E4%BD%93%E5%8D%98%E4%BD%8D%E3%81%AE-mvt-tilejsonmaplibre-%E3%81%AA%E3%81%A9%E3%81%8B%E3%82%89%E5%88%A9%E7%94%A8))
`url` フィールドは原典となる配信 URL(3D Tiles なら `tileset.json`、MVT なら `{z}/{x}/{y}.mvt` 形式)で、PLATEAU CMS から直接配信されます。
`composite_url` を強く推奨します
PLATEAU の都市データは毎年更新され、新しい整備年度のデータが公開されます。`url`(CMS 直リンク)を埋め込むと、新しい年度が公開されたときにアプリケーション側のコード書き換えが必要になります。
`composite_url` は API サーバ側でデータを動的に解決するため、**特に整備年度を `latest` で指定した形**(例: `13101-bldg-lod2-latest`)を使えば、新しいデータが公開されたタイミングで URL を変更しなくても自動的に最新データに追従します。広域用の `composite_tilesets` 配列の `-latest` エントリも同様です。
## 3. 表示する
[Section titled “3. 表示する”](#3-表示する)
最も手軽なのは CesiumJS での 3D Tiles 表示です。
```html
```
このファイルをブラウザで開けば、千代田区の 3D 建物モデルが表示されます。
## 次のステップ
[Section titled “次のステップ”](#次のステップ)
* データセットの種類別の詳しい使い方は [データセット](/datasets/citygml/) セクションを参照
* AI クライアントから利用するなら [PLATEAU MCP Server](/mcp/overview/)
* 全データセット仕様は [可視化用データ変換仕様](/spec/visualization/)
# PLATEAU Agent Skills
> AI コーディングエージェント向けの Agent Skills 配布リポジトリと利用方法
PLATEAU Agent Skills は、AI コーディングエージェント(Claude Code、GitHub Copilot、Cursor、Codex CLI、Gemini CLI など)に PLATEAU 配信サービスの利用知識をインストールするための [Agent Skills](https://agentskills.io/) パッケージです。
試験的な提供 - 利用上の注意
* **動作保証・SLA はありません** - 可用性やパフォーマンスの保証は一切行いません
* **予告なく変更されることがあります** - スキルの追加・削除・変更、内容の変更などが事前告知なく行われることがあります
* **本番環境での利用は推奨しません** - 検証・評価目的での利用を想定しています
* **サポートは限定的です** - 問い合わせへの対応は保証されません
本サービスの利用により生じたいかなる損害についても、提供者は一切の責任を負いません。
## Agent Skills とは
[Section titled “Agent Skills とは”](#agent-skills-とは)
Agent Skills は、AI コーディングエージェントに特定ドメインの知識・手順を渡すための、移植可能な指示書フォーマットです。`SKILL.md` という Markdown ファイル(YAML フロントマターで `name` / `description` を持つ)と関連リソースを 1 つのフォルダにまとめた形式で、[agentskills.io](https://agentskills.io/specification) の仕様に従います。
エージェントはタスクの内容に応じて該当スキルを自動的に読み込み、その指示に従って動作します。PLATEAU 配信 API の URL 書式や、CityGML API の使い分けといった「人間が毎回説明する必要のある手順」をスキルとして配布することで、エージェントの応答精度が向上します。
## 配布リポジトリ
[Section titled “配布リポジトリ”](#配布リポジトリ)
PLATEAU の Agent Skills は [`Project-PLATEAU/skills`](https://github.com/Project-PLATEAU/skills) で配布しています。
## 利用可能なスキル
[Section titled “利用可能なスキル”](#利用可能なスキル)
| スキル | 用途 |
| ------------- | ---------------------------------------------------------------------- |
| `plateau-api` | PLATEAU 配信サービスの REST / GraphQL API を使ったデータ取得(3D Tiles, MVT, CityGML 等) |
今後、用語集スキルや仕様書スキル等を追加予定です。
## インストール
[Section titled “インストール”](#インストール)
### GitHub CLI 経由(推奨)
[Section titled “GitHub CLI 経由(推奨)”](#github-cli-経由推奨)
[`gh skill`](https://cli.github.com/manual/gh_skill) コマンドを使うと、Claude Code・GitHub Copilot・Cursor・Codex CLI・Gemini CLI など多数のエージェントに横断的にインストールできます。
```bash
# Claude Code(ユーザースコープ)にインストール
gh skill install Project-PLATEAU/skills plateau-api --agent claude-code --scope user
# インタラクティブに対象エージェント・スキルを選ぶ
gh skill install Project-PLATEAU/skills
```
対応エージェント: GitHub Copilot, Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, Amp, Goose, Junie, OpenCode, Windsurf など。
### Claude Code プラグイン経由
[Section titled “Claude Code プラグイン経由”](#claude-code-プラグイン経由)
将来サポート予定。
### 手動インストール
[Section titled “手動インストール”](#手動インストール)
```bash
git clone https://github.com/Project-PLATEAU/skills.git
cp -r skills/skills/plateau-api ~/.claude/skills/
```
Claude Code 以外のエージェントについては、各エージェントの skills ディレクトリ(例: `.cursor/rules/`, `.codex/skills/` 等)にコピーしてください。
## MCP Server / llms.txt との関係
[Section titled “MCP Server / llms.txt との関係”](#mcp-server--llmstxt-との関係)
PLATEAU 配信サービスは AI クライアント向けに 3 つのアクセス手段を提供しています。用途に応じて使い分けてください。
| 手段 | 特徴 | 推奨用途 |
| ---------------------------------------------------------------------- | ---------------------- | ----------------------------------- |
| **Agent Skills** | エージェントに事前インストールする指示書 | コーディングエージェントから API を呼び出す際の手順を埋め込みたい |
| **[MCP Server](/mcp/overview/)** | 実行時にデータを取得する HTTP サーバー | 最新のデータカタログ・属性情報を動的に問い合わせたい |
| **[llms-full.txt](https://docs.plateauview.mlit.go.jp/llms-full.txt)** | ドキュメント全文の Markdown | エージェントに公式ドキュメント全体を読ませたい |
Agent Skills は **静的なノウハウ**、MCP Server は **動的なデータ取得**、llms.txt は **網羅的なリファレンス** という役割分担です。組み合わせて使うと相互補完的に動作します。
## ライセンス
[Section titled “ライセンス”](#ライセンス)
[MIT License](https://github.com/Project-PLATEAU/skills/blob/main/LICENSE)
# PLATEAU 2023 可視化用データ変換仕様
> 3D 都市モデル標準製品仕様書 3.x 版に基づく CityGML から 3D Tiles / MVT への変換仕様
## 本仕様書の目的
[Section titled “本仕様書の目的”](#本仕様書の目的)
本仕様書は、3D 都市モデル標準製品仕様書 3.x 版に基づいて整備された CityGML 形式の 3D 都市モデルデータを Cesium 環境で可視化するための Cesium 3D Tiles(以下「3D Tiles」)または Mapbox Vector Tile(以下「MVT」)データセットへの変換仕様(主に主題属性の構成)を説明するものです。
1. 変換対象の地物型と変換結果データセット名
2. 3D Tiles と MVT の主題属性の構成
3. 変換に使用するソフトウェア等
## 1. 変換対象の地物型と変換結果データセット名
[Section titled “1. 変換対象の地物型と変換結果データセット名”](#1-変換対象の地物型と変換結果データセット名)
標準製品仕様書 3.x 版で定義されている空間属性を持つ地物型のうち、地形モデルを除くすべての地物型を可視化のためのデータ変換の対象とします。CityGML および i-UR の仕様に基づくフィーチャークラスについては詳細度別に、実質的に 2D の空間属性を持つもの(標準製品仕様書の規定に基づいて z=0 で作成されるもの)は MVT に、3D の空間属性を持つものは 3D Tiles に変換します。
公共測量標準図式の応用スキーマに基づく `uro:DmGeometricAttribute` 型(空間属性を持つもの)および `uro:DmAnnotation` 型の属性として記述されたフィーチャー(以下「DM フィーチャー」)は、すべて MVT に変換します。
### 表 1 可視化用変換結果データセット名
[Section titled “表 1 可視化用変換結果データセット名”](#表-1-可視化用変換結果データセット名)
| # | パッケージ | 変換結果データセット名 | データ形式 | 概要 |
| -- | ----------------- | -------------------------------------------------------------------- | -------------- | ---------------------------------- |
| 1 | 建築物モデル | `bldg_lod1` | 3D Tiles | LOD1 建築物モデル |
| | | `bldg_lod2` | 3D Tiles | LOD2 以下の最大詳細度の建築物モデル |
| | | `bldg_lod3` | 3D Tiles | LOD3 以下の最大詳細度の建築物モデル |
| | | `bldg_lod4` | 3D Tiles | LOD4 以下の最大詳細度の建築物モデル |
| | | `bldg_lod1_no_texture` | 3D Tiles | LOD1 建築物モデル(テクスチャなし) |
| | | `bldg_lod2_no_texture` | 3D Tiles | LOD2 以下の最大詳細度の建築物モデル(テクスチャなし) |
| | | `bldg_lod3_no_texture` | 3D Tiles | LOD3 以下の最大詳細度の建築物モデル(テクスチャなし) |
| | | `bldg_lod4_no_texture` | 3D Tiles | LOD4 以下の最大詳細度の建築物モデル(テクスチャなし) |
| | | `bldg_dm_geometric_attributes` | MVT | DmGeometricAttribute に記述されているジオメトリ |
| | | `bldg_dm_annotations` | MVT | DmAnnotation に記述されているジオメトリ |
| 2 | 交通(道路)モデル | `tran_lod0` | MVT | LOD0 道路モデル |
| | | `tran_lod1` | MVT | LOD1 道路モデル |
| | | `tran_lod2` | MVT | LOD2 道路モデル(交通領域、交通補助領域) |
| | | `tran_lod3` | 3D Tiles | LOD3 道路モデル(交通領域、交通補助領域) |
| | | `tran_dm_geometric_attributes` | MVT | DmGeometricAttribute |
| | | `tran_dm_annotations` | MVT | DmAnnotation |
| 3 | 交通(鉄道)モデル | `rwy_lod0`〜`rwy_lod3` | MVT / 3D Tiles | LOD0〜3 鉄道モデル(LOD3 のみ 3D Tiles) |
| | | `rwy_dm_geometric_attributes` / `rwy_dm_annotations` | MVT | DM フィーチャー |
| 4 | 交通(徒歩道)モデル | `trk_lod0`〜`trk_lod3` | MVT / 3D Tiles | LOD0〜3 徒歩道モデル(LOD3 のみ 3D Tiles) |
| | | `trk_dm_geometric_attributes` / `trk_dm_annotations` | MVT | DM フィーチャー |
| 5 | 交通(広場)モデル | `squr_lod0`〜`squr_lod3` | MVT / 3D Tiles | LOD0〜3 広場モデル(LOD3 のみ 3D Tiles) |
| | | `squr_dm_geometric_attributes` / `squr_dm_annotations` | MVT | DM フィーチャー |
| 6 | 交通(航路)モデル | `wwy_lod0`〜`wwy_lod2` | MVT | LOD0〜2 航路モデル |
| 7 | 土地利用モデル | `luse` | MVT | LOD1 土地利用モデル |
| 8 | 災害リスク(浸水)モデル - 洪水 | `fld_{admin}_{river}_{scale}` | 3D Tiles | LOD1 洪水浸水想定区域モデル(補足説明 1) |
| 9 | 災害リスク(浸水)モデル - 津波 | `tnm_{name}` | 3D Tiles | LOD1 津波浸水想定区域モデル(補足説明 2) |
| 10 | 災害リスク(浸水)モデル - 高潮 | `htd_{name}` | 3D Tiles | LOD1 高潮浸水想定区域モデル(補足説明 2) |
| 11 | 災害リスク(浸水)モデル - 内水 | `ifld_{name}` | 3D Tiles | LOD1 内水浸水想定区域モデル(補足説明 2) |
| 12 | 災害リスク(土砂災害)モデル | `lsld` | MVT | LOD1 土砂災害警戒区域モデル |
| 13 | 都市計画決定情報モデル | `urf_{class}` | MVT | LOD1 都市計画決定情報モデル(補足説明 3) |
| 14 | 橋梁モデル | `brid_lod1`〜`brid_lod4` | 3D Tiles | LOD1〜4 橋梁モデル |
| | | `brid_dm_geometric_attributes` / `brid_dm_annotations` | MVT | DM フィーチャー |
| 15 | トンネルモデル | `tun_lod1`〜`tun_lod4` | 3D Tiles | LOD1〜4 トンネルモデル |
| | | `tun_dm_geometric_attributes` / `tun_dm_annotations` | MVT | DM フィーチャー |
| 16 | その他の構造物モデル | `cons_lod0` | MVT | LOD0 その他の構造物モデル |
| | | `cons_lod1`〜`cons_lod3` | 3D Tiles | LOD1〜3 その他の構造物モデル |
| | | `cons_dm_geometric_attributes` / `cons_dm_annotations` | MVT | DM フィーチャー |
| 17 | 都市設備モデル | `frn_lod1`〜`frn_lod3` | 3D Tiles | LOD1〜3 都市設備モデル |
| | | `frn_dm_geometric_attributes` / `frn_dm_annotations` | MVT | DM フィーチャー |
| 18 | 地下埋設物モデル | `unf_{class}_lod1`〜`unf_{class}_lod4` | 3D Tiles | LOD1〜4 地下埋設物モデル(補足説明 4) |
| | | `unf_{class}_dm_geometric_attributes` / `unf_{class}_dm_annotations` | MVT | DM フィーチャー |
| 19 | 地下街モデル | `ubld_lod0` | MVT | LOD0 地下街モデル |
| | | `ubld_lod1`〜`ubld_lod4` | 3D Tiles | LOD1〜4 地下街モデル |
| 20 | 植生モデル | `veg_{class}_lod1`〜`veg_{class}_lod3` | 3D Tiles | LOD1〜3 植生モデル(補足説明 5) |
| | | `veg_{class}_dm_geometric_attributes` / `veg_{class}_dm_annotations` | MVT | DM フィーチャー |
| 21 | 地形モデル | (PLATEAU VIEW での可視化対象外) | | |
| 22 | 水部モデル | `wtr_lod0` | MVT | LOD0 水部モデル |
| | | `wtr_lod1`〜`wtr_lod3` | 3D Tiles | LOD1〜3 水部モデル |
| | | `wtr_dm_geometric_attributes` / `wtr_dm_annotations` | MVT | DM フィーチャー |
| 23 | 区域モデル | `area_Zone` | MVT | LOD1 区域モデル |
| 24 | 汎用都市オブジェクトモデル | `gen_{code}_lod0` | MVT | LOD0 汎用都市オブジェクトモデル(補足説明 6) |
| | | `gen_{code}_lod1`〜`gen_{code}_lod4` | 3D Tiles | LOD1〜4 汎用都市オブジェクトモデル(補足説明 6) |
#### 補足説明 1: 災害リスクモデル(浸水想定区域)洪水
[Section titled “補足説明 1: 災害リスクモデル(浸水想定区域)洪水”](#補足説明-1-災害リスクモデル浸水想定区域洪水)
* `fld_{admin}_{river}_{scale}`
* `{admin}`: 河川管理者区分に応じて `natl`(国)または `pref`(都道府県)
* `{river}`: 入力データセットにおけるサブフォルダー名(水系名・河川名)
* `{scale}`: 洪水規模に応じて `l1`(計画規模)または `l2`(想定最大規模)
#### 補足説明 2: 災害リスクモデル(浸水想定区域)津波、高潮、内水
[Section titled “補足説明 2: 災害リスクモデル(浸水想定区域)津波、高潮、内水”](#補足説明-2-災害リスクモデル浸水想定区域津波高潮内水)
* `(tnm|htd|ifld)_{name}`
* `{name}`: 入力データセットにおけるサブフォルダー名(浸水想定区域の名称)
#### 補足説明 3: 都市計画決定情報モデル
[Section titled “補足説明 3: 都市計画決定情報モデル”](#補足説明-3-都市計画決定情報モデル)
* `urf_{class}`
* `{class}`: 当該データセットに格納されるフィーチャークラス名(`UrbanPlanningArea`, `UseDistrict`, `FirePreventionDistrict` など)
#### 補足説明 4: 地下埋設物モデル
[Section titled “補足説明 4: 地下埋設物モデル”](#補足説明-4-地下埋設物モデル)
* `unf_{class}_(lod[1-4]|dm_geometric_attributes|dm_annotations)`
* `{class}`: 当該データセットに格納されるフィーチャークラス名(`WaterPipe`, `Duct`, `Manhole` など)
#### 補足説明 5: 植生モデル
[Section titled “補足説明 5: 植生モデル”](#補足説明-5-植生モデル)
* `veg_{class}_(lod[1-3]|dm_geometric_attributes|dm_annotations)`
* `{class}`: フィーチャークラス名(`SolitaryVegetationObject`(単独木)または `PlantCover`(植被))
#### 補足説明 6: 汎用都市オブジェクトモデル
[Section titled “補足説明 6: 汎用都市オブジェクトモデル”](#補足説明-6-汎用都市オブジェクトモデル)
* `gen_{code}_lod[0-4]`
* `{code}`: 当該データセットに格納される汎用都市オブジェクトモデルフィーチャーの `gml:name` の値
## 2. 3D Tiles と MVT の主題属性の構成
[Section titled “2. 3D Tiles と MVT の主題属性の構成”](#2-3d-tiles-と-mvt-の主題属性の構成)
### 2.1. 共通属性
[Section titled “2.1. 共通属性”](#21-共通属性)
下表に掲げる属性は原則としてすべての 3D Tiles フィーチャー、MVT フィーチャーに付加します。ただし、災害リスク(浸水)モデルについては、可視化にあたって軽量化を行う都合上、`meshcode`, `gml_id` 属性は付加しません。
#### 表 2 共通属性
[Section titled “表 2 共通属性”](#表-2-共通属性)
| # | 属性名 | 内容 |
| - | -------------- | --------------------------------------------------------- |
| 1 | `meshcode` | メッシュコード。入力 GML ファイル名を `_` 区切りで分割した場合の最初の要素 |
| 2 | `city_code` | 市区町村コード(5 桁数字) |
| 3 | `city_name` | 市区町村名(標準のコードリスト `Common_localPublicAuthorities.xml` に基づく) |
| 4 | `feature_type` | CityGML i-UR で定義されているフィーチャータイプ(地物型)名 |
| 5 | `gml_id` | 各フィーチャーの `gml:id` 属性 |
| 6 | `attributes` | 全ての主題属性を元の XML の階層構造に準じて格納した JSON 文書 |
### 2.2. 地物型別のフラットにする属性
[Section titled “2.2. 地物型別のフラットにする属性”](#22-地物型別のフラットにする属性)
上記共通属性のほか、標準製品仕様書 3.2 版付属 `template_objectlist.xlsx` `[A.3.1_取得項目一覧]` シートにおいて「拡張製品仕様書の対象とすべき主題属性」として「●:データ作成上必須」または「○:原則として入力」と指定されている主題属性を抽出し、該当するフィーチャーにそれぞれ単独の属性として付加します。
詳細は「PLATEAU2023 データ変換仕様【別添】地物型別のフラットにする属性.xlsx」を参照してください。
### 2.3. DM フィーチャーの属性
[Section titled “2.3. DM フィーチャーの属性”](#23-dm-フィーチャーの属性)
DM フィーチャーには、上記の共通属性および地物型別の固有の属性に加え、さらに表 3、表 4 に掲げる属性を追加します。
#### 表 3 `uro:DmGeometricAttribute` フィーチャーに追加する属性
[Section titled “表 3 uro:DmGeometricAttribute フィーチャーに追加する属性”](#表-3-urodmgeometricattribute-フィーチャーに追加する属性)
| # | 属性名 | 内容 |
| - | ---------------------- | --------------------------------- |
| 1 | `dm_attributes` | 全属性を XML の階層構造に準じた構造で格納した JSON 文書 |
| 2 | `dm_dmCode` | DM コードの意味文字列 |
| 3 | `dm_dmCode_code` | DM コード |
| 4 | `dm_geometryType` | レコードタイプ |
| 5 | `dm_geometryType_code` | レコードタイプコード |
| 6 | `dm_mapLevel` | 地図情報レベル |
| 7 | `dm_mapLevel_code` | 地図情報レベルコード |
| 8 | `dm_shapeType` | 図形区分 |
| 9 | `dm_shapeType_code` | 図形区分コード |
#### 表 4 `uro:DmAnnotation` フィーチャーに追加する属性
[Section titled “表 4 uro:DmAnnotation フィーチャーに追加する属性”](#表-4-urodmannotation-フィーチャーに追加する属性)
| # | 属性名 | 内容 |
| -- | ---------------------- | --------------------------------- |
| 1 | `dm_attributes` | 全属性を XML の階層構造に準じた構造で格納した JSON 文書 |
| 2 | `dm_dmCode` | DM コードの意味文字列 |
| 3 | `dm_dmCode_code` | DM コード |
| 4 | `dm_geometryType` | レコードタイプ |
| 5 | `dm_geometryType_code` | レコードタイプコード |
| 6 | `dm_shapeType` | 図形区分 |
| 7 | `dm_shapeType_code` | 図形区分コード |
| 8 | `dm_label` | 注記文字列 |
| 9 | `dm_isVertical` | 文字方向 |
| 10 | `dm_size` | 字大 |
| 11 | `dm_orientation` | 角度 |
| 12 | `dm_linewidth` | 線号 |
| 13 | `dm_spacing` | 字隔 |
## 3. 変換に使用するソフトウェア等
[Section titled “3. 変換に使用するソフトウェア等”](#3-変換に使用するソフトウェア等)
可視化用のデータ変換は、FME(カナダ Safe Software Inc. 製 2022.2.6 以降のバージョン)によって表に掲げるワークスペースを実行することにより行います。
### 表 5 可視化用データ変換ワークスペース一覧
[Section titled “表 5 可視化用データ変換ワークスペース一覧”](#表-5-可視化用データ変換ワークスペース一覧)
| # | ワークスペース名 | 備考 |
| --- | ----------------------------------------- | --- |
| 1-1 | PLATEAU3 可視化用データ変換 01 建築物.fmw | |
| 1-2 | PLATEAU3 可視化用データ変換 01-2 政令市の建築物.fmw | 注 1 |
| 2 | PLATEAU3 可視化用データ変換 02 道路・鉄道・徒歩道・広場・航路.fmw | |
| 3 | PLATEAU3 可視化用データ変換 03 都市設備・植生.fmw | |
| 4 | PLATEAU3 可視化用データ変換 04 土地利用・土砂災害警戒区域.fmw | |
| 5 | PLATEAU3 可視化用データ変換 05 浸水想定区域.fmw | |
| 6 | PLATEAU3 可視化用データ変換 06 都市計画決定情報・区域.fmw | |
| 7 | PLATEAU3 可視化用データ変換 07 橋梁・トンネル・その他の構造物.fmw | |
| 8 | PLATEAU3 可視化用データ変換 08 地下街.fmw | |
| 9 | PLATEAU3 可視化用データ変換 09 地下埋設物.fmw | |
| 10 | PLATEAU3 可視化用データ変換 10 水部.fmw | |
| 11 | PLATEAU3 可視化用データ変換 11 汎用都市オブジェクト.fmw | |
注 1: 政令市の建築物モデルの変換にあたっては、#1-2 ワークスペースを実行することにより区ごとに #1-1 を実行して区単位の 3D Tiles を作成することができます。
これらのワークスペース(テンプレート)は FME Hub()で公開しており、ウェブブラウザによって同サイトからダウンロードできるほか、FME Workbench メニューの **File → Workspace from Template** によって直接ダウンロードすることも可能です。
なお、3D Tiles データセットへの変換を行うワークスペースを実行するには「日本のジオイド 2011」ジオイドモデルに基づく楕円体高への変換を行うため、FME Hub で公開されている [Vertical Transformation with GSIGEO2011](https://hub.safe.com/publishers/pacific-spatial-solutions/templates/vertical-transformation-with-gsigeo2011) テンプレートに同梱されているグリッドファイルが必要です。