Land Use: Open Landuse Maps over 3D Data

In this tutorial we combine 3D data of Czech cities and the Corine Land Cover / Open Landuse datasets from the Land Use: Copernicus DEM with Urbanatlas and Corine Land Cover WMS tutorial.


Czech Cities 3D is a proprietary dataset, provided by Melown Technologies. Please contact Melown Technologies in order to get access to this dataset.


  1. This tutorial expects that you have already set up your VTS backend, as described in Setting up Your Own VTS Backend Environment.
  2. It is assumed that your Mapproxy resources are set up and that your Mapproxy instance is up and running, just as shown in the tutorial Land Use: Copernicus DEM with Urbanatlas and Corine Land Cover WMS.
  3. It is also expected that you start with a clean VTS installation (the Storage is empty).

Filling the storage

To work with static True3D data and/or fuse various surfaces together, we must add them to the storage. The storage is administered by the tool vts that takes care of adding tilesets to the storage and their subsequent fusion. In our case, there are no other datasets in the Storage so there will be no fusion and the operation will be instantaneous.

Now we are ready to add our cities 3D tileset as a remote tileset to the Storage. This means that the tileset will not be physically copied into the Storage - which is useful for large tilesets like this one - but the tiles will be downloaded on demand from a URL specified in the vts --add command.

vts /var/vts/store/stage.melown2015 --add \
    --tileset http://[SERVER]/store/melown2015/stage/tilesets/melown-cities-cz --bottom

Creating a storage view

As the final step we need to create a Storage view that combines tilesets from our storage and a free and a bound layer from the mapproxy.

Go to /var/vts/store/map-config directory and create the file cities with the following content.

      "storage": "../stage.melown2015/",
      "tilesets": [
      "credits": { },
      "boundLayers": {
              "urbanatlas": "//localhost:3070/melown2015/tms/openlanduse/urbanatlas/boundlayer.json"
      "freeLayers": {
              "copernicus-dem" : "//localhost:3070/melown2015/surface/openlanduse/dem/freelayer.json"
      "view": {
              "description": "",
              "surfaces": {
                      "melown-cities-cz": []
              "freeLayers": {
                      "copernicus-dem" : {
                        "boundLayers": [{
                            "id": "urbanatlas",
                            "alpha": 0.5
                        "depthOffset" : [-5, 0, -10]
      "namedViews": {},
      "position": [
      "version": 1

For a commented configuration file, take a look at the Displaying Raster and Vector Cadastre Over 3D Data example.

cd /var/vts/store/map-config
vts --map-config cities

If everything is all right, a large JSON with client side map configuration will be printed.:

    "boundLayers" :
        "urbanatlas" : "//localhost:3070/melown2015/tms/openlanduse/urbanatlas/boundlayer.json"
    "credits" :
        "seznamcz" :
            "id" : 103,
            "notice" : "{copy}{Y}, a.s."

Now, you can go to :


The result of our configuration. Corine DEM as a free layer with texture from Open Landuse service with 50% transparency, layed over textured 3D cities.


Another option how to display the same data: Urban atlas used as bound layer for 3D cities.