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
              ]
            ]
          ]
        ]
      }
    }
  ]
}

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


Vor 5 Jahren hier im Blog

  • Virtuelles Netzwerklabor

    11.01.2017

    Nachdem ich hin und wieder vor der Herausforderung stehe, Anwendungen unter realen Netzwerkbedingungen zu testen, habe ich bereits vor längerer Zeit begonnen, ein virtuelles Netzwerklabor aufzubauen...

    Weiterlesen...

Neueste Artikel

  • Stratum-1-NTP-Server Links

    Ich habe meinen eigenen Stratum-1-NTP-Server mittels eines GPS-Empfängers, einer Adapterschaltung und einem Raspi gebaut. Hier fasse ich einige nützliche Links zu diesem Themengebiet zusammen

    Weiterlesen...
  • EBCMS threaded und mit mehr Markdown-Unterstützung

    Mein eigener Static Site Generator hat in den letzten Wochen einige größere Umbauten erfahren

    Weiterlesen...
  • Fork der BeanShell wegen Trojan Source

    Es gibt inzwischen einen von mir erstellten Fork des originalen Repository, in dem ich die Komponente zur Darstellung der Konsole gegen die ausgetauscht habe, die in der sQLshell in den Plugins MDIJavaEditor und MDISqlEditor zum Einsatz kommt - dadurch wird wenigstens durch das Syntax-Highlighting auf problematische Stellen im Code hingewiesen.

    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.