Read-only mirror of https://github.com/sogis/wgc-embedded — Kanton Solothurn. Issues & pull requests at the source.
  • Java 88.6%
  • CSS 6.8%
  • HTML 4.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2024-09-06 11:04:01 +02:00
.github/workflows add commit label 2024-08-06 07:34:51 +02:00
.mvn/wrapper initial commit 2024-07-26 16:33:55 +02:00
wgc-embedded-client use base64 for logo 2024-08-12 10:24:40 +02:00
wgc-embedded-server Dockerfile: install tzdata 2024-09-06 11:04:01 +02:00
wgc-embedded-shared format pom.xml 2024-08-05 11:32:58 +02:00
.gitignore initial commit 2024-07-26 16:33:55 +02:00
LICENSE Initial commit 2024-07-26 16:13:50 +02:00
mvnw initial commit 2024-07-26 16:33:55 +02:00
mvnw.cmd initial commit 2024-07-26 16:33:55 +02:00
pom.xml readme 2024-08-05 13:52:54 +02:00
README.md readme 2024-08-05 13:52:54 +02:00
readme.txt initial commit 2024-07-26 16:33:55 +02:00

wgc-embedded

WGC embedded ist ein Web "Map" Client, der als iFrame in Webseiten integriert werden kann. Er ist somit für den Benutzer über die URL steuerbar und konfigurierbar. Es stehen alle Layer und Hintergrundkarten des "grossen Bruders" (unsere Web GIS Clients) zur Verfügung. Ebenso können externe WMS-Layer hinzugefügt werden. Objektabfragen werden unterstützt.

Benutzung

Funktionen

Es können die Hintergrundkarten unseres WMTS ausgewählt (bl=) werden. Es stehen sämtliche Kartenebenen unseres WMS zur Verfügung. Ebenfalls können externe WMS-Layer hinzugeladen werden (siehe Beispiel-Requests). Objektinformationen von externe Kartenebenen werden nicht unterstützt. Ein Link verweist auf den "Original"-Web-GIS-Client.

Parameter

In der zweiten Version wurden die Parameter an die Parameter des Web

  • Die Basis-URL lautet: https://geo.so.ch/api/embed/v2/index.html
  • bl: Optional. Wählt die Hintergrundkarte aus. Es stehen die gleichen Hintergrundkarten wie im Web GIS Client zur Verfügung. Die Namen entsprechen den WMTS-Layernamen.
  • l: Optional. Kommaseparierte Liste für die anzuzeigenden Kartenebenen. Die Namen entsprechen den WMS-Layername. Der WMS-Layername entspricht dem Identifier wie er auch in der URL des Web GIS Clients für die jeweilige Kartenebene sichtbar ist. In encodierten, eckigen Klammern kann die Transparenz gesteuert werden. Mit einam "!" am Ende des Namens ist der Layer nicht sichtbar (wird aber so an den grossen Web GIS Client mitgeliefert). Externe WMS können mit wms:<Endpunkt>#<Layername> eingebunden werden (siehe Beispiele).
  • c: Optional. Koordinatewerte des Kartenmittelpunktes (kommasepariert).
  • s: Optional. Massstab der Karte.

Beispiele

Achtung: Es darf kein "&" beim externen WMS vorkommen. Auch wenn es encodiert ist.

Konfigurieren und Starten

Optionen (Umgebungsvariablen)

Name Beschreibung Standard
CONFIG_RESOURCE Resourcen-Pfad zur config.json-Datei. Falls eine Datei ausserhalb der Anwendung verwendet werden soll, muss file: verwendet werden. In der Anwendung sind "-prod", "-int" und "-test" vorhanden. classpath:/config.json

JVM

java -jar wgc-embedded-server/target/wgc-embedded-exec.jar

Native

CONFIG_RESOURCE=file:/Users/stefan/tmp/config.json ./wgc-embedded-server/target/wgc-embedded-server

Falls man von aussen das config.json setzen will. Ohne diese Angabe wird eine interne config.json-Datei verwendet.

Docker (nur Native Image)

docker run -p8080:8080 -e CONFIG_RESOURCE=classpath:/config-prod.json sogis/wgc-embedded 

Entwicklung

Run

First Terminal:

./mvnw spring-boot:run -pl *-server -am -Penv-dev 

Second Terminal:

./mvnw gwt:codeserver -pl *-client -am

Or without downloading all the snapshots again:

./mvnw gwt:codeserver -pl *-client -am -nsu 

Falls der Client (der Codeserver) nicht startet und es eine Fehlermeldung bezüglich eine bereits verwendeten Ports wirft, kann man den Codeserver auch abschiessen:

netstat -vanp tcp | grep 9876

Und anschliessendes kill -9 <PID>.

Build

JVM

./mvnw -Penv-prod package -DskipTests

Native

./mvnw -Penv-prod,native package -DskipTests

Test

./mvnw test

Siehe dazu v.a. auch das Github Action Yaml.

Konfiguration und Betrieb in der GDI

Interne Struktur

Spring Boot (also Tomcat) wird vor allem für das Ausliefern des Javascriptes und der Webseite verwendet. Sonstige Businesslogik ist serverseitg kaum vorhanden. Einzig die Konfiguration (siehe ConfigController) der Anwendung wird mit Spring Boot gemacht.