Einbinden eines Heatmap Layers

Wir versuchen eine Heatmap aus einer lokalen GeoJSON zu erstellen.
Wir haben folgenden Layer in der services.json erstellt.

...
{
    "id" : "11111",
    "name" : "Heatmap Dummy Points",
    "url" : "/data/heatmap_points.json",
    "typ" : "GeoJSON",
    "gfiTheme": "default"
},
{
    "id": "11112",
    "name": "Heatmap",
    "typ": "Heatmap",
    "attribute": "value",
    "dataLayerId": "11111"
},...

Der Layer 11111 ist ein GeoJSON Layer mit Punktgeometrie und dem Attribut value in dem Werte von 1 - 100 stehen.

{
"type": "FeatureCollection",
"name": "heatmap_points",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::25833" } },
"features": [
{ "type": "Feature", "properties": { "id": 0, "value": 95 }, "geometry": { "type": "Point", "coordinates": [ 354516.6805, 5819694.8755 ] } },
{ "type": "Feature", "properties": { "id": 1, "value": 5 }, "geometry": { "type": "Point", "coordinates": [ 374419.0174, 5812080.2726 ] } },
{ "type": "Feature", "properties": { "id": 2, "value": 59 }, "geometry": { "type": "Point", "coordinates": [ 372449.0596, 5818266.0968 ] } },
{ "type": "Feature", "properties": { "id": 3, "value": 16 }, "geometry": { "type": "Point", "coordinates": [ 363852.0027, 5817067.348 ] } },
{ "type": "Feature", "properties": { "id": 4, "value": 28 }, "geometry": { "type": "Point", "coordinates": [ 359118.8828, 5795561.5469 ] } },
{ "type": "Feature", "properties": { "id": 5, "value": 97 }, "geometry": { "type": "Point", "coordinates": [ 373150.1397, 5801010.3175 ] } },
...

Auf Grundlage dieser Punkte soll eine Heatmap erstellt werden.

Der Layer 11111 wird auch korrekt geladen und dargestellt.
Allerdings passiert beim Klicken auf dem Heatmap Layer (11112) im Portal nichts.

In der Doku vom Heatmap Layer steht unter attribute bzw. value „Attribute name. Only features holding „key“ and „value“ will be used.“.
Ich weiß allerdings nicht, was damit genau gemeint ist.

Hat jemand schon einen Heatmap Layer im Masterportal erstellen können?

Hallo Herr Horn,

vielen Dank für das Interesse und auch der erstellen des Beitrages auf Open Code.

• Das Masterportal stellt mit der Klasse ol.layer.Heatmap eine eigene Layer-Art zur Verfügung, die Punktdaten als Heatmap visualisiert.
• Die Heatmap kann direkt aus Vektorquellen (ol.source.Vector) erzeugt werden.
• Die Intensität der „Wärme“ kann über ein Attribut der Features gesteuert werden (z. B. weight).

Beispiel (JavaScript):
import Heatmap from ‚ol/layer/Heatmap‘;
import VectorSource from ‚ol/source/Vector‘;

// Create a vector source with point features
const vectorSource = new VectorSource({
// features: [ … ] // Add your point features here
});

// Create the heatmap layer
const heatmapLayer = new Heatmap({
source: vectorSource,
blur: 15,
radius: 8,
weight: function(feature) {
// Return a value between 0 and 1 for the heatmap intensity
return feature.get(‚weight‘);
}
});

// Add the heatmap layer to your map
map.addLayer(heatmapLayer);
Kommentar:
// This code adds a heatmap layer to an OpenLayers map using point features and a custom weight function.

In der Konfigurationsdatei layers.json kann ein Layer vom Typ „heatmap“ definiert werden, der dann intern als ol.layer.Heatmap erzeugt wird.
Beispiel aus der Masterportal-Konfiguration:
{
„layers“: [
{
„type“: „heatmap“,
„name“: „Heatmap Example“,
„url“: „https://example.com/your-wfs-or-geojson“,
„options“: {
„blur“: 15,
„radius“: 8,
„weight“: „yourWeightAttribute“
}
}
]
}

Derzeit liegen mir keine Beispiele vor die eine geojson auf diese Art laden.
Ich hoffe diese Antwort hilft Ihnen etwas weiter und ich wünsche Ihnen noch viel Erfolg bei der Umsetzung.

Viele Grüße
Jens Nienaber

Vielen Dank für die Antwort.

Ihre Antwort bezieht sich aus meiner Ansicht eher darauf, wie ich den Heatmap Layer mittels OpenLayers selbst programmieren kann.

Laut der Dokumentation des Masterportals soll dies aber schon direkt implementiert sein.

Ich habe schon einige Anpassungen an den Konfigurationen (services.json, config.json, style.json), auch mit Hilfe von KI (ChatGPT, Gemini), ausprobiert. Allerdings hat nichts geholfen.

Meiner Meinung nach liegt hier ein Fehler im Masterportal vor, so dass ich ein Ticket erstellen werde.

1 „Gefällt mir“