Styles für GeoJSON in EBMap4D

vorhergehende Artikel in: Geo Java
22.08.2021

Ich habe bereits darüber berichtet, dass EBMap4D jetzt über die Möglichkeit verfügt, beliebige GeoJSON-Layer darzustellen. Nun ist die Anwendung um die Möglichkeit erweitert worden, in diesen GeoJSON-Daten enthaltene Stilinformationen für die Darstellung zu nutzen.

Hier ein kleines Beispiel für die verschiedenen Möglichkeiten, die Darstellung einzelner Features beeinflussen zu können:

Screenshot GeoJSON-Layer überlagert über Hillshading, kombiniert mit Rendering von Hintergrundinformationen aus OpenStreetMap

Die Umsetzung wurde durch mehrere Ideen aus dem Internet inspiriert, für die ich stellvertretend hier eine verlinkt habe.

Folgende Styles werden bereits unterstützt:

  • fill
  • fill-opacity
  • stroke
  • stroke-opacity
  • stroke-width

Das oben gezeigte Beispiel nutzte folgende GeoJSON-Daten:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "id": "huhu"
      },
      "geometry": {
        "type": "MultiLineString",
        "coordinates": [
          [
            [
              11.345311,
              50.715149
            ],
            [
              11.340311,
              50.711149
            ],
            [
              11.335311,
              50.721149
            ]
          ],
          [
            [
              11.343311,
              50.715149
            ],
            [
              11.337311,
              50.711149
            ],
            [
              11.332311,
              50.721149
            ]
          ]
        ]
      },
      "style": {
        "fill": "red",
        "stroke-width": "15",
        "fill-opacity": 0.6,
        "stroke-opacity": "0.3",
        "stroke": "green"
      }
    },
    {
      "type": "Feature",
      "properties": {
        "id": "huhu"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          11.342311,
          50.709149
        ]
      },
      "style": {
        "fill": "blue",
        "stroke-width": "6",
        "fill-opacity": 0.6,
        "stroke": "blue"
      }
    },
    {
      "type": "Feature",
      "properties": {
        "id": "huhu"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              11.345311,
              50.705149
            ],
            [
              11.340311,
              50.701149
            ],
            [
              11.335311,
              50.711149
            ],
            [
              11.345311,
              50.705149
            ]
          ],
          [
            [
              11.3388,
              50.7064
            ],
            [
              11.3388,
              50.7044
            ],
            [
              11.3421,
              50.7044
            ],
            [
              11.3421,
              50.7064
            ],
            [
              11.3388,
              50.7064
            ]
          ],
          [
            [
              11.338,
              50.708
            ],
            [
              11.34,
              50.708
            ],
            [
              11.34,
              50.707
            ],
            [
              11.339,
              50.707
            ],
            [
              11.338,
              50.708
            ]
          ]
        ]
      },
      "style": {
        "fill": "red",
        "stroke-width": "6",
        "fill-opacity": 0.6,
        "stroke": "yellow"
      }
    },
    {
      "type": "Feature",
      "properties": {
        "id": "huhu"
      },
      "geometry": {
        "type": "MultiPolygon",
        "coordinates": [
          [
            [
              [
                11.345311,
                50.715149
              ],
              [
                11.340311,
                50.711149
              ],
              [
                11.335311,
                50.721149
              ],
              [
                11.345311,
                50.715149
              ]
            ],
            [
              [
                11.3388,
                50.7164
              ],
              [
                11.3388,
                50.7144
              ],
              [
                11.3421,
                50.7144
              ],
              [
                11.3421,
                50.7164
              ],
              [
                11.3388,
                50.7164
              ]
            ],
            [
              [
                11.338,
                50.718
              ],
              [
                11.34,
                50.718
              ],
              [
                11.34,
                50.717
              ],
              [
                11.339,
                50.717
              ],
              [
                11.338,
                50.718
              ]
            ]
          ],
          [
            [
              [
                11.354,
                50.718
              ],
              [
                11.355,
                50.716
              ],
              [
                11.356,
                50.716
              ],
              [
                11.357,
                50.716
              ],
              [
                11.357,
                50.716
              ],
              [
                11.357,
                50.717
              ],
              [
                11.356,
                50.717
              ],
              [
                11.356,
                50.717
              ],
              [
                11.354,
                50.718
              ]
            ]
          ]
        ]
      }
    }
  ]
}

Artikel, die hierher verlinken

SQLite als Geodatenbank

05.05.2024

Wie bereits in einem früheren Artikel beschrieben treibe ich derzeit Anstrengungen voran, die sQLshell attraktiver für Nutzer zu machen, die mit Geodatenbanken arbeiten.

Mehrere Datenbanken und Postgis-Erweiterung in Docker

16.03.2024

Ich hatte ja schon beschrieben, dass ich mich in diesem Jahr wieder intensiver um mein Geoinformationssystem EBMap4D kümmern möchte. Dazu habe ich jetzt einige infrastrukturelle Vorbereitungen getroffen...

sQLshell als Datenlieferant für EBMap4D

16.03.2024

Ich habe neulich beschrieben, welche Vorbereitungen ich traf, um mein Geoinformationssystem EBMap4D mit der sQLshell zu integrieren.

Neue Version von EBMap4D

24.02.2024

Die Anwendung EBMap4D wurde wieder einmal überarbeitet und erweitert.

In eigener Sache mit Blick auf 2024

30.12.2023

Dieses Jahr ist auch wieder rum. Zeit, nach vorne und Zurück zu blicken...

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Brian May, Kerry Ellis & Vittorio Grigolo: Bohemian Rhapsody

    19.05.2019

    Eine andere Sicht auf den schönen Queen-Klassiker

    Weiterlesen...

Neueste Artikel

  • sQLshell, SQLite und Redis - oh my!

    Ich habe in letzter Zeit hin und wieder mit der sQLshell und SQLite herumgespielt - Neulich wurde ich gefragt, ob die sQLshell eigentlich auch Redis kann...

    Weiterlesen...
  • bad-certificates Version 3.0.0

    Das bereits vorgestellte Projekt zur automatisierten Erzeugung von Zertifikaten mit allen möglichen Fehlern wurde um eine weitere Kategorie von Zertifikaten erweitert

    Weiterlesen...
  • Erste Vor-Version eines Gis-Plugin für die sQLshell

    Wie bereits in einem früheren Artikel erwähnt plane ich, demnächst ein Plugin für die sQLshell anzubieten, das eine Visualisierung von Daten mit räumlichem Bezug im Stil eines Geoinformationssystems erlaubt.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.