FrogPilot features - 3D buildings in map
Co-Authored-By: pencilpusher <83676301+jakethesnake420@users.noreply.github.com>
This commit is contained in:
parent
dd3337279d
commit
c25749b752
@ -109,6 +109,50 @@ void MapWindow::initLayers() {
|
|||||||
// TODO: remove, symbol-sort-key does not seem to matter outside of each layer
|
// TODO: remove, symbol-sort-key does not seem to matter outside of each layer
|
||||||
m_map->setLayoutProperty("carPosLayer", "symbol-sort-key", 0);
|
m_map->setLayoutProperty("carPosLayer", "symbol-sort-key", 0);
|
||||||
}
|
}
|
||||||
|
// Credit goes to jakethesnake420!
|
||||||
|
if (!m_map->layerExists("buildingsLayer")) {
|
||||||
|
qDebug() << "Initializing buildingsLayer";
|
||||||
|
QVariantMap buildings;
|
||||||
|
buildings["id"] = "buildingsLayer";
|
||||||
|
buildings["source"] = "composite";
|
||||||
|
buildings["source-layer"] = "building";
|
||||||
|
buildings["type"] = "fill-extrusion";
|
||||||
|
buildings["minzoom"] = 15;
|
||||||
|
m_map->addLayer("buildingsLayer", buildings);
|
||||||
|
m_map->setFilter("buildingsLayer", QVariantList({"==", "extrude", "true"}));
|
||||||
|
|
||||||
|
QVariantList fillExtrusionHight = {
|
||||||
|
"interpolate",
|
||||||
|
QVariantList{"linear"},
|
||||||
|
QVariantList{"zoom"},
|
||||||
|
15, 0,
|
||||||
|
15.05, QVariantList{"get", "height"}
|
||||||
|
};
|
||||||
|
|
||||||
|
QVariantList fillExtrusionBase = {
|
||||||
|
"interpolate",
|
||||||
|
QVariantList{"linear"},
|
||||||
|
QVariantList{"zoom"},
|
||||||
|
15, 0,
|
||||||
|
15.05, QVariantList{"get", "min_height"}
|
||||||
|
};
|
||||||
|
|
||||||
|
QVariantList fillExtrusionOpacity = {
|
||||||
|
"interpolate",
|
||||||
|
QVariantList{"linear"},
|
||||||
|
QVariantList{"zoom"},
|
||||||
|
15, 0,
|
||||||
|
15.5, .6,
|
||||||
|
17, .6,
|
||||||
|
20, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
m_map->setPaintProperty("buildingsLayer", "fill-extrusion-color", QColor("grey"));
|
||||||
|
m_map->setPaintProperty("buildingsLayer", "fill-extrusion-opacity", fillExtrusionOpacity);
|
||||||
|
m_map->setPaintProperty("buildingsLayer", "fill-extrusion-height", fillExtrusionHight);
|
||||||
|
m_map->setPaintProperty("buildingsLayer", "fill-extrusion-base", fillExtrusionBase);
|
||||||
|
m_map->setLayoutProperty("buildingsLayer", "visibility", "visible");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWindow::updateState(const UIState &s) {
|
void MapWindow::updateState(const UIState &s) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user