2.4.2.2 コード型以外の地物属性又は地物関連を追加する場合

コード型以外の地物属性を追加したい場合、また、地物関連を追加したい場合は、汎用属性(gen:_GenericAttribute)の下位型を使用し、以下の手順により拡張する。

  • 【手順】

  • 手順1.A.3.6の様式「汎用属性」に従い、地物ごとに追加する地物属性及び地物関連のリストを作成する。

    • 地物型には、地物属性及び地物関連を追加する地物型の名称を記述する。

      ただし、汎用都市オブジェクト(gen:GenericCityObject)に地物属性及び地物関連を追加する場合は、追加の対象を明確にするため、gen:GenericCityObjectのgml:nameの値を注釈として記述する。

    • 地物属性の型は汎用属性の下位型である以下のいずれかから選択する。

      • gen:stringAttribute(文字列型)

      • gen:intAttribute(整数型)

      • gen:doubleAttribute(実数型)

      • gen:dateAttribute(日付型)

      • gen:uriAttribute(URI型)

      • gen:measureAttribute(単位付き計測値型)
        gen:measureAttributeを使用する場合は、uom属性により、その単位を指定しなければならない。長さの単位は「メートル」(uom=”m”)、大きさの単位は「平方メートル」(uom=”m2”)又は「ヘクタール」(uom=”ha”)、時間の単位は「時間」(uom=”hour”)を基本とする。

      • gen:genericAttributeSet(汎用属性セット型)
        gen:genericAttributeSetは、複数の汎用属性の集まりである。
        gen:genericAttributeSetは、gen:stringAttributeやgen:intAttributeなどの汎用属性を複数個組み合わせてひとまとめにできる。

    • 地物関連の型は汎用属性の下位型である以下を選択する。

      • gen:uriAttribute(URI型)

    • 「名称」には、追加したい地物属性又は関連役割の名称を記述する。このとき、同じ地物型に、同じ地物属性や関連役割の名称を与えてはならない。

    • 「定義」には、追加する地物属性又は地物関連の説明を記述する。

    • 取りうる値が限定される場合には「定義域」に記述する。

    • その他特筆事項がある場合には「注釈」に記述する。

      2-12に、汎用属性を用いて属性を追加する場合の例を示す。

      2-12 — 汎用属性の追加例

      地物型

      gen::GenericCityObject

      注釈

      gml:name=20の場合に適用

      汎用属性

      属性の型

      名称

      定義

      多重度

      定義域

      単位

      注釈

      gen::stringAttribute

      通学区域名称

      通学区域に指定された就学校の名前

      1

      全角20文字以内

    • 汎用都市オブジェクト(gen:GenericCityObject)は、拡張属性(2.4.2.1参照)を使用することができない。そのため、汎用都市オブジェクトにコード型の属性を追加する場合は、コードと参照するコードリストの対をgen:genericAttributeSetとして追加することを推奨する。

      • コードを格納する汎用属性の名称は、codeとする。

      • コードリストのファイル名称を格納する汎用属性の名称は、codeSpaceとする。

      • いずれも属性の型は文字列型(gen:stringAttribute)とする。

      • コードリストの名称は、[地物型名称]_generic-[オプション]とする。[地物型名称]は、応用スキーマクラス図に示される地物型の名称(接頭辞は除く)とする。[オプション]は任意の半角英数字とするが、同じ地物型の中では重複してはならない。

      • なお、gen:GenericCityObjectにコード型の属性を追加する場合、コードリストの名称は
        GenericCityObject_generic-[オプション]
        となる。gen:GenericCityObjectを用いて複数種類の地物を追加する場合は、どの地物に対するコードリストであるかが分かりづらくなるため、 [オプション]は追加する
        [地物の名称]-[属性の名称]
        とする。

        • 地物の名称は、gml:nameにおいて指定されるコードとする。

        • 属性の名称は、半角英数字で構成される任意の文字列とする。ただし、gml:nameが同じとなる地物に定義する属性の中では一意でなければならない。

        • 例えば、gen:GenericCityObjectを使用して「通学区域」(gml:name=”20”)を追加し、かつ、汎用属性セットを使って「通学区域」の種類をコード型の属性として追加する場合、コードリストの名称は、GenericCityObject_generic-20-typeとなる。

      • コードリストの名称は、gen:stringAttributeとして追加したcodeSpaceの定義域に記載する。

      • コード型を追加する場合の汎用属性セットの使用例を2-13に示す。

        2-13 — 汎用属性セットの使用例

        名称

        施設一覧

        注釈

        汎用都市オブジェクトのうち、name=20の場合に適用する。

        汎用属性セット

        市内に存在する公共施設の名称を一覧から選択し記述するための汎用属性セット。
        コード型の代替として使用することを目的とし、codeSpaceに公共施設名称のコードリストへの相対パスを記述し、codeに当該コードリストに定義された値を記述する。

        汎用属性セットに含まれる汎用属性

        属性の型

        名称

        定義

        多重度

        定義域

        単位

        注釈

        gen::stringAttribute

        codeSpace

        公共施設名称一覧への参照。

        1

        相対パスにより記述する。

        gen::stringAttribute

        code

        公共施設を示すコード。

        1

        公共施設名称一覧に定義されたコード。

    • gen:genericAttributeSetには、gen:genericAttributeSetを含めてはならない。

      • CityGMLでは、gen:genericAttributeSetがgen:genericAttributeSetをもつこと(ネスト構造)が可能である。ただし、データ構造の階層が深くなるため、3D都市モデルではネスト構造を使用しない。