From 18c52ab5e406e2d22cd99d0bbb09d67d51ba0e65 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Fri, 28 Apr 2017 21:53:25 +0300 Subject: [PATCH] [Qt] Add extrusion example to the Qt app --- platform/qt/app/mapwindow.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/platform/qt/app/mapwindow.cpp b/platform/qt/app/mapwindow.cpp index 345c5196b..a72faf005 100644 --- a/platform/qt/app/mapwindow.cpp +++ b/platform/qt/app/mapwindow.cpp @@ -201,6 +201,40 @@ void MapWindow::keyPressEvent(QKeyEvent *ev) m_map->setLayoutProperty("road-label-small", "text-pitch-alignment", "viewport"); m_map->setLayoutProperty("road-label-small", "text-size", 30.0); + + // Buildings extrusion + QVariantMap buildings; + buildings["id"] = "3d-buildings"; + buildings["source"] = "composite"; + buildings["source-layer"] = "building"; + buildings["type"] = "fill-extrusion"; + buildings["minzoom"] = 15.0; + m_map->addLayer(buildings); + + QVariantList buildingsFilterExpression; + buildingsFilterExpression.append("=="); + buildingsFilterExpression.append("extrude"); + buildingsFilterExpression.append("true"); + + QVariantList buildingsFilter; + buildingsFilter.append(buildingsFilterExpression); + + m_map->setFilter("3d-buildings", buildingsFilterExpression); + + m_map->setPaintProperty("3d-buildings", "fill-extrusion-color", "#aaa"); + m_map->setPaintProperty("3d-buildings", "fill-extrusion-opacity", .6); + + QVariantMap extrusionHeight; + extrusionHeight["type"] = "identity"; + extrusionHeight["property"] = "height"; + + m_map->setPaintProperty("3d-buildings", "fill-extrusion-height", extrusionHeight); + + QVariantMap extrusionBase; + extrusionBase["type"] = "identity"; + extrusionBase["property"] = "min_height"; + + m_map->setPaintProperty("3d-buildings", "fill-extrusion-base", extrusionBase); } break; case Qt::Key_1: {