QGIS Web Client 2 (QWC2) - Neues aus dem Projekt
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 107 | |
Autor | ||
Lizenz | CC-Namensnennung 4.0 International: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/61130 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
| |
Schlagwörter |
7
12
19
20
24
30
33
34
44
65
72
74
76
79
80
84
87
91
00:00
ClientAnwendungssoftwareVersion <Informatik>Repository <Informatik>Web-ApplikationKugelVerschlingungHausdorff-RaumPlug inDerivation <Algebra>UnternehmensarchitekturKomponente <Software>E-MailCookie <Internet>Inhalt <Mathematik>DatensichtgerätWEB
02:27
Demoszene <Programmierung>APISpieltheorieEbeneSchaltwerkKerndarstellungCookie <Internet>Computeranimation
02:44
JavaScriptClientDienst <Informatik>LDAPAuthentifikationFunktionalitätKonfigurationsraumServerApp <Programm>Quelle <Physik>Objekt <Kategorie>VollständigkeitSystemverwaltungQuantenzustandProzessautomationEbeneDatenbankPositionClientWeb-AnwendungAuthentifikationInformationKerndarstellungDienst <Informatik>AnwendungssoftwareBenutzerführungProxy ServerHash-AlgorithmusSchnittstelleGeodätische LinieWEBZugriffMapInfoApache <Programm>Komponente <Software>Active DirectoryCookie <Internet>DateiNumerisches GitterUnendlichkeitSpeicher <Informatik>Neuronales NetzATMInternationalisierung <Programmierung>Web-ApplikationPermutationREST <Informatik>Multi-Tier-ArchitekturChipkarteART-Netzotto <Programmiersprache>Programm/QuellcodeJSON
10:15
ClientDemoszene <Programmierung>RoutingJOULE <Programm>TabelleEbeneHub <Informatik>Dienst <Informatik>Konfigurator <Softwaresystem>DesktopVerfügbarkeitRoutingMaßstabAuthentifikationVersion <Informatik>Aktion <Informatik>KonfigurationsraumChipkarteKoordinatenHomepageFunktion <Mathematik>Objekt <Kategorie>RouterFahne <Mathematik>Numerisches GitterTermTabelleKlon <Mathematik>ALT <Programm>QuantenzustandFraktalgeometrieSage <Programm>QuadratBASICSchlussfolgernSkriptspracheKomponente <Software>SenderDarstellung <Mathematik>Multi-Tier-ArchitekturEllipseStandardmodell <Elementarteilchenphysik>Demoszene <Programmierung>p-BlockProgramm/Quellcode
Transkript: Deutsch(automatisch erzeugt)
00:07
Ja, herzlich willkommen zu unserem letzten Vortrag in der letzten Session des Tages hier in diesem Raum. Ein Vortrag über den Kugels Webclient von Sandro Mani.
00:20
Und bevor wir starten, möchte ich Sie darauf hinweisen, Sie können Ihre Fragen stellen. Am besten machen Sie das über den Link in diesem Manualist-System. Den Link haben Sie bekommen gestern per E-Mail. Und dort können Sie Fragen stellen, aber auch die Zuhörer und Zuhörerinnen, die Zuschauer und Zuschauerinnen an dem Bildschirm zu Hause. Genau, und wenn es viele Fragen gibt, können Sie die sogar abboten,
00:44
sodass die wichtigen Fragen oder die, die die meisten Zustimmungen erfahren, dann eben auch hier gestellt werden. Gut, wir freuen uns jetzt auf den Vortrag von Sandro Mani. Also, danke schön und herzlich willkommen zum Vortrag Neues aus dem Projekt vom Kugels Webclient.
01:02
Mein Name ist Sandro Mani. Ich arbeite bei der Firma SourcePool AG in Zürich. Ganz kurz zur Firma. Wir sind eine GISS-Firma. Wir arbeiten mit Kugels. Wir sind vier Kernentwickler. Wir bieten eine langfristige unterstützte Version von Kugels aus Kugels Enterprise an.
01:20
Wir entwickeln Kada Salberio, eine Derivat von Kugels. Und wir sind auch im Webgiss tätig, unter anderem Kugels Webclient 2. Thema von heute und Kugels Cloud, eine Special Data Infrastructure, die auf QWC basiert. Inhalt, kurz eine Anführung zum QWC und dann zu den QWC Services.
01:41
Den ersten Teil und dann den zweiten Teil, was jetzt in den letzten Monaten neu im Projekt basiert ist. Kugels Webclient 2 ist im 2016 entstanden und ist die offizielle Webanwendung zum Kugels. Das Ziel war, eine moderne und responsive Anwendung zu schreiben mit aktuellen Technologien.
02:05
Wir basieren auf OpenAir und React.js. Ein anderes großes Ziel war eine Plugin-Architektur modular, das heißt, einfach erweiterbar mit verschiedenen Komponenten. Einige sind jetzt Teil von einem Signal Core Repository
02:23
und Anwender können dann weiter Plugins dazu entwickeln. Das Ganze sieht so aus, einmal groß, einmal klein, ist eine Kartenanwendung. Man hat verschiedene Werkzeuge, man hat ein Werkzeugmenü und das Ganze skaliert dann eben auf kleine Bildschirme, so dass es auch dort benutzbar ist.
02:46
Wie ist eigentlich das Ganze so im Kern aufgebaut? Das Ziel ist, man hat ein QGIS Projekt, das man mit QGIS Desktop gestaltet. Man fügt dort Ebenen zu, man installt diese Ebenen, man definiert Druckvorlagen. Man liefert das Ganze dem QGIS Server und der liefert das Ganze dann als WMS aus
03:05
und der QGIS Webclient nutzt diesen WMS, um diese Karte darzustellen und somit ist eigentlich das Ganze sehr eng an QGIS gekoppelt beziehungsweise QGIS Webclient zwar benutzt wirklich auch spezifische Erwartungen von QGIS Server, um die Funktionalität anbieten zu können.
03:24
Im Kern, was bietet daran? Man hat Themen, das sind eigentlich lediglich QGIS Projekte, die dann im QGIS Webclient als Themen zur Auswahl stehen. Man hat einen Layerbaum, wo man die verschiedenen Ebenen einschalten, ausgeschalten kann. Man kann Objekte abfragen über GetFeed Info, man kann suchen über konfigurierbare Suchdienste,
03:45
man kann messen, man kann skizzieren, man kann Zustände der Karte über Permalinks teilen. Die Geolokalisierung wird unterstützt, also die Anzeige der Position in der Karte. Man kann drucken als PDF, das nutzt die QGIS Server proprietäre GetPrint-Erweiterungen.
04:00
Man kann Ebenen vergleichen, also die obere Ebene mit dem Rest der Karte. Man kann externe Ebenen anbinden und dann gibt es noch eine JavaScript-API, um mit externen Anwendungen zu interagieren. Das Ganze, was jetzt so aufgelistet wurde, ist eigentlich das, was der QGIS Web Client bloß auf Basis von QGIS Server kann.
04:24
Das ist eigentlich eine statische Anwendung, die kann man als JavaScript-Applikationsbundle auf einem Web Server deployen und laufen lassen. Das findet man als QWC-Teil auf GitHub unter QGIS QWC Demo App.
04:43
Was aber jetzt zusätzlich noch gibt, sind die QWC Services. Das heißt alles, was jetzt der QGIS Web Client kann, noch viel mehr, aber dazu braucht man zusätzliche Dienste und die werden in diesem QWC Services Ecosystem gemanagt.
05:01
QWC Services sind also Micro-Services, kleine Dienste, jeder Dienst eine Aufgabe für sich, ist so das Konzept. Und diese kommunizieren über eine REST HTTP-Schnittstelle miteinander, sind hauptsächlich Python Flask-Dienste. Und das Ganze kann auch sehr einfach als Docker-Images-Containers deployed werden.
05:25
Oder man kann auch das Ganze selbst aufsetzen mit eigenen Technologien, also Apache-VSJ oder gemäß den eigenen Anforderungen. Die Architektur, man hat den Browser, davor gibt es einen API Gateway, der die Anfragen weiterleitet.
05:44
Die größte Komponente oder die Hauptkomponente ist der MapViewer, die liefert die Karte aus und dann gibt es viele weitere Dienste, die spezifische Anfragen beantworten. Zum Beispiel gibt es die Authentifizierung, um die Benutzer zu authentifizieren. Es gibt ein Administierungswerkzeug, das Admin GUI.
06:03
Und dann gibt es viele weitere Dienste, um Zusatzfunktionen anzubieten. Und hinten gibt es dann der Kugi-Server mit der Geodatenbank. Und vielleicht noch interessant zu sehen, es gibt diesen OGC-Service. Das ist ein Proxy vor dem Kugi-Server, der validiert sämtliche Zugriffe auf die Benutzrechte,
06:22
die konfiguriert werden und somit können auch geschützte Ressourcen gemanagt werden. Was ist jetzt oder was kann jetzt damit mehr erreicht werden, als bloß wenn man den Kugi-Server benutzt? Man kann eben Benutzer und Ressourcen verwalten. Es gibt Authentifizierung, es gibt eine Volltextsuche, es gibt editieren.
06:44
Also man kann direkt die kleinen Geodaten editieren auf einer Posgis-Datenbank. Man kann kompakte Thermalinks in einer Datenbank speichern. Also jetzt nicht so eine lange URL, sondern so ein kleiner Hash. Man kann ein Höhenprofil berechnen. Man kann personalisierte Vorlage für die Get-Feature-Info, Objekte-Information hinterlegen.
07:05
Man kann Dokumente über Jasper generieren. Und man kann Map-Info, positionabhängige Informationen in der Karte darstellen, via Rechtsklick. Kerndienste, eben der LGC Service, wie ich vorhin kurz erwähnt hatte,
07:23
ist eigentlich der Proxy zwischen dem Kugi-Server und der Karte, der stellt sicher, dass alle Anflagen berechtigt sind. Der Map-Viewer liefert dann die Kartenanwendung aus und die Konfiguration abgestimmt auf die Rechte des Benutzers, der die Karte aufruft.
07:41
Das Admin GUI ist das Backend, wo sämtliche Benutzer und Ressourcen verwaltet werden. Und der Config-Generator ist das Werkzeug, welches sämtliche Konfigurationen aus verschiedenen Quellen generiert und statisch ablegt. Also die Konfigurationsquellen, zum einen die Capabilities der Projekte,
08:01
wo die Kugi-Server ausliefert und dann die Konfiguration, die der Administrator manuell erzeugt. Das wird dann alles statisch als JSON-Dateien hinterlegt und von den verschiedenen Diensten verwendet. Authentifizierung ist ein wichtiges Thema und hier ist das ganze Modular aufgebaut.
08:20
Schlussendlich muss der Dienst bloß JVT-Tokens ausstellen, wie er das macht oder woher die Information kommt. Das ist oder macht der Dienst für sich. Da gibt es verschiedene Möglichkeiten, entweder über eine Benutzer-Datenbank oder auch über Active Directory oder weitere Technologien. Grundsätzlich muss einfach der Authentifizierungsdienst diese JVT-Tokens ausstellen.
08:42
Es gibt einige weitere Dienste, die hier in der Übersicht stehen. Eben der Data Service ist der, der das ganze Editieren ermöglicht. Es ist eine Schnittstelle zwischen einer POSKIS-Datenbank und einer Web-Anwendung. Er schickt die ganzen Objekte als GeoJSON hin und zurück und ermöglicht so das Editieren in der Karte.
09:03
Permalink löst und speichert diese kompakte Permalinks auf. Vortex-Suche haben wir jetzt auf Basis von Apache Solar implementiert. Der MapInfo Service, diese Rechtsklick-Funktion in der Karte, der kann auch von der Datenbank Informationen ausliefern
09:21
und dann positionsabhängig der Web-Anwendung liefern. Das Ganze bieten wir, wie vorhin erwähnt, auch als Docker-Containers an. Der große Vorteil darin besteht, dass jedes Image eine eigenständige Konfiguration ist,
09:41
dessen Vollständigkeit garantiert ist. Das System muss bloß in der Lage sein, diese Containers auszuführen. Alles weiter wird gegeben. Zur weiterer Automatisierung von dieser Docker-Umgebung ist dann Kubernetes eine Möglichkeit.
10:04
Gut, dann der spannende Teil. Jetzt was Neues in diesen letzten fünf, sechs Monaten passiert. Es ist einiges passiert. Vielleicht sicher ein interessanter Punkt. Wir haben jetzt einen Long-Term-Release eingeführt.
10:21
Das ist ein Release, den wir ein Jahr lang mit Backfixes versehen werden, aber keine neuen Features dazu. Also hauptsächlich an die gewendet, die auf Stabilität angewiesen sind und auch ein bisschen warten können, bis sie die neuen Features haben. Diese sind mit diesen LTS-Tags getaggt, also sowohl die Branches heißen, als dann auch die Docker-Images auf Docker Hub.
10:46
Jetzt sind wir bei Version 2021.x und x ist 0.1.2, wird einfach laufend erhöht. Und diese sind eben auf Docker Hub verfügbar. Und die alte Versionierung bleibt erhalten. Das heißt jedes Mal, wenn wir eine Brand-New-Image releasen,
11:04
wird dieser als mit dem Versionierungsformat Jahr, Jahr, Jahr, Monat, Tag weiterhin auf Docker Hub verfügbar sein. Was jetzt Funktionen an sich betrifft, wir haben die Möglichkeit angeführt, Farbschäden zu definieren.
11:22
Das war vorhin auch schon ein bisschen möglich, aber nicht so wirklich ausgereift. Jetzt ist das Ganze mit einer Handvoll 15 CSS-Farbvariabeln konfigurierbar. Und man kann es mit wirklich ein eigenes Farbschema einfach definieren.
11:42
Dann Time Manager gab es schon in einer einfacheren Version im Sommer. Jetzt haben wir das Ganze noch erweitert. Man hat eine unendliche Zeitleiste. Man kann das Ganze auch nicht linear darstellen. Wir haben so eine Objektdarstellung angeführt,
12:05
wo man den Zeitraum der verschiedenen Objekte sieht. Und hierzu würde ich gerade mal erwähnen, morgen gibt es dann eine Demo-Session, glaube ich um 11 Uhr. Und da können wir das Ganze noch im Detail demonstrieren. Karten-Legend ist auch ein Feature, welches gefragt wurde.
12:21
Das ist eine Comprente, die einfach den aktuellen Zustand oder die Legende im aktuellen Zustand auf der Karte darstellt. Man kann auch entscheiden, ob man alle sichtbar nehmt oder nur die aktuellen Maßstaben sichtbar sind oder nur im aktuellen Aufschnitt sichtbar sind.
12:41
Die Zeichnungswerkzeuge wurden stark erweitert. Es gibt neue Geometrieformen, Ellipse, Quadrate, Rechtecke. Man kann jetzt die Zeichnungen skalieren, rotieren. Es gibt die Möglichkeit, die Bemaßung in der Zeichnung direkt anzublenden und auch die Möglichkeit, die Koordinaten numerisch anzugeben mittels einem Formular.
13:02
Routing ist eine ganz spannende Neuheit und brandneu. Wir haben jetzt Routing auf Basis von Valhalla implementiert. Da würde ich am besten auf die Morgen-Demo-Session verweisen. Es gibt viel zu viel zu erwähnen, was ich jetzt zeigen kann. Grundsätzlich gibt es die Möglichkeit, Routen zu berechnen und Erreichbarkeiten zu berechnen, also Isokronen.
13:22
Dann werden die Zeichnungen in der Karte dargestellt, die Weganweisungen und man kann noch beliebig viele Routenpunkte definieren und das Ganze dann auch exportieren als GeoJSON. Barrierenfreiheit.
13:40
Es gibt jetzt die Möglichkeit, verwendliche Aktionen und Tastenkürzel zu definieren in der Konfiguration. Dann gibt es eine Hochkontrast-Farbschema. Das ist verbunden mit der Diskussion zum Personalisieren des Farbschemas vorhin.
14:02
Objektexport ist vielleicht eine Nischenfunktion. Man kann eigene Exportfunktionen definieren, die dann in der Feature-Info integriert werden, wenn man jetzt ein spezifisches Format für eine spezifische Anwendung benutzt oder wünscht. Authentifizierung.
14:20
Es gibt jetzt die Möglichkeit, über WMS Basic Authentication die Karten direkt vom Emergency Service zu beziehen für Drittanwendungen. Es gibt einen neuen OpenID-Connectantifizierungsdienst, der auf GitHub verfügbar ist.
14:41
Das interessiert mich als Konfigurator noch besonders. Vorhin hatte man im Configuration immer eine lange Konfiguration für Desktop und dann praktisch selbst nochmals für Mobile. Jetzt gibt es die Möglichkeit, einen gemeinsamen Konfigurationsblock zu definieren und dann nur die Differenzen für die verschiedenen Zielgeräte zu übersteuern.
15:04
Dann gibt es noch einiges, was noch spannend ist, was ich in Florence vorgestellt habe. Plus die Spannendsten, vielleicht noch kurz zur Übersicht. Es gibt seit letztem Jahr die Möglichkeit, interaktiv zu snappen in der Karte, beim Zeichen, editieren und bei Messen.
15:22
Es gibt eine Attributtabelle, die als Editierfunktion angeboten wird. Es gibt auch eine neue Objektformularfunktion, die parallel als Ersatz zur Feature Info angeboten wird und jetzt nicht mehr über WMS Get Feature Info arbeitet,
15:42
sondern direkt über den Data Service und somit auch das Editieren innerhalb des Formulars erlaubt. Ein paar Referenzen. Es gibt eine Homepage auf QC-Services GitHub.io, wo auch sämtliche Dokumentationen entstehen. Es gibt die zwei Haupt-Repositories. Einmal die Demo-App und einmal QC-Docker als Beispielkonfiguration vom ganzen Ecosystem.
16:06
Und dann gibt es einige Beispiele, die online sind, unter anderem unseren Demo-Server auf qc2-sourceball.ch. Damit werde ich, glaube ich, pünktlich am Ende und bedanke mich und wenn es Fragen gibt, gerne.
16:31
Vielen Dank, das war überpünktlich. Ja, zu pünktlich. Jaja, hast noch 30 Sekunden. Wir haben sogar eine Frage bekommen, über welchen Standard tut das Editieren ermöglicht?
16:43
Wird WFST genutzt? Nein, das ist eine GeoJSON-basiertes Format direkt mit dem Data Service-Signal kommuniziert. Und WFST haben wir jetzt nicht implementiert.
17:02
Okay, haben wir hier im Raum noch weitere Fragen? Hand hoch. Keine Fragen mehr? Gut, ich habe auch keine. Alle meine Fragen wurden beantwortet auf den letzten Folien. Von daher, ja, dann schließen wir diese Session hiermit. Vielen Dank für Ihre Anwesenheit.
17:21
Wer gebucht hat, ab 18 Uhr findet die Abendveranstaltung statt. Es gibt nur noch eine kleine Hürde, wir müssen noch aufbauen. Und wer jetzt feststellt, dass er den ganzen Tag zu viel rumgesessen hat, der ist natürlich herzlich eingeladen, mit anzufassen, Tische da hinzuräumen, wo sie hinmüssen. Ein Plan hängt aus an der Infotafel im Foyer.
17:40
Ja, vielen Dank, dass Sie hier waren und hoffentlich sehen wir uns morgen wieder.