tpc03-2

TOPIC 3|3D都市モデルデータの基本[2/4]|CityGMLのデータ構造

CityGMLはXML形式のデータであるため、テキストエディタで開いて内容を確認できます。建物によってどのような属性が付いているのか、CityGMLのデータ構造と属性情報を確認する方法を説明します。

Share

【目次】

3.3  CityGMLデータの詳細

 3.3.1  地物が含まれているファイルの特定

 3.3.2  CityGML形式データの構造

 3.3.3  地物データを探る

3.3 _ CityGMLデータの詳細

ここから少し具体的に、CityGMLのデータ構造について見ていきます。

この節では、比較的多いデータが収録されている札幌市を題材とします。建物によって、どのような属性が付いているのかが違うので、ここでは「札幌大通郵便局」を例とします。

3.3.1 _ 地物が含まれているファイルの特定

まずは、札幌大通郵便局が含まれているファイルを特定します。すでに説明したように、ファイル名の命名規則は、次のとおりです。

メッシュコード_地物接頭辞_CRS_オプション_op

メッシュコード

メッシュコードを調べます。先に説明した「地図で見る統計(jSTAT MAP)」などで調べると、「64414278」です(図 3-12)。

図3-12 札幌大通郵便局を確認したところ

地物接頭辞

札幌大通郵便局は建築物なので、地物接頭辞は「bldg」です(表 3-2を参照)。

展開したCityGMLファイル群のフォルダを確認すると、udx/bldgというフォルダがあり、そこには、「64414278_bldg_6697_op.gml」というファイルがあります。これが、札幌大通郵便局が含まれているCityGMLファイルです(図 3-13)。

以下、このファイルを例にして、CityGMLのファイル構造の概要を説明します。

図 3-13 札幌大通郵便局が含まれているCityGMLファイル

3.3.2 _ CityGML形式データの構造

CityGML形式は、XML形式のデータです。テキストエディタなどで開いて、その内容を確認できます。

CityGML形式ファイルはサイズが大きいものの、その全体構造は意外とシンプルで、おおむね、次の構成をとっています(リスト 3-1)。

【メモ】

CityGMLは、CityGML 1.0、CityGML 2.0、CityGML 3.0の3種類あります。3D都市モデルは、CityGML 2.0に準拠しています(2022年10月時点)。CityGMLの仕様について、さらに詳しくは、OGCのページを参照してください(https://www.ogc.org/standards/citygml)。

【メモ】

提示するリストは、わかりやすくするため、適宜改行を入れているほか、属性や要素の登場順序を若干変えています。

【メモ】

CityGMLのファイルはサイズが大きいので、XMLの編集機能が充実したものを使うとよいでしょう。例えばVisual Studio Code(https://azure.microsoft.com/ja-jp/products/visual-studio-code/)には、XMLの要素や属性を色づけして見やすく表示したり、XMLの要素を折りたたんで編集できたりする機能があります。

<?xml version="1.0" encoding="UTF-8"?>
<!-- ①XML名前空間の定義 -->
<core:CityModel
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:core="http://www.opengis.net/citygml/2.0"
    xmlns:bldg="http://www.opengis.net/citygml/building/2.0"
    xmlns:app="http://www.opengis.net/citygml/appearance/2.0"
    xmlns:uro="http://www.kantei.go.jp/jp/singi/tiiki/toshisaisei/itoshisaisei/iur/uro/1.4"
    …略…
>
<!-- ②座標系と範囲の情報 -->
    <gml:boundedBy>
        <gml:Envelope srsName="http://www.opengis.net/def/crs/EPSG/0/6697" srsDimension="3">
          <gml:lowerCorner>43.055019234646984 141.34946871285302 9.522777652574995</gml:lowerCorner>
          <gml:upperCorner>43.06696208463957 141.36368789297552 166.0998221</gml:upperCorner>
        </gml:Envelope>
    </gml:boundedBy>
    <!-- ③テクスチャ(アピアランス)に関する情報 -->
    <app:appearanceMember>
        テクスチャの参照に関する情報
    </app:appearanceMember>
 
    <!-- ④地物の情報 -->
    <core:cityObjectMember>
        1つの地物の情報
    </core:cityObjectMember>
    <core:cityObjectMember>
        1つの地物の情報
    </core:cityObjectMember>
    …地物の数だけ続く…
</core:CityModel>

リスト 3-1 CityGMLの構造概要

① XML名前空間の定義

CityGMLは、CityModel要素で始まります。CityGMLは、建築物や土地利用、交通といった単位でモジュール化された仕様を必要に応じて取り込んで利用できる拡張可能なフォーマットです。

こうしたモジュールのうち、利用するものをXML名前空間として定義するため、例えば次のように記述します(順不同)。

【メモ】

XML名前空間とは、要素名や属性の所属を、名前を付けて区別する概念で、異なる定義で同名が使われても名前が衝突するのを防ぎます。

<core:CityModel
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:bldg="http://www.opengis.net/citygml/building/2.0"
    xmlns:app="http://www.opengis.net/citygml/appearance/2.0"
    xmlns:core="http://www.opengis.net/citygml/2.0"
    xmlns:uro="http://www.kantei.go.jp/jp/singi/tiiki/toshisaisei/itoshisaisei/iur/uro/1.4"
    …略…
>

さまざまなモジュールがありますが、ここで略さずに示している、建築物に関連する主要な5つのモジュールの役割は、次のとおりです(図 3-14)。

図 3-14 CityGMLの構造概要
・gml

オブジェクトの位置や形状などを示すGML仕様。
https://www.ogc.org/standards/gml

・core

CityGMLの共通の地物を定義する。

・bldg

建築物モデルを定義する。

・app

テクスチャなどの見栄えを定めるアピアランスモデルを定義する。

・uro

i-都市再生技術仕様(案)
https://www.chisou.go.jp/tiiki/toshisaisei/itoshisaisei/iur/
に基づく、建築物の属性情報を定義する。

3D都市モデルを定める仕様書である「3D都市モデル標準製品仕様書」には、その構造や内容を示す応用スキーマが掲載されています。

3D都市モデル応用スキーマは、下記モデル3-1のように、CityGMLおよびi-URを引用します。CityGMLには、さらにサブパッケージが存在し、そのなかで、それぞれのクラスが定義され、coreやbldg、appなどの接頭辞が付けられています。i-URも同様に、いくつかのサブパッケージがあり、そのうちのひとつがuroです。

CityGMLもi-URも、どちらもGMLを引用しており、GMLで定義されているクラスには、gmlという接頭辞が付けられています。

【メモ】

「3D都市モデル標準製品仕様書」の最新版は「第3.3版」です(2023年12月時点)。G空間情報センターからダウンロードできるオープンデータは、「第1.0版」(https://www.mlit.go.jp/plateau/file/libraries/doc/plateau_doc_0001_ver01.pdf)に基づいています。本ドキュメントでは、第2.3版をベースに解説します。基本的な構造は同じですが、第2.0版以降では、第1.0版では定義されていない植生や都市設備に関するスキーマが増えていたり、LOD3に関する定義が追加されていたりするなど、若干の違いがあります。

モデル3-1 3D都市モデルの応用スキーマ
(3D都市モデル標準製品仕様書 第2.3版の「4.2.1 3D都市モデル応用スキーマパッケージ図」より引用)

② 座標系と範囲の情報

<gml:Envelope>では、このデータが、どのような座標系を使っており、どの緯度・経度、高さの範囲を示すのかが定義されています。

座標系を示すのがgml:EnvelopeのsrsName属性で、ここでは6697が指定されています。srsDimensionは次元数です。ここでは3が設定されており、3次元のデータであることを示しています。

gml:lowerCornerは緯度・経度・標高の最小値、gml:upperCornerには同最大値が、それぞれ設定されています。最小値及び最大値は、このファイルに含まれているすべての地物の幾何形状に記述された座標値の中から最小値と最大値が指定されます。

<gml:boundedBy>
    <gml:Envelope srsName="http://www.opengis.net/def/crs/EPSG/0/6697" srsDimension="3">
      <gml:lowerCorner>43.055019234646984 141.34946871285302 9.522777652574995</gml:lowerCorner>
      <gml:upperCorner>43.06696208463957 141.36368789297552 166.0998221</gml:upperCorner>
    </gml:Envelope>
</gml:boundedBy>

③ テクスチャ(アピアランス)に関する情報

<app:appearanceMember>では、建築物などに貼り付けるテクスチャファイルへの参照を定義します。詳細は、「3.4.3 LOD2」で説明します。

④地物の情報

地物は、次のパッケージで構成します。

・建築物
・道路
・地形
・土地利用
・都市計画決定
・災害リスク
・都市設備
・植生

【メモ】

第1.0版では、「植生」と「都市設備」の定義はありません。

地物の情報は、<core:cityObjectMember>で示します。1つの地物を、1つの<core:cityObjectMember>で表現します。つまり、地物の数だけ、<core:cityObjectMember>が連なります。この配下に、<bldg:Building>(建築物)などの地物の情報が入っています。

Coreパッケージには、CityGMLの最上位概念であるcore::_CityObjectと、データ集合であるcore::CityModelが定義されています。

モデル3-2中のgml::_Featureは、GMLで定義されている、地物を表す最上位の概念です。すべての地物は直接または間接的にgml::_Featureを継承して定義されます。gml::_Featureを継承するcore::_CityObjectは、CityGMLで定義される地物の最上位の概念です。CityGMLで定義されるbldg::Buldingなどのすべての地物は、このcore::_CityObjectを継承します。そしてcore::CityModelとcore::_CityObjectとが線で結びつけられており、cityObjectMemberと名づけられています。そのため、 CityGMLで定義されるすべての地物はcityObjectMemberとして、core::_CityObjectの代わりに記述できます。

モデル3-2 地物の構成
(3D都市モデル標準製品仕様書 第2.3版の「4.2.2 Core(CityGML)」より引用)
コラム:応用スキーマクラス図の見方

応用スキーマクラス図は、データの構造やデータとデータとの関係を示す図です(詳細は、3D都市モデル標準製品仕様書(https://www.mlit.go.jp/plateaudocument/)の「表4-19 応用スキーマクラス図」を参照)。

クラス

クラスは3段の箱で構成されます。3段目の箱は、3D都市モデルでは使用しません。2段目と3段目の箱は省略表記することもあります。

1段目の箱

クラスの識別子を、クラスの接頭辞と名称で記述します。

クラスの識別子の上部には、ステレオタイプと呼ばれるクラスの種類を記述します。

地物を示すクラスには、FeatureTypeが付与されます。地物以外のクラスには、TypeやDataTypeが付与されます。TypeやDataTypeは地物の部品です。例えば、面(MultiSurface)や立体(Solid)などの図形を表すクラスには、Typeが付与されます。そして、地物の主題属性の集まりを表すクラスには、DataTypeが付与されます。

・2段目の箱

クラスが持つ属性を記述します。

属性には、属性の名称、属性の型(値の種類)、多重度(属性が出現する回数)を記述します。

クラスの関係

クラスとクラスとの関係は、線で結んで示します。線の種類によって、意味する関係が異なります。3D都市モデルでは、次の4種類の関係の書き方を採用しています。

① 継承

上位クラスの特性を下位のクラスが受け継ぐ(継承する)、つまり上位クラスに定義された属性や関連役割を、下位クラスも持つことを意味します。上位クラス側に、白抜きの矢(「△」)を付けて示します。

例えばCityGMLでは、core::_CityObjectを継承したbldg::Buildingやtran::Roadなどのさまざまな都市オブジェクトが定義されています。このときbldg::Buildingやtran::Roadは、core::_CityObjectに定義されたcreationDate(作成日)などの属性を持てます。

② 関連

クラスからクラスへの参照関係を示します。開かれた矢(「↓」)で示します。関連には向きがあり、上図では、矢印の元となるクラス1が矢印の先となるクラス2を参照できることを示します。

関連を示す矢印には、「関連役割名」と「多重度」を記します。

関連役割とは、相手にとっての自身の役割(クラス1に対するクラス2の役割)です。多重度は、相手にとって存在し得る自身の数(クラス1のデータが1つあるとき、クラス2のデータはいくつ存在するか)を意味します。

例えばCityGMLでは、bldg::_AbstractBuildingなどの都市オブジェクトからgml::_Solidなどの幾何オブジェクトへと関連が定義されています。この関連は、gml::_Solidは、lod1Solid(LOD1における立体)やlod2Solid(LOD2における立体)という意味を示します。

③ 集成

関連に「全体」と「部品」という意味を与えたものです。全体となるクラス側に白抜きの菱形(「◇」)を付けて示します。関連と同様に向きを持ち、矢印の根元となる全体クラス(「◇」が付いているほう)が、矢印の先となる部品クラスを参照できます。関連と同様に、関連役割名や多重度も記述します。

例えばCityGMLでは、bldg::_AbstractBuildingからbldg::_BoundarySurfaceへの集成が定義されています。部品となるbldg::_BoundarySurfaceが集まって、全体となるbldg::_AbstractBuildingができあがるという意味です。

④ 合成

合成は、より強い「全体」と「部品」の意味です。全体となるクラスがなくなると、部品となるクラスもなくなることを意味します。全体となるクラス側には、黒く塗られた菱形(「◆」)を付けて示します。

例えばCityGMLでは、core::_CityObjectと汎用属性であるgen::_genericAttributeとの間に合成が定義されています。もし都市オブジェクトがなくなれば、その属性であるgen::_genericAttributeもなくなることを意味しています。

3.3.3 _ 地物データを探る

地物データは、<core:cityObjectMember>で示されますが、その要素の内容は、地物の種類によって異なります。

建築物であれば「<bldg:Building>」という要素があり、そこには建物名や住所などがあります。それに対して、都市計画決定情報の一種である用途地域の場合は「<urf:DistrictsAndZones>」という要素があり、そこには用途地域を示すデータだけで、名前や住所などの情報はありません。

それぞれの地物ごとに、どのような属性を持つのかは、3D都市モデル標準製品仕様書の「4.2 応用スキーマクラス図(https://www.mlit.go.jp/plateaudocument/#toc4_02)」や「4.3 応用スキーマ文書(https://www.mlit.go.jp/plateaudocument/#toc4_03)」に記述されています。

以下では、建築物(bldg)の例として、「札幌大通郵便局」に関する部分を見ていきましょう。

■PLATEAU VIEWで属性情報を確認する

調査にあたっては、事前に、PLATEAU VIEW(https://plateauview.mlit.go.jp/)で、「札幌大通郵便局」が持つ属性情報を確認しておくとよいでしょう(図 3-15)(具体的な方法については、【PLATEAU VIEWで体験する】を参照してください)。

図 3-15 札幌大通郵便局の情報をPLATEAU VIEWで確認したところ

■CityGML上の属性情報を確認する

CityGMLファイルをテキストエディタなどで開いて「札幌大通郵便局」を文字列検索すると、次の<core:cityObjectMember>が見つかります(リスト 3-2)。これが、この地物に該当するデータです。PLATEAU VIEWで確認した属性は、すべてのこの要素のなかに含まれています。

<core:cityObjectMember>
  <!-- ①地物のID -->
  <bldg:Building gml:id="BLD_66f7a0ab-4a8a-4e53-a8ee-dc59ec0b5cb3">
 
    <!-- ②名前 -->
    <gml:name>札幌大通郵便局</gml:name>
    <!-- ③汎用属性 -->
    <gen:stringAttribute name="建物ID">
        <gen:value>01100-bldg-344507</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="kisokey">
        <gen:value>0101000020100101</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="AreaSerachKey">
        <gen:value>010100002</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="KeyCode">
        <gen:value>478847</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="様式Aキー">
        <gen:value>0101000020100101</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="現況図2500">
        <gen:value>09-09</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="編集年度">
        <gen:value>2019</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="分割年度">
        <gen:value>2019</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="大ゾーン番号">
        <gen:value>01</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="中ゾーン番号">
        <gen:value>01</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="小ゾーン番号">
        <gen:value>00002</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="敷地番号">
        <gen:value>01001</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="棟番号">
        <gen:value>01</gen:value>
    </gen:stringAttribute>
    <gen:measureAttribute name="駐車場面積">
        <gen:value uom="m2">331</gen:value>
    </gen:measureAttribute>
    <gen:measureAttribute name="建ぺい率">
        <gen:value uom="percent">80</gen:value>
    </gen:measureAttribute>
    <gen:measureAttribute name="容積率">
        <gen:value uom="percent">800</gen:value>
    </gen:measureAttribute>
    <gen:stringAttribute name="建物用途名_基礎">
        <gen:value>通信施設</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="建物用途名_動態図">
        <gen:value>J_官公庁施設</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="建物用途_大分類">
        <gen:value>00_母屋</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="建物用途_中分類">
        <gen:value>d_工業</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="建物用途_小分類">
        <gen:value>i_都市運営施設</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="建物用途_細分類">
        <gen:value>83_通信施設</gen:value>
    </gen:stringAttribute>
    <gen:stringAttribute name="建物構造">
        <gen:value>耐火構造</gen:value>
    </gen:stringAttribute>
    <gen:genericAttributeSet name="石狩川水系豊平川洪水浸水想定区域(計画規模)">
        <gen:stringAttribute name="規模">
            <gen:value>L1</gen:value>
        </gen:stringAttribute>
        <gen:stringAttribute name="浸水ランク">
            <gen:value>1</gen:value>
        </gen:stringAttribute>
        <gen:measureAttribute name="浸水深">
            <gen:value uom="m">0.470</gen:value>
        </gen:measureAttribute>
    </gen:genericAttributeSet>
    <gen:genericAttributeSet name="石狩川水系豊平川洪水浸水想定区域(想定最大規模)">
        <gen:stringAttribute name="規模">
            <gen:value>L2</gen:value>
        </gen:stringAttribute>
        <gen:stringAttribute name="浸水ランク">
            <gen:value>2</gen:value>
        </gen:stringAttribute>
        <gen:measureAttribute name="浸水深">
            <gen:value uom="m">0.547</gen:value>
        </gen:measureAttribute>
        <gen:measureAttribute name="継続時間">
            <gen:value uom="hour">0.000</gen:value>
        </gen:measureAttribute>
    </gen:genericAttributeSet>
    <bldg:class codeSpace="../../codelists/Building_class.xml">3002</bldg:class>
    <bldg:usage codeSpace="../../codelists/Building_usage.xml">454</bldg:usage>
    <bldg:yearOfConstruction>1966</bldg:yearOfConstruction>
 
    <!-- ④建物の情報 --> 
    <!-- (1)形状など -->
    <bldg:measuredHeight uom="m">29.4</bldg:measuredHeight>
    <bldg:storeysAboveGround>6</bldg:storeysAboveGround>
    <bldg:storeysBelowGround>1</bldg:storeysBelowGround>
    <bldg:lod0RoofEdge>
       …LOD0の幾何形状…
    </bldg:lod0RoofEdge>
    <bldg:lod1Solid>
        …LOD1の幾何形状…
    </bldg:lod1Solid>
    <bldg:lod2Solid>
        …LOD2を構成する面の幾何形状…
    </bldg:lod2Solid>
    <bldg:boundedBy>
      <bldg:WallSurface gml:id="…">
        <bldg:lod2MultiSurface>
          …LOD2の壁の幾何形状…
        </bldg:lod2MultiSurface>
      </bldg:WallSurface>
    </bldg:boundedBy>
    …略…
    <bldg:boundedBy>
      <bldg:RoofSurface gml:id="…">
        <bldg:lod2MultiSurface>
          …LOD2の屋根の幾何形状…
        </bldg:lod2MultiSurface>
      </bldg:RoofSurface>
    </bldg:boundedBy>
    …略…
    <bldg:boundedBy>
      <bldg:OuterCeilingSurface gml:id="…">
        <bldg:lod2MultiSurface>
          …LOD2の外部天井面の幾何形状…
        </bldg:lod2MultiSurface>
      </bldg:OuterCeilingSurface>
    </bldg:boundedBy>
    …略…
    <bldg:boundedBy>
      <bldg:GroundSurface gml:id="…">
        <bldg:lod2MultiSurface>
          …LOD2の接地面(床)の幾何形状…
        </bldg:lod2MultiSurface>
      </bldg:GroundSurface>
    </bldg:boundedBy>
 
    <!-- ⑤i-UR(i-都市再生技術仕様(案))の情報 -->
    <uro:buildingDetails>
        <uro:BuildingDetails>
            <uro:siteArea uom="m2">2316.00</uro:siteArea>
            <uro:buildingFootprintArea uom="m2">1993.00</uro:buildingFootprintArea>
            <uro:totalFloorArea uom="m2">11707.00</uro:totalFloorArea>
            <uro:buildingStructureType codeSpace="../../codelists/Building_buildingStructureType.xml">613</uro:buildingStructureType>
            <uro:districtsAndZonesType codeSpace="../../codelists/Common_districtsAndZonesType.xml">10</uro:districtsAndZonesType>
            <uro:prefecture codeSpace="../../codelists/Common_prefecture.xml">01</uro:prefecture>
            <uro:city codeSpace="../../codelists/Common_localPublicAuthorities.xml">01100</uro:city>
            <uro:surveyYear>2019</uro:surveyYear>
        </uro:BuildingDetails>
    </uro:buildingDetails>
 
    …略…
  </bldg:Building>
</core:cityObjectMember>

リスト 3-2 札幌大通郵便局を示す <core:cityObjectMember>

建築物を定義するBuildingパッケージの応用スキーマを、下記に示します。

【メモ】

第1.0版では、lod3Solidなど、LOD3に関する定義がありません。

モデル3-3 Buldingパッケージの応用スキーマ
(3D都市モデル標準製品仕様書 第2.3版の「4.2.4 Building(CityGML)」より引用)

① 地物のID

建築物は<bldg:Building>で定義されます。すべての地物には、データセット内でオブジェクトを識別するためのgml:id属性が付けられます。3D都市モデルでは、UUIDに地物の接頭辞を追加したものが使われます。

【メモ】

ここでは<bldg:Building>を例にしましたが、ほかの地物、例えば<urf:DistrictsAndZones>などにも、同様にgml:idが設定されています。

<bldg:Building gml:id="BLD_66f7a0ab-4a8a-4e53-a8ee-dc59ec0b5cb3">

注意したいのは、このgml:idは、あくまでも「この」データセット内で識別するだけの名前であり、将来にわたって、同じものに同じ値が設定されるとは保証されていないという点です。

実際、年度が替わると、新しい更新版の3D都市モデルが登場することがありますが、同じ地物でも、旧版のgml:idと新版のgml:idが、まったく違うものになる点に、注意してください。

② 名前

gml:nameは、建物などの名称です。

<gml:name>札幌大通郵便局</gml:name>

③ 汎用属性

gen名前空間の属性は、汎用都市オブジェクトです。「gen:stringAttribute」でさまざまな汎用の属性値が定義されています。例えば次のような、建物を一意に示す「建物ID」があります。

<gen:stringAttribute name="建物ID">
  <gen:value>01100-bldg-344507</gen:value>
</gen:stringAttribute>

汎用属性には、PLATEAUの標準仕様として定義するものと、都市ごとに定義されているものがあります。後者は都市ごとの仕様書で定義されており、札幌市の場合は、CityGMLファイルに同梱されている「北海道札幌市における3D都市モデル拡張製品仕様書(specificationフォルダの01100_2020_specification_op.xlsxおよび同pdf)」で定義されています。

【メモ】

建物IDは、「市区町村コード-bldg-連番」と定義されています。

④ 建物の情報

bldg名前空間の要素には、建物の高さや幾何形状、住所に関する情報が含まれています。
形状は、LOD0、LOD1、LOD2ごとに、別の要素(<bldg:lod0RoofEdge>、<bldg:lod1Solid>、<bldg:lod2Solid>など)で示されています。幾何形状の情報については、次節で改めて説明します。

⑤ i-UR(i-都市再生技術仕様(案))の情報

uro名前空間の要素には、都市計画基礎調査において収集された建築物に関する基礎的な情報などが含まれています。

CityGML上のデータと、それをPLATEAU VIEWで表示している結果(図 3-15)とを比較するとわかりますが、CityGMLには、値そのものではなく、コードリストと前掲のコードが記述されている場合があります。例えば、次のとおりです。

<uro:buildingStructureType codeSpace="../../codelists/Building_buildingStructureType.xml">613</uro:buildingStructureType>

これは、コードリスト(Building_buildingStructureType.xml)のコード(gml:name)の値が「613」であることを意味します。このコードリストは、建物の構造種別を表すものとして3D都市モデルのデータセットに同梱されるcodelistsフォルダに存在するXML形式のファイルであり、「613」というコードに対応する説明書き(gml:description)は「耐火」です。

<?xml version="1.0" encoding="UTF-8"?>
<gml:Dictionary
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:gml="http://www.opengis.net/gml"
  xsi:schemaLocation="http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/SimpleDictionary/1.0.0/gmlSimpleDictionaryProfile.xsd"
  gml:id="Building_buildingStructureType">
    <gml:name>Building_buildingStructureType</gml:name>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id1">
            <gml:description>木造・土蔵造</gml:description>
            <gml:name>601</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id2">
            <gml:description>鉄骨鉄筋コンクリート造</gml:description>
            <gml:name>602</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id3">
            <gml:description>鉄筋コンクリート造</gml:description>
            <gml:name>603</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id4">
            <gml:description>鉄骨造</gml:description>
            <gml:name>604</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id5">
            <gml:description>軽量鉄骨造</gml:description>
            <gml:name>605</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id6">
            <gml:description>レンガ造・コンクリートブロック造・石造</gml:description>
            <gml:name>606</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id8">
            <gml:description>非木造</gml:description>
            <gml:name>610</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id7">
            <gml:description>不明</gml:description>
            <gml:name>611</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <!-- 札幌市用の追加拡張コード-->
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id9">
            <gml:description>簡易耐火</gml:description>
            <gml:name>612</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
    <gml:dictionaryEntry>
        <gml:Definition gml:id="id10">
            <gml:description>耐火</gml:description>
            <gml:name>613</gml:name>
        </gml:Definition>
    </gml:dictionaryEntry>
</gml:Dictionary>

【文】

大澤文孝

【監修】

石丸伸裕(OGC CityGML仕様策定WG副議長)
黒川史子(アジア航測株式会社)
小林巌生(インフォ・ラウンジ株式会社)
於保俊(株式会社ホロラボ)