Geodaten - Tileserver
GeoJSON ist ein offener Standard, über den Geodaten einfach ausgetauscht werden können. Viele Anbieter oder GIS Programme können Daten im GeoJSON Format exportieren und damit zur Verfügung stellen.
Um einen GeoJSON Layer in REV+ anzulegen, navigieren Sie in der Verwaltung zum Thema "Karten" -> "Geloayer" und legen einen neuen Datensatz an.
Dabei sind folgende Attribute notwendig:
| Attribut | Beschreibung |
|---|---|
| Bezeichnung | Beliebige Bezeichung, die in den Anwendungen für diesen Layer angezeigt werden |
| GeoJSON | Kopieren Sie hier ihrn GeoJSON Datensatz hinein. |
| Style | Hier können Sie eine benutzerdefinierte Java-Script Funktion hinterlegen, um ein eigenes Styling für das Rendering des GeoJSON Layers zu erstellen. Mehr dazu unten. |
| Min Zoom | Geben Sie hier die minimale Zoomstufe ein. Die minimale Zoomstufe gibt an, wie weit der Nutzer mindestens hineingezoomt haben muss, dass das Kartenmaterial angezeigt wird. Dies hängt vom Kartenanbieter ab in welchen Zoomstufen er die Karte zur Verfügung stellt, meistens ist 2 ein guter Wert |
| Max Zoom | Geben Sie hier die maximale Zoomstufe ein. Die maximale Zoomstufe gibt an, wie weit der Nutzer maximal hineinzoomen kann, bis das Kartenmaterial nicht mehr angezeigt wird. Dies hängt vom Kartenanbieter ab in welchen Zoomstufen er die Karte zur Verfügung stellt, meistens ist 22 ein guter Wert |

Style
GeoJSON hat grundsätzlich im Standard keine Vorgaben für die Darstellung von Linien und Punkten. Es hat sich aber etabliert in den Properties der Elemente verschiedene Styling-Optionen mit anzugeben.
{
"type": "Feature",
"properties": {
"stroke": "red",
"stroke-opacity": 1.0,
"stroke-width": 1.0,
"fill": "",
"fill-opacity": 1.0
},
"geometry": {
"type": "Point",
"coordinates": [13.382, 52.517]
}
}
Für Kunden, die weitergehende Rendering-Methoden benötigen, kann eine eigene Javscript-Styling Funktion erstellt werden. Diese wird durch die Style-Methode der Leaflet Library aufgerufen.
Verfügbare Styling-Properties
Es können folgende Styling Properties verwendet werden:
| Property | Typ | Beschreibung |
|---|---|---|
| stroke | Boolean | Ob eine Kontur (stroke) gezeichnet wird (Standard: true) |
| color | String | Farbe der Kontur (z. B. 'red', '#ff0000') |
| weight | Number | Linienstärke der Kontur in Pixeln (Standard: 3) |
| opacity | Number | Deckkraft der Kontur (0–1, Standard: 1.0) |
| lineCap | String | Linien-Enden: 'butt', 'round', 'square' |
| lineJoin | String | Linien-Verbindung: 'miter', 'round', 'bevel' |
| dashArray | String | Strichmuster, z. B. '5,10' (5px Linie, 10px Lücke) |
| dashOffset | String | Versatz für Strichmuster |
| fill | Boolean | Ob die Fläche gefüllt wird (Standard: abhängig vom Layer-Typ) |
| fillColor | String | Füllfarbe (falls fill: true) |
| fillOpacity | Number | Deckkraft der Füllung (0–1) |
| fillRule | String | Füllregel: 'evenodd' oder 'nonzero' |
| className | String | CSS-Klasse für das SVG-Element |
Beispielcode
Im folgenden Beispiel wird der Style für ein Wasserleitungsnetz anhand eines Durchmessers, der zuvor aus der Property LBEZ der jeweiligen Poly-Linie extrahiert wurde, gesetzt. Neben Farbe wird auch die Stärke/Dicke der zu zeichnenden Linie gesetzt.
var durchmesser = 0;
if (feature.properties.LBEZ != "") {
var spl = feature.properties.LBEZ.split(' ');
if (spl.length > 2) {
durchmesser = parseInt(spl[1]);
if (isNaN(durchmesser)) {
durchmesser = parseInt(spl[2]);
}
if (durchmesser < 100) {
return { color: 'blue', weight: 2 };
}
if (durchmesser < 150) {
return { color: 'blue', weight: 3 };
}
if (durchmesser < 200) {
return { color: 'blue', weight: 5 };
}
if (durchmesser < 300) {
return { color: 'blue', weight: 8 };
}
if (durchmesser < 400) {
return { color: 'blue', weight: 13 };
}
if (durchmesser >= 400) {
return { color: 'magenta', weight: 15 };
}
return { color: 'red' };
}
}