feat: 3D-Gebaeude Layer (OSM Buildings via Cesium Ion)
- Weltweite 3D-Gebaeude mit Hoehen aus OpenStreetMap - Farbcodiert: Militaer (rot), Industrie (orange), Regierung (blau), Rest (grau) - Toggle in Gruppe INFRASTRUKTUR - Kostenlos via Cesium Ion OSM Buildings Tileset Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
36
static/js/layers/buildings.js
Normale Datei
36
static/js/layers/buildings.js
Normale Datei
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* 3D-Gebaeude-Layer: OpenStreetMap Buildings via Cesium Ion.
|
||||
* Zeigt weltweite 3D-Gebaeude mit Hoehen aus OSM-Daten.
|
||||
*/
|
||||
const BuildingsLayer = {
|
||||
_viewer: null,
|
||||
_tileset: null,
|
||||
|
||||
start: function(viewer) {
|
||||
if (this._tileset) return;
|
||||
this._viewer = viewer;
|
||||
var self = this;
|
||||
Cesium.createOsmBuildingsAsync().then(function(tileset) {
|
||||
if (!self._viewer) return;
|
||||
self._tileset = tileset;
|
||||
self._tileset.style = new Cesium.Cesium3DTileStyle({
|
||||
color: {
|
||||
conditions: [
|
||||
["${feature['building']} === 'military'", "color('#ff2222', 0.7)"],
|
||||
["${feature['building']} === 'industrial'", "color('#ff8800', 0.6)"],
|
||||
["${feature['building']} === 'government' || ${feature['building']} === 'public'", "color('#4488ff', 0.6)"],
|
||||
["true", "color('#88aacc', 0.45)"],
|
||||
],
|
||||
},
|
||||
});
|
||||
self._viewer.scene.primitives.add(self._tileset);
|
||||
});
|
||||
},
|
||||
|
||||
stop: function() {
|
||||
if (this._tileset && this._viewer) {
|
||||
this._viewer.scene.primitives.remove(this._tileset);
|
||||
this._tileset = null;
|
||||
}
|
||||
},
|
||||
};
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren