QWC2 und qwc-services
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/61132 (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
BenutzerfreundlichkeitCodeGeometrieComputerarchitekturProdukt <Mathematik>MAPKonfiguration <Informatik>BitMereologieMomentenproblemProjektive EbeneSpeicherabzugDatensichtgerätMenütechnikVersion <Informatik>SoftwarewartungSystemaufrufKonfigurationsraumVersionsverwaltungServerAutomatische HandlungsplanungDesktopCoxeter-GruppeWEBParallele SchnittstellePunktKontrollstrukturQuaderWort <Informatik>Kartesische KoordinatenFokalpunktBrowserSoundverarbeitungClientPunktwolkeOpen Sourcep-BlockTouchscreenKlassische PhysikMessage-PassingMapping <Computergraphik>Dienst <Informatik>Demo <Programm>BenutzerbeteiligungDemoszene <Programmierung>Tablet PCDesign by ContractSoftwareentwicklerUnternehmensarchitekturChipkarteGeodätische LinieRuhmasseKommensurabilitätComputeranimation
05:29
KommunikationNatürliche SpracheComputerarchitekturTelekommunikationFunktion <Mathematik>ExpertensystemMAPProgrammierumgebungBijektionChipkarteFunktionalHochdruckHyperbelverfahrenKernfunktionMereologieMomentenproblemPhysikalisches SystemProjektive EbeneSpeicherabzugKonfigurationsraumServerDesktopRenderingModularitätZusammenhängender GraphSystemverwaltungTemplateGraphische BenutzeroberflächeNetzadresseAuthentifikationLaufzeitsystemWort <Informatik>Kartesische KoordinatenBrowserSuchmaschineMailing-ListeKomponente <Software>Apache <Programm>PlastikkarteElektronische PublikationClientPDF <Dateiformat>ViewerART-NetzContent ManagementContent <Internet>Grundeinheit <Mathematik>Rechter WinkelDienst <Informatik>SmartphoneWeb-ApplikationSpieltheorieAnwendungssoftwaremakePDF <Dateiformat>Computeranimation
12:04
SoftwareModallogikBildschirmfensterProgrammierumgebungUniformer RaumBitGrundraumHochgeschwindigkeitsnetzLINUXLaufzeitsystemSpielkonsoleNeuroinformatikUbuntu <Programm>Dienst <Informatik>VirtualBoxLISPDatenendgerätWärmeübergangszahlServerUpdateFehlermeldungOrdnungsbegriffVierSchnittmengeComputeranimation
13:26
DatenbankOrdnung <Mathematik>PlatteRechnenProgrammierumgebungVolumenKlon <Mathematik>GatewayInhalt <Mathematik>MereologiePhysikalisches SystemVersion <Informatik>KonfigurationsraumVersionsverwaltungServerCASE <Informatik>VerzeichnisdienstMachsches PrinzipComputersicherheitNotebook-ComputerAuthentifikationWeb-SeiteKartesische KoordinatenPlastikkarteElektronische PublikationWeb SiteSchlüsselverwaltungMini-DiscNeuroinformatikp-BlockPostgreSQLMultiplikationsoperatorRechter WinkelDienst <Informatik>OrtsoperatorSpezifisches VolumenBildverarbeitungCodeLISPVariableVolumenDOSEbene KurveGatewayIndexVersion <Informatik>KonfigurationsraumServerUpdateFehlermeldungBenutzerschnittstellenentwurfssystemOrdnungsbegriffVierNabel <Mathematik>RouterEIBISPLesen <Datenverarbeitung>Quicken <Programm>World Wide WebThreadNetscapeAPIKonfigurationsdatenbankApache <Programm>HTTPExplosion <Stochastik>ClientSystems <München>Schreib-Lese-KopfProviderSwitch <Kommunikationstechnik>DOM <Programmierumgebung>Digital Rights ManagementAsset <Informatik>CachingFirefox <Programm>Ubuntu <Programm>Dienst <Informatik>OSADemoszene <Programmierung>DMX <Lichttechnik>Java Memory ModelComputeranimation
19:26
MengeProgrammierumgebungVolumenProjektive EbeneFlächeninhaltCASE <Informatik>Notebook-ComputerLaufzeitsystemDemo <Programm>Spezifisches VolumenBildverarbeitungLISPDOSEbene KurveIndexVersion <Informatik>KonfigurationsraumDownloadingServerUpdateRouterMagnettrommelspeicherISPLesen <Datenverarbeitung>ThreadNetscapeAPIApache <Programm>HTTPSystems <München>Switch <Kommunikationstechnik>DOM <Programmierumgebung>Asset <Informatik>CachingFirefox <Programm>Ubuntu <Programm>OSADemoszene <Programmierung>
20:57
DatenbankInformationGroßrechnerProgrammierumgebungEinfach zusammenhängender RaumHyperbelverfahrenMomentenproblemProjektive EbeneServerNotebook-ComputerPasswortDifferenteDienst <Informatik>Speicher <Informatik>Statistische AnalyseDrehungKoordinatenPolygonVersion <Informatik>MaßstabBinärdatenBrowserPasswortDienst <Informatik>Demoszene <Programmierung>Computeranimation
22:47
DatenbankInformationDarstellung <Mathematik>Einfach zusammenhängender RaumGeradeProjektive EbeneStellenringTabelleServerUmwandlungsenthalpieDienst <Informatik>DatenbankStatistische AnalyseErweiterungDrehungPolygonMaßstabBrowserPasswortCachingDemoszene <Programmierung>Computeranimation
24:02
DatenbankLinieGanze FunktionProgrammierumgebungVolumenAggregatzustandEinfach zusammenhängender RaumGeradePolygonProjektive EbeneGüte der AnpassungNormalvektorLaufzeitsystemElektronische PublikationSupremum <Mathematik>NormaleMultiplikationsoperatorDienst <Informatik>Spezifisches VolumenBildverarbeitungDatenbankSchaltwerkStatistische AnalyseErweiterungDOSDrehungEbene KurveKoordinatenPolygonVerschlingungTaupunktServerMaßstabSIMPL <Programmiersprache>RouterMagnettrommelspeicherWeb-SeiteService providerMetadatenBrowserAPITaligentClientBeamerURLDigital Rights ManagementDienst <Informatik>Demoszene <Programmierung>DefaultComputeranimation
26:04
DatentypMAPGroßrechnerProgrammierumgebungBildschirmmaskeChipkarteEbeneGeradeGruppenoperationHochdruckPhysikalisches SystemPolygonProjektive EbeneRollbewegungE-MailCASE <Informatik>SystemverwaltungMetropolitan area networkTemplatePunktLaufzeitsystemPlastikkarteViewerPasswortRechter WinkelDienst <Informatik>Demo <Programm>BildverarbeitungDatenbankInformationErweiterungIBMDOSDrehungEbene KurveLastMaßstabRouterNetzadresseAPIMeterClientPasswortWeb SiteSystems <München>Typ <Informatik>LoginRegistrierung <Bildverarbeitung>Firefox <Programm>Demoszene <Programmierung>RedmineComputeranimation
30:31
InformationProgrammierumgebungKonfiguration <Informatik>GeradePolygonMenütechnikPunktRegistrierung <Bildverarbeitung>Demo <Programm>Demoszene <Programmierung>BildverarbeitungDatenbankStatistische AnalyseErweiterungEbene KurvePolygonRouterBrowserAPIClientSystems <München>Demoszene <Programmierung>
31:19
Attributierte GrammatikInformationMengeSoftwareSpeicher <Informatik>LinieBerechnungGebäude <Mathematik>Profil <Aerodynamik>MAPTropfenAusdruck <Logik>ProgrammierumgebungKonfiguration <Informatik>EbeneFunktionalGeradeGruppenoperationMomentenproblemPolygonProjektive EbeneStichprobenumfangTabelleZentrische StreckungKonfigurationsraumGüte der AnpassungSpannweite <Stochastik>ComputervirusEckeLängeAbstandHöheCASE <Informatik>MaßstabRoutingAdditionPunktRouterZeitabhängigkeitQuaderEin-AusgabeKreisflächeKartesische KoordinatenMailing-ListeFlächentheoriePlastikkarteSichtenkonzeptWeg <Topologie>ViewerObjekt <Kategorie>MultiplikationsoperatorDemo <Programm>BildverarbeitungDatenbankSpieltheorieErweiterungFlächeDOSANNA <Programmiersprache>ADILDrehungEbeneEbene KurvePositionMaßstabWEBRouterMagnettrommelspeicherWorld Wide WebRichtungBrowserMicrosoft NetworkAPIMaximumFlächentheorieMeterClientSystems <München>Aktion <Informatik>Typ <Informatik>Objekt <Kategorie>LoginZurücksetzung <Transaktion>Digital Rights ManagementDemoszene <Programmierung>Computeranimation
41:41
PolygonProjektive EbeneServerMultiplikationsoperatorBildverarbeitungDatenbankStatistische AnalyseErweiterungDatenbusDOSChipkarteDrehungEbenePolygonRechenwerkVerschlingungServerZeiger <Informatik>Web-SeiteService providerBrowserMicrosoft NetworkAPIClientSystems <München>LoginURLDienst <Informatik>Demoszene <Programmierung>Computeranimation
42:27
Konfiguration <Informatik>Coxeter-GruppeZeitabhängigkeitKonstruktor <Informatik>Objekt <Kategorie>MultiplikationsoperatorClient
43:35
Bildgebendes VerfahrenEigenwertproblemOrdnung <Mathematik>BildschirmfensterAutomatische IndexierungKonfiguration <Informatik>AnalogieschlussFunktionalGruppenoperationMomentenproblemPhysikalisches SystemPositionTabelleServerSystemverwaltungCoxeter-GruppeATMDimension 2Ein-AusgabeAuthentifikationKartesische KoordinatenJavaScriptDateiformatQuellcodeNominalskaliertes MerkmalSichtenkonzeptWeb SiteDifferenteAuflösung <Mathematik>ZweiKollaboration <Informatik>Dienst <Informatik>BenutzerbeteiligungInterface <Schaltung>OrtsoperatorGoogle Street ViewSoftwareentwicklerSchätzungLESVorlesung/Konferenz
48:50
DatenbankDigitalfilterDatenbanksystemÜbersetzer <Informatik>Profil <Aerodynamik>ProgrammierumgebungChipkarteGeradePhysikalisches SystemProjektive EbeneWechselsprungVersion <Informatik>VersionsverwaltungServerCASE <Informatik>Translation <Mathematik>Ein-AusgabeLaufzeitsystemPlastikkarteElektronische PublikationPunktwolkeDifferentesinc-FunktionDienst <Informatik>Vorlesung/Konferenz
Transkript: Deutsch(automatisch erzeugt)
00:07
Hallo und herzlich Willkommen zum nächsten Vortrag Block vor der Pause. Wir beginnen heute mit einer Präsentation oder mit einer Demo zum QGOOS Web Client. Wenn Sie Fragen haben, bitte im Renewalus stellen.
00:21
Auch wenn Sie jetzt hier sitzen. Ansonsten haben wir sonst auch eine Hörserhälferin, können wir dann auch noch das Mikrofon hier rumgeben lassen. Und dann gebe ich eigentlich schon das Wort weiter hier. Viel Spaß. Ja, danke für die Einführung. Ich möchte jetzt mit Ihnen eine Demo-Session machen, keinen Vortrag. Also das Ganze soll ein bisschen lockerer sein und nicht so streng frontal nach Möglichkeit.
00:45
Und wir wollen oder ich will Ihnen zeigen, wie man ein Geoportal einfach, ein einfaches Beispiel zeigen, wie man ein Geoportal mit QGOOS Server und QWC 2 aufsetzt, out of the box. Jetzt meine erste Frage an Sie. Wer von Ihnen hat Erfahrungen mit QWC 2 und Geo Server?
01:04
Also ein paar. Wer hat gestern den Vortrag von Sandro gehört? Ein paar, also auch nicht alle. Gut, dann werde ich vielleicht für diejenigen da nochmal was wiederholen. Zur Einführung um was es überhaupt geht und was die Hintergründe sind und was wir wollen und worauf es ankommt.
01:22
Also ich werde ein bisschen den Theoretischen Teil machen und dann die Demo Ihnen einerseits zeigen, wie Sie von GitHub anfangen sich Ihr Portal aufsetzen können mit einem kleinen Beispiel von einer Konfiguration, damit Sie so sehen, wie die Abläufe sind. Man kann sicherlich nicht alles zeigen.
01:42
Und dann in dem zweiten Teil der Demo würde ich Ihnen dann die Feature zeigen, die zurzeit da sind, die neueren Sachen, die coolen Sachen und wie man die dann auch entsprechend manipulieren kann. Gut, ich fange mal an mit Firma SourcePool überhaupt grundsätzlich. Ich bin also ein Geschäftsführer der Firma SourcePool.
02:02
Sandro Mani ist auch Mitarbeiter der Firma SourcePool und eigentlich der maßgebliche Entwickler von QWC 2 und QGOOS Services und so weiter. Also wir sind spezialisiert unter anderem auf WebGIS-Applikationen basierend auf QGOOS. Eben QGOOS Webclient 2, QGOOS Cloud ist ein Produkt, das wir betreiben, sehr aktiv.
02:23
Wir haben vier Core-Entwickler für QGOOS. QGOOS Server ist maßgeblich von SourcePool entwickelt worden. Plugins, QGOOS Enterprise bieten wir an. Das ist ein Maintenance and Support Vertrag für QGOOS und sind in ganz vielen weiteren Open Source Projekten aktiv.
02:42
Was ist der QGOOS Webclient? Erstmal der QGOOS Webclient 2, das ist jetzt Version 2, das ist Nachfolger des QGOOS Webclient 1. Und die Ziele vom QGOOS Webclient 2 sind gewesen. Der QGOOS Webclient 1, wer ihn noch kennt, hat den Charakter eines Desktop-GIS gehabt, mit Knöpfen und so weiter und so fort.
03:01
Und das wollte man vermeiden und deswegen hat man ein modernes UI entwickelt, das vor allem responsive ist. Das heißt, ohne großen Konfigurationsaufwand auf allen gängigen Geräten und Displaygrößen benutzbar ist.
03:22
Der Fokus lag auf der Usability. Also grundsätzlich war die Idee, möglichst wenig Knöpfe und möglichst intuitiv zu arbeiten. Google Maps ist ja das klassische Beispiel dafür. Es hat überhaupt keine Knöpfe, außer Plus und Minus und der Rest ist intuitiv mit den Fingern auf dem Bildschirm. Die Architektur sollte skalierbar sein.
03:43
Das ist eine ganz wichtige Größe, um entsprechend beliebig große Installationen, beliebig große Services, beliebig in Anführungszeichen anbieten zu können. Der Code ist modular, mit dem Effekt, dass man es sehr gut erweitern kann.
04:01
Und Technologie, auf der es aufbaut, ist React.js und OpenLayers 6 und Webpack. Das sollte auch State of the Art der Technologie sein. Die Entwicklung hat 2016 begonnen. Der Webplein sieht eben so aus. Er sollte sehr aufgeräumt aussehen. Wenig Knöpfe, wenig Verteidigung.
04:20
Aber auf allen Displaygrößen benutzbar. Auf dem Smartphone, wie auf dem Tablet, als auch auf dem Desktop. Alles eine und dieselbe Anwendung, die sich aufgrund der Konfiguration, die man vornehmen muss irgendwo, dann entsprechend der Bildschirmgröße anpasst. Es sind wenig Knöpfe, also hier in der mobilen Version einfach nur hier unten.
04:45
Ein Hintergrundlayerwechsel, eine Suche und ein Menüpunkt und dann ist eigentlich schon fertig. Hinter den Menüs verbirgt sich dann hier jetzt noch in der Anfangsversion, das ist eine ältere Darstellung, verbirgen sich dann die Werkzeuge.
05:01
Das werden wir alles gleich sehen. Und entsprechend mit dem Aufruf und dem Benutzen der Knöpfe geht dann wieder was auf und man kann dann weiter auf dem Werkzeug arbeiten. Mit den Hintergrundkarten hat man dann die Möglichkeit, eine Hintergrundkarte auszuwählen. Die wird anders behandelt als die Layers, die sonst in der Karte zu sehen sind.
05:22
Weil die Hintergrundkarten werden separat parallel in den Webplein geladen und dadurch ist die Performance eine ganz andere. Sehen wir dann auch gleich noch. Die einfachste Konfiguration für ein Kugis Webplein ist effektiv. Der Kugis Webplein ist auf der Desktopseite, der Kugis Server, der die Karte rendert und den WMS bereitstellt.
05:43
Kugis Webplein nutzt nur ausschließlich WMS oder eben Arten von WMS, also WMTS oder sowas. Der Kugis Server wird bedient durch das Kugis Projekt. Im Kugis Projekt werden die Layer definiert, welche Layer dargestellt werden sollen, wie sie dargestellt werden und mit Print Templates wird der Kartendruck auch realisiert.
06:06
Also diese drei Basisgröße im Kugis Projekt sind das, was ich konfiguriere. Also quasi das Content Management System oder der Content wird über das Kugis Projekt gemanagt. Der Kugis Server nimmt das Projekt, ist das gleiche wie Kugis, nur dass das ganze Grif fehlt, aber die Rendering Engine ist die gleiche.
06:24
Dann macht ein WMS daraus, schickt ihn an den Kugis Webplein und ich sehe die Karte im Kugis Webplein auf meinem Desktop oder Smartphone 1 zu 1 so, wie ich sie auf Kugis formuliert habe. Mit sämtlichen Möglichkeiten, die Kugis bietet an Kartendarstellung.
06:40
Ein paar Worte zu den Technologien. Also eben die Karten Komponenten werden mit React.js Redux gemacht und OpenLayers 6. Dann noch diverse andere Sachen, Node.js und so weiter. Ich würde gar nicht darauf eingehen, das ist mehr so für den Experten hier im Raum, ist für sie aber auch nicht so relevant.
07:01
Der Kugis Server natürlich und dann gibt es auf der Serverseite Komponenten, die in die Umgebung hinzu gesetzt werden können, die dann den Applikationsumfang erweitern können.
07:23
Im QWC 2 sind von Haus aus als Kernfunktion diese Liste der Funktionen vorhanden. Also es gibt Themenwähler, das sind die Projekte eigentlich, zwischen denen man wechseln kann und mit denen man arbeiten kann. Man hat den Layerbaum, Feature Info, dann kann man eine Suche definieren,
07:43
das alles Messwerkzeug, Redlining oder Zeichen Funktionalität, Parmalig, PDF Druck und so weiter. Alles das sind Funktionen, die mit dem QWC 2 schon von Haus aus mitgeliefert werden, die man beliebig konfigurieren kann.
08:01
Dann gibt es auf der Serverseite Funktionen, die hinzugefügt werden kann. Das sind Erweiterbare, man kann jede beliebige Serverkonfiguration hinzusetzen. Das ist dann die Suche zum Beispiel, das sind die Micro-Services, die letztendlich
08:24
mit Python aufgebaut werden und die als kleine Dienste dann dem QWC hinzugefügt werden können. Bilder jetzt nicht, alles vorlesen, das sehen wir dann auch später. In sieben Sprachen ist übersetzt, ich glaube inzwischen sind es noch mehr, es kommt ständig was Neues dazu.
08:42
Die QWC Services sind eben diese Backend Funktionen, die für den QWC 2 verfügbar sind. Das sind Micro-Services, das heißt kleine Komponenten, die als Dienste hinzugefügt werden können, die erweitert werden können, die benutzt werden können oder auch nicht, wie man das möchte.
09:04
Darum wird die Modularität durch erreicht, das sind Python Flask Web-Applikationen und das Deployment erfolgt als Docker-Container oder BSGI. Dann werden wir auch gleich sehen, was das heißt und wie man das, was man darunter versteht.
09:24
Die Micro-Services sind, das ist der große Vorteil, das sind eben Teilprozesse-Services, die aber lose gekoppelt sind. Die sind für sich gesehen eigenständige Applikationen, Apps, das kann man heute auch sagen, das hört sich auch immer toll an. Es sind eben isolierte Applikationen, die über HTTP kommunizieren miteinander und untereinander und auch mit dem Client und mit dem Service-System.
09:49
Also die Kommunikation ist via HTTP und die kleinen Apps, die Teilprozesse werden dann als Micro-Services bezeichnet. So sieht die Architektur aus. Also wenn man ankommt vom Browser, ruft man eine Adresse auf.
10:06
Wir werden nachher lokal das mit der Local Host machen, Local Host 8088. Dann treffen wir auf den API-Guideway und der versorgt dann den ganzen Rest. Der verteilt dann und managt dann, ob eine Authentifizierung erforderlich ist, dann würde der Authentifizierungs-Service aufgerufen.
10:23
Der Map-Viewer selber natürlich wird aufgerufen. Wir sehen, er wollte eine Karte sehen und die Anwendung. Dann werden die Rest-Services, also die Micro-Services hier bedient über die API. Wir haben einen Admin-Guide, mit dem wir das Ganze konfigurieren. Also wir haben feine Möglichkeiten, zum Beispiel die Authentifizierung und
10:44
auch die Zugriffsrechte auf einzelne Layer innerhalb einer Applikation zu managen. Das werden wir auch gleich noch sehen. Dahinter, hinter diesen Services steckt dann der Kugi-Server als Rendering-Engine. Solar ist für die Suche. Das Apache Solar ist die Suchmaschine, mit der wir die Vollstacks-Suche realisieren.
11:06
Just-by-Reporting ist möglich und so weiter. Es ist noch vieles mehr, was man braucht, kann man da hinzuentwickeln. Aber das ist von Haus aus da. Dann gibt es den Config-Generator. Die Micro-Services sind relativ komplex zu konfigurieren.
11:21
Jeder Service hat eine eigene Konfiguration mit Jason-Konfigurationsfiles. Und das wird über das Admin-Guide, das werden wir dann auch gleich sehen, kann man dann automatisch die Konfiguration so zurecht machen, dass das nachher auch mit dem System funktioniert. Die Konfiguration wird einerseits über die Konfigurationsfiles gemacht und über das Kugis-Projekt.
11:47
Und wird über eine Config-DB gemanagt. Dann haben wir irgendwo auch noch Geodaten, die dann in irgendeiner beliebigen Geodatenbank liegen. Und die werden dann immer auch verwurstet. So muss man sich die Architektur vorstellen.
12:06
Und ich würde dann mich hinsetzen und anfangen Ihnen zu zeigen, wie man so von 0 auf 100 kommt. Wobei ich nicht ganz bei 0 anfange, weil ich nicht die Services alle herunterladen möchte, hier über das Hochgeschwindigkeitsnetz von der Uni.
12:21
Und deswegen habe ich das schon mal vorbereitet für Sie, das ist so wie im Kochstudio. Und ich wechsle jetzt hier in meine, auf meine, ein bisschen aufräumen. Alles wegräumen, was wir nicht brauchen. So, und ich gehe jetzt auf die Konsole.
12:41
Weil das Ganze läuft am besten und eigentlich nur vernünftig unter Linux. Es gibt, eine glaube ich hast du gemacht Sandro, eine Windows-Insulation oder zwei. Aber wer sich die Beine nicht brechen möchte und sein Herz länger noch mal haben möchte und auch ein hohes Alter erreichen möchte, sollte das nicht tun. Dann sollte sich lieber eine Linux-VM anlegen und jetzt mit, mit VirtualBox betreiben
13:06
und hat dann sehr viel weniger Sorgen, als, als das nötig ist. Also im Endeffekt geht es darum, dass wir, ich jetzt hier mit einer Ubuntu 22.4 Umgebung arbeite. Und das kann jetzt eine VirtualBox sein oder hier auch der Rechnerserver.
13:22
Also der erste Schritt, den man machen muss, ist, fangen wir vorne an, die ganze QWC-Docker-Umgebung von GitHub bzw. die Konfigurationsseite von GitHub klonen.
13:41
Das habe ich bereits im Vorfeld gemacht. Dann passiert nicht viel. Das sehen Sie nur, dass Sie dann auf einmal hier ein Verzeichnis haben. Oder ich mache es mal von oben. Ein Verzeichnis haben mit verschiedensten Inhalt, wo Sie, den Sie hier auch auf GitHub sehen. Also das ist die, die Ausgangslage und die, mit der wir anfangen können.
14:03
Wir haben noch nichts auf dem Rechner, außer jetzt diese paar Files, die wir von, von GitHub heruntergeladen haben. Das Entscheidende ist, das ist Docker. Sie müssen also Docker installiert haben. Docker Compose und mit dem Docker Compose werden wir die Anwendung bereitgestellt.
14:27
Wenn Sie, der erste Schritt, den man machen muss, um die Docker-Umgebung zu starten, ist das Docker Compose-Example-Yaml-File in Docker Compose-Yaml umzubenennen,
14:41
weil das ist eigentlich die Konfiguration. Die können wir, das machen wir. Dann müssen wir noch das Engines umbenennen oder das Example-Conf kopieren. Alles das, was ich hier erzähle, steht hier unten im ReadMe der QWC-Docker-Anwendung.
15:03
Also ich mache den nächsten Schritt, das habe ich auch bereits gemacht. Ich kopiere das Engines-Example-Conf in die Apigateware-Engines-Conf. Dann, als nächsten Schritt, ist es wichtig, das können wir hier machen. Kopiere ich, mache ich einen Secret, der für die ganze Authentifizierung und für die Sicherheit wichtig ist.
15:29
Mache ein generiertes Secret, das machen Sie einmal. Das steht auch alles auf der Webseite. Dann sind wir eigentlich schon praktisch fertig.
15:41
Die Dienst-Umgebung, also die Platte der Docker-Umgebung, ist unter den Volumes versteckt. Wenn ich nach Volumes gehe, sehe ich eigentlich meine Services. Das ist eigentlich meine Server-Umgebung.
16:00
Da müssen noch bestimmte Rechte gesetzt werden. Damit Sie damit arbeiten können, ist es wichtig zu wissen, welche User-ID Sie haben. Das können Sie mit der ID feststellen. Ich bin jetzt hier der User HADUS, ich habe die UID 1000 und die GID 1000, damit ich auf die Ressourcen zugreifen kann und von hier aus bearbeiten kann und gleichzeitig das Server auch.
16:22
Damit das funktioniert, muss ich im Docker-Yaml noch die Service-ID in dem Block XQPC-Service-Variable einsetzen.
16:51
Die ist in der Regel, wenn Sie alleine auf dem Rechner sind, 1000. Das hier ist auskommentiert. Wenn Sie das Beispiel übertragen, müssen Sie einfach den Kommentar wegnehmen
17:00
und die entsprechende UID einsetzen, wenn Sie eine andere als 1000 haben. Dann funktioniert das. Sonst müssen Sie gar nichts machen. Was macht das Docker Compose-Yaml? Das sehen Sie hier. Das holt von Sourceball aus die Docker-Container, die nötig sind, um das System zu betreiben.
17:21
Die Microservices, KUGIS-Server, Postgres und alles, was nötig ist. Das wird hier definiert. Hier sehen Sie auch zum Beispiel am Fall von Postgres, dass hier die QWC-DemoDB geholt wird mit der Version vom 3.9.2022. Oder der KUGIS-Server wird 328 geladen und so weiter.
17:41
Das müssen Sie aber gar nicht ändern. Das ist alles eigentlich ganz prima so, wenn wir das so einsetzen. So, also, wie starte ich jetzt? Jetzt habe ich das GitHub geklont, habe meine Rechte gesetzt und jetzt kann ich schon anfangen.
18:01
Und zwar indem ich mit Docker Compose ab mein System starte. So, danke schön. So, was ich jetzt mache, jetzt geht es sehr schnell. In Ihrem Fall, wenn Sie das nicht gemacht haben, noch schon vorbereitet haben, wird jetzt der ganze Docker-Kram runtergeladen.
18:22
Also das dauert eine ganze Zeit. Das sind schon ein paar Megabyte und das wäre hier jetzt sehr langsam. Aber im Endeffekt wird die ganze Systemumgebung geholt und gestartet und jetzt läuft schon alles. Also jetzt haben wir schon den KUGIS-Server laufen mit KUGIS-Services in allem ZIP und ZAP.
18:42
Können wir gleich ausprobieren. Ich gehe auf Localhost 8088 und da sehe ich meine Karte. Und das ist gerade das, was gestartet wurde. Das Foto hier ist aus der Datenbank. Seine Daten, hier ein bisschen.
19:03
Alles jetzt auf dem Laptop, fertig. Zum Beweis, dass es wirklich so ist, mit Ctrl-C kann ich das ganze Ding wieder runterfahren. Jetzt wird alles runtergefahren. Sie sehen hier, da ist das Arpi-Gateway, das ist ein eigener Docker-Container, Elevation-Service und so weiter. Der Parmalink-Service, da haben wir unten den KUGIS-Server,
19:22
Postgeistvertriller und alles das ist jetzt wieder abgeschaltet. Jetzt sollte das nicht mehr funktionieren und geht auch nicht mehr. Also Beweis erbracht. Tatsächlich die Umgebung funktioniert hier auf meinem Laptop. Jetzt starte ich das Ding wieder. Der Workshop ist beendet.
19:42
Ich habe Ihnen gezeigt, wie einfach das ist, eine Q4C2-Docker-Umgebung aufzusetzen. Nein, natürlich nicht. Wir können da eine ganze Menge machen. Dazu möchte ich jetzt erstmal, mal gucken, was ich mir so ausgedacht habe hier.
20:04
Erstmal gibt es ein paar Sachen zu beachten. Wir reden jetzt hier über eine Docker-Umgebung. Und ich habe im Endeffekt, wie ich eingangs erwähnt habe, der Q4C2 rendert ein KUGIS-Projekt. Immer in dem Fall hier. Und wo finde ich das jetzt alles?
20:21
Wie sind die Ressourcen aufgebaut? Und dazu können wir uns das hier gut ansehen. Ich gehe dann mal schnell hier rein. Da haben wir jetzt hier die Docker-Compose-Umgebung unter Volumes. Da ist eigentlich es aber sozusagen, kann man so übersehen. Und wir haben eigentlich zwei wichtige Bereiche, die jetzt für uns interessant sind.
20:43
Das ist einmal die QGIS-Ressources. Da sind die QGIS-Projekte drin. Und hier ist jetzt unser QWC-Demo QGIS. Wenn ich das starte, dann kommt später das Projekt.
21:06
Dann braucht das einen Moment. So, da werde ich jetzt gefragt zu den Zugangsdaten. Und jetzt müssen Sie sich vorstellen, ich greife jetzt auf die Datenbank in der Docker, diese Docker-Datenbank zu. Und die läuft als eigener Server irgendwo.
21:21
Die ist für meinen Laptop hier ein eigener Dienst, der irgendwo läuft. Der läuft über den Port 5, 4, 3, 9 jetzt vom Laptop aus gesehen. Der QGIS-Server, der in der Docker-Umgebung läuft, sieht den aber ganz anders. Der hat eine ganz andere Verbindungsinformation.
21:42
Weil der jetzt dann ja in seiner eigenen Welt läuft und auf einem anderen Port unter Umständen. Deswegen muss man Datenbankverbindungen, wenn man hier so arbeitet, in dem Dunstkreis über Services definieren. Weil ich habe lokal eine andere Information, als ich die auf dem Server habe.
22:00
Klar oder nicht klar? Also Sie wissen, wie man sich mit der Postgres-Datenbank verbindet. Man braucht einen Local, also einen Host. Man braucht einen Benutzernamen. Man braucht einen Port und ein Passwort. Und je nachdem, von wo aus ich auf diese Datenbank will, oder wo habe ich entweder einen anderen Host,
22:22
oder ich habe einen anderen Port oder was auch immer. Und damit ich aber lokal hier mit meinem lokalen QGIS mit den Daten arbeiten kann, und die aus der Datenbank stammen, die eigentlich auf dem Server laufen in der Docker-Umgebung, muss ich die Verbindungsinformation über einen Service definieren.
22:40
Genug ist, kann man ja Services definieren in dem PG Service Conf, wo, ich zeige das mal, egal, im PG Service Conf werden die Verbindungen definiert. Und ich habe jetzt auf dem Docker Server einen PG Service Conf, wo die Docker Server spezifische Verbindungsinformation drin ist.
23:01
Und ich habe die Lokale. So, und die nutze ich jetzt, die Lokale. Und das finde ich auf meiner Docker-Datenbank. Man sieht das hier. Das ist die GeoDB Service und die Tabelle so und so.
23:20
Edit Points hier zum Beispiel. Im Hintergrund ist noch Blue Marble oder OpenStreetMap. Ich habe hier noch die Countries, die hier noch angezeigt werden. Das sind alles Daten aus der Postgres-Datenbank. Das ist sehr wichtig, weil die beiden Welten müssen vom gleichen reden. Sie können also jetzt hier nicht unbedingt fallbasierte Daten verwenden, weil die sieht der andere ja nicht in der anderen Server.
23:42
Ja, ja, kratzt das. Ist es so besser? Ah ja, es ist lauter. Ich höre es. Danke. Wuh, so war jetzt sehr laut. Wo war ich stehen geblieben? Ja, und wenn ich jetzt Veränderungen vornehmen möchte, mache ich das hier im Projekt.
24:01
Ich kann zum Beispiel die Countrylines jetzt hier in meinem Projekt anders darstellen. Ich habe jetzt hier so eine graue Linie. Ist das richtig? Bin ich da? Na, die State and Provinces sind das. Die kann ich jetzt zum Beispiel ja grün machen. Das kennen Sie alles. Das ist Gogi Server. Jetzt sind die grün. Jetzt speichere ich das Projekt und ich speichere das Projekt jetzt lokal
24:22
und gleichzeitig auch in der Docker-Umgebung, weil ich ja in den Volumes drin bin. Und wenn ich jetzt hier ein Refresh mache, ist das immer so langsam, lokal?
24:40
Ja, das ist halt was. Sind die grün. Also prima. Also alles, was Sie layoutmäßig machen wollen, machen Sie in dem Kugisfeil. Da brauchen Sie an der ganzen Kugis die Umgebung überhaupt nicht anpacken. Da möchte ich jetzt gar noch ein Label dazu haben und der soll noch schön irgendwie rumschwimmen und rumfliegen über der Karte.
25:01
Und ach, all den Felefanz, den Sie machen können, können Sie in Ihrem Kugisprojekt machen und dann sehen Sie das auch schön auf der Karte. Super. Also Datenbankverbindung hatten wir. Wir haben die ganze Geschichte angeschaut. Gut.
25:23
Ich möchte jetzt, oh, die Zeit läuft. Ich möchte jetzt ein Ding zeigen, wie man editieren kann. Also wie Sie zum Beispiel eine Edit-Umgebung auf dem QWC 2 einrichten können. Einfach mal so als Beispiel, wie der Workflow ist, wie man auf dem QWC 2 und der Docker und der QWC-Services-Umgebung arbeitet.
25:44
Also zuerst einmal müssen wir im Projekt einen Layer haben, den wir bearbeiten können wollen. Und in unserem Fall sind das diese Punkt, Linien und Polygon Layer. Die sind als einfache normale Layer, Datenbank-Layer im Projekt eingearbeitet hier.
26:01
Die sind leer momentan, so wie das aussieht. Doch, da ist ein Example-Polygon drin und prima. Das nehmen wir jetzt mal so. Das Projekt ist publiziert. Und jetzt muss ich mich auf die andere Seite der Welt bewegen. Ich muss mich jetzt auf die Server-Seite bewegen.
26:20
Und um die Docker-Umgebung zu bearbeiten, da muss ich, das ist doch der falsche, ich muss das noch lokal machen, auf dem Local Host. Und das habe ich soeben auch erwähnt, das ist der QWC-Admin. Das ist die Umgebung mit der, ist es das Passwort?
26:47
Nein, das ist es. So, dann, jetzt bin ich auf dem Administrationswerkzeug von den QWC-Services.
27:05
Meine Idee ist, und die Edit-Umgebung ist ein Service, ich möchte gerne jetzt eine bestimmte Layer editierbar machen. Und dazu brauche ich erstmal, muss ich definieren, wer dafür überhaupt editieren. Und dazu brauche ich Benutzer, User.
27:22
Und die User sind hier zwei definiert. Es gibt einen Admin-User und einen Demo-User. Ich kann jetzt beliebig viele weitere User hinzufügen. Wenn ich mal den Demo-User anschaue, dann hat der Demo-User einen Namen, eine E-Mail. Wichtig ist es, wenn man so ein Passwort vergessen hat, damit man die E-Mail mit einem Passwortersatz schicken kann.
27:41
Und das Passwort-Server ist drin. Und man kann diesen User bestimmten Gruppen zuorten. Das ist so die übliche Benutzerverwaltung, die man so macht. Die ist aber sehr wichtig, weil damit kann man sehr fein granuliert, kann man die Rechte vergeben, so wie später in der Karte dann die Layer sichtbar sind und bearbeitbar sind und so weiter.
28:01
Gut, dann kann man die Gruppen definieren. Wir haben keine Gruppe hier. Es gibt Rollen und da geht es los. Wir haben eine Admin-Rolle, eine Demo- und eine Public-Rolle. Da könnte man die Demo-Rolle anschauen. Da ist eigentlich nur erklärt, dass der Demo-User dieser Rolle zuhört.
28:21
Schließlich geht es weg von den Benutzern hin zu den Ressourcen. Also wir haben in unserem Fall eine Karte. Das ist die QWC-Demo-Karte. Die ist als Ressource jetzt hier definiert. Und wir haben Datenebenen. Eben die Edit-Lines, Points und Polygons. Das sind die Ebenen, die jetzt in irgendeiner Form als Ressource verwendet werden sollen,
28:44
in unserem Fall jetzt zum Editieren. Gut, da kann man auch mal anschauen, was ist da drin. Da steckt eigentlich nicht viel drin. Das sagt eigentlich nur, dass die Edit-Lines, das ist der Layernahme, ein Datentyp-Data ist und der Ressource, also der Karte oder eine QWC-Demo angehört.
29:02
Was haben wir noch für Ressourcen? Da gibt es ganz viele. Da könnt ihr mal reinschauen. Es gibt Karten, Layern. Bis auf Attributebene kann ich die Ressourcen verwalten. View-Templates kann ich definieren. Zum Beispiel das bestimmte, oder Print-Templates, dass bestimmte Karten nur von bestimmten Benutzerkreisen überhaupt sichtbar sind und druckbar sind.
29:22
Und alle anderen Benutzer oder auch keine Benutzer, weil die Karte öffentlich ist, die sehen dann diese Druck-Templates überhaupt nicht und können auch gar nicht drucken. Also man kann Viewer, das ist die Form, wie der QWC selber aussieht. Man kann also sehr viel, die Suche zum Beispiel hier auch, man kann sehr viele Ressourcen definieren, die alle einzelnen Benutzerechten zugeordnet werden können.
29:45
Und dadurch ist eine ganz feine Granulierung von Rechten und Sichtbarkeit und Zugängen ab das System möglich. In unserem Fall haben wir ja die Datenressourcen, weil wir wollen Daten bearbeiten und verändern. Also müssen die Ebenen als Daten-Ebenen, als Ressourcen definiert sein.
30:03
Und letztendlich dann gibt es noch die Rechte. Und da definiere ich, was für Rechte hat man jetzt. Public hat jetzt hier zum Beispiel die Rolle Public. Ein Recht auf die Datenressource Edit Lines. Und was ist das? Das Recht ist Schreiben. Damit ist die Ebene editierbar. Taucht also für jeder Mann und jeder Frau auf der Welt, weil es ja die Rolle Public ist,
30:24
die ohne Anmeldung schon wirksam ist, taucht dann als editierbare Ebene auf. Und das sieht dann so aus, dass ich, wenn ich hier mein Menü öffne und unter Werkzeuge die Edit-Umgebung starte, dann sehe ich, dass hier die Edit Lines und Points und Polygons ohne Anmeldung erscheinen.
30:43
Wenn ich jetzt eine Rolle zugeordnet hätte, wie Demo zum Beispiel oder Admin, dann müsste ich mich erst anmelden, um diese Rolle zu sehen, um mit editieren zu können. Gut. Okay. Das als Beispiel. Weiteres, was noch spannend ist, ich möchte das aufgrund der Zeit, doch, geht schnell, die Zeit geht schnell um,
31:02
zeigen, was beim Editieren ist ja nicht nur das Linien- und Polygone-Zeichen, sondern ich habe auch eine Attributive-Information. Und wie kann ich die beim Editieren vereinfachend nutzen, indem ich die Möglichkeit nutze, die QGIS mir ja bietet, indem ich Attributformulare definiere.
31:23
Ich kann hier das automatische Attributformular nutzen. Ich kann mit Track and Drop mir ein Attributformular zusammenstellen. Oder ich kann mit einem UI, das ich mit dem Qt-Designer formuliert habe, kann ich das verwenden, habe ich ganz schöne Möglichkeiten, Eingabeformulare zu machen.
31:41
Wenn ich die auf QGIS so formuliere, das QGIS-Projekt publiziere, dann stehen die für mich automatisch sofort zur Verfügung. Das sehen wir gleich dann noch an den Beispielen. So, gut. Ich wechsle jetzt auf die Online-Version, wo das alles schon vorbereitet ist für Sie. Und die finden Sie als Beispiel-Application, finden Sie auf QWC2, Sourceboard CH.
32:04
Dort ist der Einstieg in eigentlich den vollständigen Funktionsumfang. Natürlich, wenn Sie jetzt hier zum Beispiel das Ding aufmachen, da sehen Sie eine Riesenliste an Werkzeugen und an Zeug. Das können Sie alles konfigurieren. Sie nehmen natürlich in Ihrer Anwendung, die Sie betreiben, nur die Werkzeuge, die Sie brauchen.
32:22
Es ist nicht immer so, dass Sie da 5.000 Werkzeuge haben und jede Menge anderes Zeug. Gut, hier haben wir jetzt die Umgebung, die so alle Werkzeuge verbindet, zeigt. Und wir können zum Beispiel hier sehen, es sind vier Themen, also vier Kugelprojekte,
32:48
die in diesem Rahmen, in diesem Portal jetzt zur Verfügung stehen. Und ich möchte Ihnen jetzt ein paar Dinge zeigen. Ein Ding ist zum Beispiel das Editieren hier an dem Beispiel. Dafür nehmen wir die Demokarte.
33:02
Und ich kann mit den Werkzeugen das Editieren. Und ich nehme eine Linie und ich möchte eine Linie zeichnen. Und die Linie zeichne ich hier hinein. Und jetzt bekomme ich ein Formular. Und das ist das Formular jetzt, was in Kugis definiert ist. Das ist mit dem Drag-and-Drop-Designer. Da hat man zwei Gruppen.
33:23
Und ich kann hier in der Gruppe habe ich eine Kombobox. Ich habe hier eine Checkbox und alles das. Alles das wird im Kugis-Projekt definiert und nirgendwo anders. Das ist sehr einfach. Und es wird auch berücksichtigt, ob Daten zwingend sind oder nicht zwingend.
33:41
Und dann alles das und erst dann ist möglich auch zu speichern. Also ich kann jetzt hier in die Linie einen Text eingeben. Und ich kann das speichern. So und jetzt ist die Linie auch da. Da ist sie. Und wenn ich hier mit dem Klick drauf die Attributtabelle öffne, dann sehe ich wieder die Editierumgebung, weil ich ja noch im Editierumgebung bin. Wenn ich das schließe und jetzt die Attributumgebung öffne,
34:04
dann bekomme ich, habe ich nicht getroffen. So, treffe mal genauer. Nö. Dann klicken wir da oben hin. So, hallo. Tut nicht. Muss ich da näher ran. Oder, Sandro?
34:27
Ist okay. Man muss richtig, danke. Das Feature-Info scheint für die Ebene nicht aktiviert zu sein. Ich mache weiter. Was man noch gesehen hat, ist, beim Editieren kann ich auch auswählen hier,
34:42
die Linie wieder, die ich hier hatte. Und ich habe neben dem Formular habe ich auch die Attributtabelle. Ich kann also eine Attributtabelle öffnen auch und sehe jetzt alle Linien aus dem EditLines-Objekt. Und da kann ich jetzt ganz drinnen arbeiten und kann in der Attributtabelle jetzt auch die Werte verändern
35:01
und manipulieren. Ich kann auch ein Objekt hinzufügen. Da muss man das aber mit der Formularansicht machen, hier in dem Fall. Und ich kann auch löschen und ich kann suchen und so weiter und so weiter. Also das ist vorhanden. Dann möchte ich beim Editieren
35:20
auf die Frage des Snappings noch eingehen. Und zwar, hier haben wir ein Snapping-Demo-Projekt. Das Snapping muss man in der Konfiguration definieren. Ich habe hier Beispieldaten. Das ist irgendwas hier in Zürich. Das ist der Hauptbahnhof hier und Häuser.
35:41
Und dieses Snapping hier wird erst ab einem bestimmten Maßstab aktiv. Also wir haben jetzt hier den Maßstab 1 zu 10.000. Ich zoome mal rein. Da passiert nichts. Passiert immer noch nichts. Und passiert auch noch nichts. Wann ist das Snapping überhaupt aktiv? Das ist aktiv, wenn ich messe, wenn ich zeichne oder wenn ich editiere.
36:01
Dann kann ich nur das Snapping nutzen. Na, das ist jetzt langsam hier. Das Netz. Es geht hier aber mein Handy. Also, jetzt geht gar nichts.
36:22
Wenn ich jetzt... Ah, jetzt haben wir es. Wenn ich jetzt zum Beispiel hier die Messfunktion einschalte und das Snapping ist ja definiert im Hintergrund und ich eine Länge bestimmen möchte, dann müssen erst mal, und das ist so, braucht es Zeit, vor allen Dingen wenn das Netz hier sehr langsam ist, müssen erst mal die Objekte,
36:40
die hier in der Aussicht sind, überhaupt geladen werden. Sonst kann ich nicht snappen. Und das braucht jetzt hier einen Moment. Man kann das insofern manipulieren, indem man den Maximalmaßstab definiert, dem überhaupt das Snapping funktioniert. Das Netz ist jetzt gerade sehr langsam.
37:06
Meinst du? Weil jetzt alle plötzlich hier... Die gucken da alle hin. Nee, das glaube ich nicht. Okay. Hallo.
37:26
Okay. Ah, jetzt ist gut. Jetzt hat es gedauert. Jetzt sehen Sie hier unten, dass das Snapping eingeschaltet ist an diesem kleinen Information. Auch der Text ist jetzt nicht grau und kursiv, sondern der ist gerade und schwarz. Also jetzt tut es das Snapping. Jetzt kann ich hier... seht ihr es?
37:41
Jetzt schnappt der Punkt hier, der unter der Maus ist, an die Ecke oder an das Segment. Und der rote Kreis zeigt an, dass das Snapping jetzt aktiv ist, dass der jetzt gesnappt ist. Und dann kann ich jetzt hier die Distanz zwischen diesen beiden Gebäuden messen und kann jetzt hier rum snappen, wie ich lustig bin.
38:01
So. Und wenn ich das abschließe, das ist auch bei der Messfunktion, bekomme ich auch gleichzeitig dann ein Profil über diese... über den Weg hier, der gemessen wurde, ist natürlich jetzt hier auf so einer kurzen Distanz in Zürich nicht so prickelnd, aber wenn man jetzt mal so über die Alpen gehen würde, dann wäre das schon anders. Ich kann dieses Profil auch exportieren
38:22
als CSV, damit bekommt man die Schlitzpunkte und die Höhen dazu. Das Gleiche geht auch mit dem Snapping genauso mit dem Zeichen und dem Meditieren. Ich möchte jetzt nicht weiter darauf eingehen. Was ein neues Feature ist, sehen wir gerade hier, ist das Routing. Also wir haben...
38:42
Dann gehe ich am besten auf ein anderes Thema wieder. Dann gehe ich wieder auf das Demo-Thema. Und so sieht man es schöner. Und ich kann das Routing einschalten und ich möchte jetzt gerne mit dem Auto von Zürich nach Berlin. Halt, war ich zu schnell.
39:07
Zum Hintergrund, das Ganze nutzt die Valhalla Routing-Engine. Das ist hier wahnsinnig langsam. Jetzt finden wir es. Und ich möchte nach Berlin.
39:23
In Berlin, in Deutschland. Und jetzt wird die Berechnung. Jetzt habe ich die Route berechnet. Hier unten kommt die Liste der Fahrtweg. Was man jetzt kann, ist man kann zum Beispiel auf Flächen ausschließen. Man kann sagen, gut,
39:42
ich mache einen Polygon, ich möchte den Raum Leipzig großräumig umfahren. So. Und jetzt macht er das jetzt gerade von selber? Muss ich, was?
40:01
Ah, ja, ja, ja, ja. Genau. Stimmt. Da kann ich jetzt auf Ebenen hinzufügen. Gut. Das ist zu groß, das Polygon, anscheinend. Müssen wir Leipzig kleiner machen.
40:21
Muss ich nochmal. Ja, ich sehe es. Also, da habe ich die... Okay.
40:41
Also, wir haben die Möglichkeit, auch Bereiche auszuschließen. Dann können wir die Erreichbarkeit noch anschauen. Ich bin in Zürich und möchte gerne wissen, wie weit ich mit dem Auto in 60
41:01
Minuten komme. Und jetzt berechnet er mir die Erreichbarkeit. Das erreiche ich alles auf der Straße in der Schweiz jetzt von Zürich. Da können wir im Hintergrund noch die aufschalten. Okay, gut.
41:21
Das ist ein neues Feature, was recht neu ist. Dann haben wir noch was Interessantes, ist die Zeitleiste. Die ist neu. Da kann man Zeitabhängige halt. Da müssen wir erstmal das richtige Projekt öffnen. Das muss natürlich vorbereitet sein. Da.
41:42
Hier haben wir Daten, die eine zeitliche Ablauf haben. Und dieser zeitliche Ablauf, der wird über die Zeitleiste definiert. Was heißt das? Ich muss in Kugis ein Projekt vorbereiten. Das können wir machen.
42:02
Ich zeige Ihnen das nur exemplarisch in Betracht der Zeit. Und das heißt, ich muss in einem Projekt, ich nehme irgendein Polygon-Projekt hier, das zum Beispiel auf der Kugis Server-Seite, die an den Dimensionen eine Zeit, eine Zeitebene hinzufügen,
42:21
die einen Startzeitpunkt oder einen Endzeitpunkt hat. Und wenn ich das gemacht habe, dann kann ich in Kugis, im QWC, die ist auch nicht gut, hier ist es auch sehr langsam, kann ich diese zeitabhängige Darstellung nutzen
42:40
und durchfahren lassen, kann ich das schauen, wie sich die einzelnen Objekte entwickeln, also zum Beispiel Baustellen, wann die da waren, wie die da waren, bestimmte Messwerte, was da immer in der Zeitabhängigkeit da ist. Es gibt sehr viele weitere Möglichkeiten. Es gibt Objektformulare, die Attributteile kann man separat bei den Drucken. Ich kann Ihnen nur empfehlen,
43:03
probieren Sie es aus. Das ist hier alles für Sie verfügbar, im QWC 2 Sourceboard CH. Und spielen Sie damit und ich denke, Zeit ist um. Ich hoffe, Sie haben so ein bisschen einen Eindruck bekommen, wie das Ganze funktioniert.
43:22
Sicher werden Sie auch probieren und damit mitspielen. Viel Vergnügen. Vielen Dank für die Präsentation. Erstmal großen Respekt daran, bei einer Live-Prosentation im Wim zu konfigurieren. Das mache ich auch
43:42
sonst immer nur mit Schweiß auf der Stirn. Nee, wenn man das System kennt und es gut ist, dann kann man das. Dankeschön. Wir haben keine Frage im Venuel. Wenn jemand hier Fragen hat, dann gerne.
44:05
Hallo. Ist gut. Ich hätte eine Frage. Können auch Straßenbefahrungsdaten von der Firma Inovitas oder Google Street View in Google's Webclient eingebunden werden?
44:21
Was sind das für Daten? Das sind hochauflösende Bilder, die in 3D-Format durch diese Straßenbefahrungen vorliegen. Also wie Google Street View zum Beispiel. Was heißt einbinden?
44:41
Also als JavaScript quasi... Dass man das Fenster bekommt und sieht, das kann man sicher machen. Das wäre die erste Frage. Die zweite Frage ist, wie funktioniert die Suchfunktion? Braucht man da einen Solar-Index oder kann man direkt auf den Tabellen
45:01
Genau, Sie haben die Möglichkeit, ganz viele verschiedene Suchmöglichkeiten. Sie können das Nominatim einfach nur nutzen, wie es angeboten wird. Das ist ja auch die Ford eingestellt. Aber Sie können auch über den Solar-Index eine eigene Suche definieren aus eigenen Daten. Das ist auch beschrieben auf der Webseite, wie das funktioniert.
45:22
Sie können also eine beliebige Suche definieren aus eigenen Daten. Du hast noch was zu sagen? Knopf drücken. Sandu, den Knopf noch.
45:43
Okay. Es gibt mehrere Möglichkeiten, eine Suche zu definieren. Zum einen die vorgekundigierte Solar-Suche, wie mit dem Dienst läuft. Sonst kann man auch wirklich klein-seitig über eine JavaScript-Schnittstelle eine eigene Suche definieren. Da gibt es auch eine vorgegebene Funktion, mit Rückgabewerten erfüllt werden müssen.
46:02
Aber was man dort drin macht, ist einem selbst zu belassen als Entwickler. Und da kann man wirklich mit beliebigen Suchdiensten vielleicht noch kurz zu der ersten Frage. Also QWC bietet eine JavaScript-API, damit man zum Beispiel die Position synchronisieren kann mit einer Drittanwendung, die in der Saat integriert ist.
46:23
Und was Sie so beschreiben, solche Ansätze gibt es bereits, dass man zum Beispiel auch den Mittelpunkt synchronisiert mit einer solchen Street-View-Anwendung oder etwas analoges, sodass man auch die Position synchronisiert und das Ganze koordinieren kann. Da hinten war noch eine Frage, glaube ich.
46:41
Hat sich noch jemand gemeldet gerade? Die Benutzerverwaltung ist ja so händisch. Ich komme von einer Hochschule, habe eine wechselnde Belegschaft.
47:02
Kann man älter abkoppeln und dann direkt in eine Gruppenrolle das Ganze übernehmen? Ja, Sie können sehr viele Authentifizierungsmöglichkeiten haben Sie letztendlich. Willst du dann noch was zu sagen? Ja, kann man. Ja. Sie können auch mit Zwei-Faktor-Authentifizierung arbeiten
47:22
und so weiter. Alles, was es momentan so aktuell gibt. Ist es auch 3D-fähig? Kann ich jetzt innerhalb der Anwendung, ohne sie zu verlassen, von einem 2 in 3D-Modus schreiben? Da kannst du was zu sagen. Aktuell nicht.
47:42
Ich hoffe, dass ich in einem Jahr alle Nächsten ein bisschen noch was zu geben. Wir sind dran. Es gibt Zusammenarbeiten, wo das draus entstehen sollte. Aber momentan ist es zweidimensional. Können Sie einen allgemeinen Ausblick
48:00
auf die Weiterentwicklung von Kugis Server und des Weblines geben? Das Problem ist, wir haben eigentlich keine Roadmap. Wir entwickeln nichts ohne Auftrag. Deswegen wissen wir nicht, was morgen für einen Auftrag reinkommt. Wenn der kommt und das Snapping zum Beispiel ist, die Stadt Zürich hat das Snapping gewollt,
48:22
dann machen wir das. Aber wir setzen uns jetzt nicht hin und fangen, ein Snapping zu entwickeln, weil wir es so toll finden, sondern wir müssen auch von was leben. Deswegen gibt es keine Roadmap in dem Sinne. Darum sagt er, er hofft, dass er es nächstes Jahr hat. Aber wenn es niemand haben will, dann gibt es es auch nicht. Das ist der Punkt. Es ist zwar ein Community-Projekt,
48:42
aber der Input ist relativ ... Wie viel Prozent machst du? Jürgen, du machst ein bisschen was? Nein. Mit 99 % bist du eigentlich der ... Ja. Der Input von der Community ist jetzt zum Beispiel diese Profillinie.
49:00
Das ist aus der Community gekommen oder Übersetzungen kommen aus der Community. Aber eigentlich das Meiste ist von ihm oder kommt von uns. Und die Services sind das Gleiche. Das wird auch von Sourceball alles gemacht. Ist das gut?
49:20
Sie hat noch eine Frage. Ja. Ist es auch möglich, im WebViewer eine Filterfunktion zu implementieren? Nach Werden filtert? Möglich ist das. Ja. Wie gesagt,
49:41
wenn Sie eine haben wollen, melden Sie sich bei uns. Es ist nicht ... Außer in der Attributtabelle ist eine Filterfunktion drin. Es kommt davon, dass der Instamiet bereit ist, dass er die Möglichkeit hat, eine Filterfunktion zu implementieren.
50:01
Das heißt, dass ich mich da in diesen Filtern einfach für den Plan zerstören. Ja. Weitere Fragen noch?
50:21
Sonst hätte ich noch eine. Es gibt ja verschiedene QGIS-Versionen, die so rumgeistern. Und es werden auch noch verschiedene benutzt von vielen Usern. Gab es da in der Vergangenheit irgendwie Probleme mit? Weil man benutzt ja erst mal, glaube ich,
50:41
dann eine, auf die dann zugegriffen wird. Und ja, das wäre eigentlich schon meine Frage, ob es da irgendwie Probleme gab in der Vergangenheit, die aufgetreten sind durch die verschiedenen QGIS-Projektversionen und so weiter und so fort. Probleme entstehen dann, wenn die Projektversion nicht der Server-Version entspricht. Ja, das meine ich, genau.
51:00
Ja, das kann sein. Ehrlich gesagt, jetzt habe ich kein konkretes Beispiel, aber sicher ist, wenn Sie mit QGIS 3.0 ankommen und mit 3.22 oder 3.30 arbeiten wollen, dann wird das Probleme geben. Weil QGIS ist ja nicht abwärtskompatibel. Also doch. Ja, nicht hundertprozentig abwärtskompatibel.
51:22
Das kann sein, dass da Probleme gibt. Aber wenn Sie Ihre Server-Umgebung auf einer QGIS-Version haben und die mit den QGIS-Projekten dieser Version beliefern, ist das kein Problem. Dann können Sie auch eine alte verwenden. Okay, also ist das jetzt nichts Konkretes, was jetzt in der Vergangenheit aufgetreten ist bei Ihnen? Nö, also wenn Sie ein Projekt,
51:43
ein altes QGIS-Projekt in eine neue QGIS-Version hineinladen können und das Projekt macht alles das, was Sie wollen, dann läuft das auch in der Server-Umgebung. Das sehen Sie dann ja. Und wenn es nicht das macht, was Sie wollen, dann funktioniert das auf unserer Server nicht, weil das das gleiche QGIS ist.
52:12
Ja.
52:28
Wenn man große Sprünge macht zwischen den QGIS-Versionen, dann stell dich mal hin und red' mal hin. Also, es geht darum, dass die QGIS-Projektdateien vielleicht
52:42
Probleme machen könnten. Das ist halt so, dass zwischen Folge-Versionen und auch ein bisschen älteren Versionen halt die Projektdateien migriert werden. Aber wenn man ganz alte Versionen hat und einen großen Sprung macht, dann könnte es sein, dass da irgendwas nicht funktioniert, weil das halt so nicht vorgesehen ist.
53:05
Vielleicht noch eine abschließende Bemerkung meinerseits. Also, du hast so eben gesagt, der Server ist überlastet, weil es so langsam war jetzt. Das kann viele Gründe haben. Es ist aber so, dass diese Umgebung sehr hoch skalierbar ist. Also, wir
53:21
betreiben QGIS Cloud und wir haben mehrere Hunderttausend Karten betreiben wir mit fast 80.000 Datenbanken, 60.000 Datenbanken. Und das alles funktioniert sehr performant und sehr schnell, weil man die ganze Umgebung auch mit Kubernetes orchestrieren kann. Das ist sehr, sehr gut. Also, sie können
53:41
von kleinen bis ins ganz große können sie diese Systemumgebung betreiben mit hoher Performance. Und das ist noch wichtig zu wissen. Das ist nicht ein kleines Spielzeug, was schnell mit Docker installiert ist. Da ist noch sehr viel mehr drin, wenn sie das wirklich produktiv einsetzen wollen und in einem großen Rahmen einsetzen wollen.
54:03
Okay, vielen Dank dafür.