Skip to main content

Create 3D Tiles from KML/COLLADA with Per-Building Data

Many Cesium users often need to visualize entire cities with hundreds of thousands of 3D buildings for real-estate, urban planning, or civil engineering projects. To make it easier to create useful digital twins for these industries, we’ve just added support for embedding feature data when uploading KML/COLLADA to Cesium ion.

This means you can now export your 3D buildings from modeling tools such as CityEngine, Rhino, and 3DCityDB and include per-building properties when sharing it on the web with Cesium ion.

3D buildings in Philadelphia combined with Cesium World Terrain. Each building can be clicked on to display its name, address, and parcel number.

Cesium ion tiles your buildings into 3D Tiles to optimize it for the web while still allowing you to inspect every building. The source 3D data for the example above is from the Pennsylvania Spatial Data Access, with addresses, names, parcel numbers, and city owned properties from Open Data Philly.

To get insight into this visualization we can use 3D Tiles Styling to highlight all properties owned by the City of Philadelphia, and click on them to get their parcel numbers. The parcel numbers can then be used to look up more information on each building from the city’s databases.

You can use 3D Tiles Styling to highlight all buildings owned by the City of Philadelphia, like museums and historic sites.

To create a scene like this for your city, your source data should be one or more KML files that define the location of each 3D model. Here is a snippet from the KML files used for the Philadelphia buildings.

<Placemark>
  <name>Independence Hall</name>
  <Model>
    <Link><href>building.dae</href></Link>
    <!-- Model properties like longitude, latitude, etc... -->
  </Model>
  <ExtendedData>                       
    <Data name="Address">
      <value>500-36 CHESTNUT ST</value>
    </Data>
    <Data name="Parcel_ID">
      <value>313762</value>
    </Data>
    <Data name="Is_City_Owned">
      <value>True</value>
    </Data>
  </ExtendedData> 
</Placemark>

The Placemark’s name is used as the name of the buildings. Any additional data can be added in the <ExtendedData> tag.

Once you’ve uploaded your buildings to Cesium ion, you can use Cesium Stories to style and inspect it. You can also combine it with other types of content like CityGML or point clouds which can also have embedded feature data.

Try it out by creating a Cesium ion account and uploading your 3D buildings.