4

is it possible to load the geometry of LoD2 files in CityGML format (gml:LinearRing from bldg:GroundSurface) as GML layer in QGIS?

Here is an example content of a citygml file:

<?xml version="1.0" encoding="windows-1252" standalone="yes"?>
<core:CityModel xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"
  xmlns:gml="http://www.opengis.net/gml" xmlns:app="http://www.opengis.net/citygml/appearance/1.0"
  xmlns:core="http://www.opengis.net/citygml/1.0"
  xmlns:tex="http://www.opengis.net/citygml/texturedsurface/1.0"
  xmlns:dem="http://www.opengis.net/citygml/relief/1.0"
  xmlns:veg="http://www.opengis.net/citygml/vegetation/1.0"
  xmlns:wtr="http://www.opengis.net/citygml/waterbody/1.0"
  xmlns:tran="http://www.opengis.net/citygml/transportation/1.0"
  xmlns:bldg="http://www.opengis.net/citygml/building/1.0"
  xmlns:frn="http://www.opengis.net/citygml/cityfurniture/1.0"
  xmlns:grp="http://www.opengis.net/citygml/cityobjectgroup/1.0"
  xmlns:gen="http://www.opengis.net/citygml/generics/1.0" xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:luse="http://www.opengis.net/citygml/landuse/1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/citygml/building/1.0 http://schemas.opengis.net/citygml/building/1.0/building.xsd http://www.opengis.net/citygml/cityfurniture/1.0 http://schemas.opengis.net/citygml/cityfurniture/1.0/cityFurniture.xsd http://www.opengis.net/citygml/appearance/1.0 http://schemas.opengis.net/citygml/appearance/1.0/appearance.xsd http://www.opengis.net/citygml/cityobjectgroup/1.0 http://schemas.opengis.net/citygml/cityobjectgroup/1.0/cityObjectGroup.xsd http://www.opengis.net/citygml/generics/1.0 http://schemas.opengis.net/citygml/generics/1.0/generics.xsd http://www.opengis.net/citygml/texturedsurface/1.0 http://schemas.opengis.net/citygml/texturedsurface/1.0/texturedSurface.xsd http://www.opengis.net/citygml/relief/1.0 http://schemas.opengis.net/citygml/relief/1.0/relief.xsd http://www.opengis.net/citygml/vegetation/1.0 http://schemas.opengis.net/citygml/vegetation/1.0/vegetation.xsd http://www.opengis.net/citygml/waterbody/1.0 http://schemas.opengis.net/citygml/waterbody/1.0/waterBody.xsd http://www.opengis.net/citygml/transportation/1.0 http://schemas.opengis.net/citygml/transportation/1.0/transportation.xsd http://www.opengis.net/citygml/landuse/1.0 http://schemas.opengis.net/citygml/landuse/1.0/landUse.xsd">
  <gml:name>LoD2_640_5630</gml:name>
  <gml:boundedBy>
    <gml:Envelope srsName="urn:adv:crs:ETRS89_UTM32*DE_DHHN92_NH">
      <gml:lowerCorner srsDimension="3">640000.0 5630000.0 307.898</gml:lowerCorner>
      <gml:upperCorner srsDimension="3">642000.0 5632000.0 377.3</gml:upperCorner>
    </gml:Envelope>
  </gml:boundedBy>
  <core:cityObjectMember>
    <bldg:Building gml:id="DEXXLLLP00006Pxo">
      <core:creationDate>2017-05-06</core:creationDate>
      <core:externalReference>
        <core:informationSystem>http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100</core:informationSystem>
        <core:externalObject>
          <core:name>DEXXLLLP00006Pxo</core:name>
        </core:externalObject>
      </core:externalReference>
      <gen:stringAttribute name="DatenquelleDachhoehe">
        <gen:value>3000</gen:value>
      </gen:stringAttribute>
      <gen:stringAttribute name="DatenquelleLage">
        <gen:value>1000</gen:value>
      </gen:stringAttribute>
      <gen:stringAttribute name="Gemeindeschluessel">
        <gen:value>21070099</gen:value>
      </gen:stringAttribute>
      <gen:stringAttribute name="DatenquelleBodenhoehe">
        <gen:value>1200</gen:value>
      </gen:stringAttribute>
      <bldg:function>31001_1000</bldg:function>
      <bldg:roofType>1000</bldg:roofType>
      <bldg:measuredHeight uom="urn:adv:uom:m">3.0</bldg:measuredHeight>
      <bldg:lod2Solid>
        <gml:Solid>
          <gml:exterior>
            <gml:CompositeSurface>
              <gml:surfaceMember xlink:href="#GUID_18276819466395891000_34_2_5"/>
              <gml:surfaceMember xlink:href="#GUID_18276819466395891000_34_2_4"/>
              <gml:surfaceMember xlink:href="#GUID_18276819466395891000_34_2_3"/>
              <gml:surfaceMember xlink:href="#GUID_18276819466395891000_34_2_2"/>
              <gml:surfaceMember xlink:href="#GUID_18276819466395891000_34_2_1"/>
              <gml:surfaceMember xlink:href="#GUID_18276819466395891000_34_2_0"/>
            </gml:CompositeSurface>
          </gml:exterior>
        </gml:Solid>
      </bldg:lod2Solid>
      <bldg:boundedBy>
        <bldg:WallSurface gml:id="UUID_1dbc290a-720c-4859-98f5-b55d5a21768b">
          <core:creationDate>2017-05-06</core:creationDate>
          <bldg:lod2MultiSurface>
            <gml:MultiSurface gml:id="UUID_434bd186-0c4d-4245-9b66-d0de541b402d">
              <gml:surfaceMember>
                <gml:Polygon gml:id="GUID_18276819466395891000_34_2_1">
                  <gml:exterior>
                    <gml:LinearRing gml:id="GUID_18276819466395891000_34_2_1_0_">
                      <gml:posList srsDimension="3">641970.53 5631759.65 314.514 641969.331
                        5631756.724 314.514 641969.331 5631756.724 311.514 641970.53 5631759.65
                        311.514 641970.53 5631759.65 314.514</gml:posList>
                    </gml:LinearRing>
                  </gml:exterior>
                </gml:Polygon>
              </gml:surfaceMember>
            </gml:MultiSurface>
          </bldg:lod2MultiSurface>
        </bldg:WallSurface>
      </bldg:boundedBy>
      <bldg:boundedBy>
        <bldg:WallSurface gml:id="UUID_b1c68a9c-e621-4d2f-8c26-c5f14ae8f666">
          <core:creationDate>2017-05-06</core:creationDate>
          <bldg:lod2MultiSurface>
            <gml:MultiSurface gml:id="UUID_2bac2d98-c7f6-4b6a-9a23-4fdcc8bd8fa0">
              <gml:surfaceMember>
                <gml:Polygon gml:id="GUID_18276819466395891000_34_2_2">
                  <gml:exterior>
                    <gml:LinearRing gml:id="GUID_18276819466395891000_34_2_2_0_">
                      <gml:posList srsDimension="3">641969.331 5631756.724 314.514 641967.925
                        5631757.149 314.514 641967.925 5631757.149 311.514 641969.331 5631756.724
                        311.514 641969.331 5631756.724 314.514</gml:posList>
                    </gml:LinearRing>
                  </gml:exterior>
                </gml:Polygon>
              </gml:surfaceMember>
            </gml:MultiSurface>
          </bldg:lod2MultiSurface>
        </bldg:WallSurface>
      </bldg:boundedBy>
      <bldg:boundedBy>
        <bldg:WallSurface gml:id="UUID_344769a9-ed9c-409e-99f1-6c969137a92d">
          <core:creationDate>2017-05-06</core:creationDate>
          <bldg:lod2MultiSurface>
            <gml:MultiSurface gml:id="UUID_a403b938-462b-4c48-bbda-ef45a47f094a">
              <gml:surfaceMember>
                <gml:Polygon gml:id="GUID_18276819466395891000_34_2_3">
                  <gml:exterior>
                    <gml:LinearRing gml:id="GUID_18276819466395891000_34_2_3_0_">
                      <gml:posList srsDimension="3">641967.925 5631757.149 314.514 641968.414
                        5631760.471 314.514 641968.414 5631760.471 311.514 641967.925 5631757.149
                        311.514 641967.925 5631757.149 314.514</gml:posList>
                    </gml:LinearRing>
                  </gml:exterior>
                </gml:Polygon>
              </gml:surfaceMember>
            </gml:MultiSurface>
          </bldg:lod2MultiSurface>
        </bldg:WallSurface>
      </bldg:boundedBy>
      <bldg:boundedBy>
        <bldg:WallSurface gml:id="UUID_7f233674-d55b-45e8-a079-5034984054fc">
          <core:creationDate>2017-05-06</core:creationDate>
          <bldg:lod2MultiSurface>
            <gml:MultiSurface gml:id="UUID_cbbd8499-5ed8-468c-8bf1-a38de5369dc7">
              <gml:surfaceMember>
                <gml:Polygon gml:id="GUID_18276819466395891000_34_2_4">
                  <gml:exterior>
                    <gml:LinearRing gml:id="GUID_18276819466395891000_34_2_4_0_">
                      <gml:posList srsDimension="3">641968.414 5631760.471 314.514 641970.53
                        5631759.65 314.514 641970.53 5631759.65 311.514 641968.414 5631760.471
                        311.514 641968.414 5631760.471 314.514</gml:posList>
                    </gml:LinearRing>
                  </gml:exterior>
                </gml:Polygon>
              </gml:surfaceMember>
            </gml:MultiSurface>
          </bldg:lod2MultiSurface>
        </bldg:WallSurface>
      </bldg:boundedBy>
      <bldg:boundedBy>
        <bldg:RoofSurface gml:id="UUID_b3e3f0b8-91aa-45ca-9a7c-5433796d82ef">
          <core:creationDate>2017-05-06</core:creationDate>
          <bldg:lod2MultiSurface>
            <gml:MultiSurface gml:id="UUID_67410ae6-edaa-4748-b531-a0b12ddd6efc">
              <gml:surfaceMember>
                <gml:Polygon gml:id="GUID_18276819466395891000_34_2_5">
                  <gml:exterior>
                    <gml:LinearRing gml:id="GUID_18276819466395891000_34_2_5_0_">
                      <gml:posList srsDimension="3">641968.414 5631760.471 314.514 641967.925
                        5631757.149 314.514 641969.331 5631756.724 314.514 641970.53 5631759.65
                        314.514 641968.414 5631760.471 314.514</gml:posList>
                    </gml:LinearRing>
                  </gml:exterior>
                </gml:Polygon>
              </gml:surfaceMember>
            </gml:MultiSurface>
          </bldg:lod2MultiSurface>
        </bldg:RoofSurface>
      </bldg:boundedBy>
      <bldg:boundedBy>
        <bldg:GroundSurface gml:id="UUID_ad937406-df68-4264-9970-7d1071ef9df4">
          <core:creationDate>2017-05-06</core:creationDate>
          <bldg:lod2MultiSurface>
            <gml:MultiSurface gml:id="UUID_f4aa1c70-31e9-437d-bc47-4892e508d69a">
              <gml:surfaceMember>
                <gml:Polygon gml:id="GUID_18276819466395891000_34_2_0">
                  <gml:exterior>
                    <gml:LinearRing gml:id="GUID_18276819466395891000_34_2_0_0_">
                      <gml:posList srsDimension="3">641970.53 5631759.65 311.514 641969.331
                        5631756.724 311.514 641967.925 5631757.149 311.514 641968.414 5631760.471
                        311.514 641970.53 5631759.65 311.514</gml:posList>
                    </gml:LinearRing>
                  </gml:exterior>
                </gml:Polygon>
              </gml:surfaceMember>
            </gml:MultiSurface>
          </bldg:lod2MultiSurface>
        </bldg:GroundSurface>
      </bldg:boundedBy>
    </bldg:Building>
  </core:cityObjectMember>
</core:CityModel>
1
  • Welcome to gis.stackexchange! Please note that a good question on this site is expected to show some degree of research on your part, i.e. what you have tried and - if applicable - code so far. For more info, you can check our faq.
    – underdark
    Commented Jan 9, 2018 at 19:04

1 Answer 1

3

Kind of. In QGIS 2.x it is possible to load them, but not as 3D geometries. All CityGML files will be loaded in as simple polygons. GDAL converts the multipatch shapefile to polygons with z/m-attributes attached to them. But they are not actual 3D geometries.

I am not sure if this is now possible in QGIS 3.00, since it has just been released.

You can use ArcMap/Pro with the Data Interoperability extension. As answered here. Using FME the citygml can be converted to a multipatch shapefile and then loaded into Arcmap.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.