srahn / kvwmap Goto Github PK
View Code? Open in Web Editor NEWInternet GIS Framework for MapServer with PHP
Home Page: http://kvwmap.de
Internet GIS Framework for MapServer with PHP
Home Page: http://kvwmap.de
Bisher war es so, dass man das Datum eines Datumsfeldes vollständig, also mit Jahr eingeben musste.
Installation von Composer und Einbindung von PHPWord um die Erstellung von OpenOffice-Text-Dokumenten aus kvwmap heraus zu ermöglichen.
Dieses Issue hat zunächst nur Testcharakter.
Anpassen der Funktion add_style in kvwmap.php damit man variable Styles erzeugen kann. Konfigurieren der Stylesettings in xplankonverter controller an Hand einer Umsetzungstabelle sld Styles to featuretype.
Validierung der Konvertierungsregeln anhand des GML-Schemas. Anlegen eines generischen Rahmenwerks zur Definition und Durchführung 'atomarer' Prüfungen nach einzelnen Kriterien, z.B. Prüfung auf Regelabdeckung eines GML-Pflichtfeldes, Prüfung auf Einhaltung von Codelisten usw.
Nicht umgesetzt wurden in diesem Issue
Funktion zum Anlegen von Layergruppen und Zuordnung zu Layerobergruppen.
Erstellen eines Plug-In mit dem Namen xplankonverter in kvwmap für das MORO Projekt der BBSR.
Die erstellten XPlan-GML Dateien geben bei auf XP_Objekt basierenden Objekten zuerst gehoertZuBereich statt andere Elemente aus XP_Objekt aus. Da in XPlanGML_Basisschema.xsd die Ordnung der Elemente durch ein Element festgelegt wird, muss diese zur korrekten Validierung der Daten eingehalten werden.
Statt folgender Abfolge:
<xplan:RP_NaturschutzrechtlichesSchutzgebiet> <xplan:gehoertZuBereich xlink:href="#rgerger" /> <xplan:text>bezeich xyz</xplan:text> <xplan:rechtscharakter>1000</xplan:rechtscharakter> </xplan:RP_NaturschutzrechtlichesSchutzgebiet>
muss die XML wie folgt aussehen:
<xplan:RP_NaturschutzrechtlichesSchutzgebiet> <xplan:text>bezeich xyz</xplan:text> <xplan:gehoertZuBereich xlink:href="#rgerger" /> <xplan:rechtscharakter>1000</xplan:rechtscharakter> </xplan:RP_NaturschutzrechtlichesSchutzgebiet>
xplan:text muss vor xplan:gehoertZuBereich kommen, da dies in der Sequenz von XPlanGML_Basisschema.xsd so festgelegt ist. Die Abfolge der Elemente baut sich dabei weiterhin in der Folge<XP_Objekt><RP_Objekt><RP_GeometrieObjekt><RP_Freiraum><RP_NaturschutzrechtlichesSchutzgebiet> den Ableitungen nach auf, d.h. xplan:rechtscharakter muss nach xplan:text und xplan:gehoertZuBereich kommen
(Die Sequenz der Elemente wird nicht für alle Validatoren getestet. Notepad++ testet sequence, während auf Saxon basierende Validatoren wie antillesXML sequence nicht testen)
Beim Zoom auf ein Objekt soll eingestellt werden können, dass ein bestimmter Karten-Maßstab erscheint.
Test ob alle 3 benötigten Datei eines Shape-Files mit hochgeladen wurden. Wenn nicht, Hinweis ausgeben.
Umlaute werden bei der Layergenerierung nicht korrekt wiedergegeben.
Aus Sachsen kam dazu folgender Fehler:
das Thema 01achsen- verursacht einen Fehler und kann nicht angezeigt werden. Folgende Fehlermeldung wird ausgegeben:
mapObj::draw(): [MapServer Error]: msDrawMap(): Failed to draw layer named '01achsen-'.mapObj::draw(): [MapServer Error]: msPostGISLayerWhichShapes(): Error executing query: ERROR: syntax error at or near "?"LINE 1: ... (select oid, * from xplan_shapes_62.shp_01achsen_?berreg wh...
Hier wird der Umlaut innerhalb des Layers als Fragezeichen, statt als ue wie in der Postgres-Datenbank wiedergegeben.
IE erkennt Dateien mit Mimetype application/json die im Response von Ajax Requests vom Server kommen als Dateien zum Download und führt die callback des Ajax Requests nicht aus.
Anpassung der Migration der Datenbank in /plugins/xplankonverter/db/postgresql/schema.
Um den Konverter zu migrieren, müssen die Schemata für xplankonverter, xplan_gml und xplan_uml gleichfalls in der korrekten Fassung übertragen werden.
Die Fehlermeldung "Sie haben keine Berechtigung von dem Rechner mit der IP: 188.14.187.4 auf die Stelle zuzugreifen." Erscheint zwar richtig, aber nicht in der Messagebox.
Wenn man dann eine andere Stelle auswählt, erscheint Quellcode im Auswahlfeld der GUI und der Button zum Absenden ist nicht zu erreichen.
Snippets lassen sich bisher nur als Template von Layern oder in PlugIns einbinden. Um auch eigene Inhalte an die Stelle der Karte und Legende zu bekommen ist ein Case zum Laden der Snippets notwendig, der dann über Menüpunkte aufgerufen werden kann.
Eine Datenbankfunktion muss liefern können welchen neuen Status eine Konvertierung nach bestimmten Aktionen haben muss. Diese kann dann verwendet werden um den neuen Status einzustellen. Ausgangsdaten sind:
Die Funktion wird als PostgreSQL-Funktion implementiert und erscheint als Migration in db/postgresql im Plugin xplankonverter
Die Konvertierungsstati sind wie folgt definiert:
in Erstellung
Wenn eine neue Konvertierung angelegt wurde und noch kein RP_Plan und keine Regel zur Konvertierung zugeordnet ist.
erstellt
Wenn mindestens ein RP_Plan oder eine Regel zur Konvertierung gehören und kein anderer Höherer Status gesetzt wurde.
Es wird immer auf diesen Status gesetzt nach folgenden Aktionen:
Angaben vollständig
Wenn Anforderung von "erstellt" gelten und zusätzlich alle Pflichtfelder ausgefüllt sind. Kann entfallen, weil schon beim Ausfüllen des Planes und der Regel geprüft wird ob die Pflichtfelder ausgefüllt sind.
in Konvertierung
Wärend eine Konvertierung und Validierung läuft. Kann auch entfallen, weil zwischen diesem Status und dem nächsten "Konvertierung abgeschlossen" oder "Konvertierung abgebrochen" keine Interaktionen passieren.
Konvertierung abgeschlossen
Wenn die Konvertierung und Validierung durchgelaufen sind und keine Validierungsfehler existieren.
Konvertierung abgebrochen
Wenn die Konvertierung und Validierugn durchgelaufen sind aber Validierungsfehler vorhanden sind.
in GML-Erstellung
Wenn ebendies passiert.
GML-Erstellung abgeschlossen
Wenn ebendiese abgeschlossen ist und keine Fehler aufgetreten sind.
Das sollte der Endzustand sein und die GML-Datei zum Download zur Verfügung stehen.
GML-Erstellung abgebrochen
Wie abgeschlossen, nur wenn Fehler dabei aufgetreten sind.
Ein Beispiel ist die Verwendung von RP_Freiraum und RP_NaturschutzrechtlichesSchutzgebiet im Beispielplan Havelland-Fläming des Landes Brandenburg.
Hier wird ein eigentlich für RP_NaturschutzrechtlichesSchutzgebiet bestimmtes Element sowohl für RP_Freiraum, als auch für das von RP_Freiraum abgeleitete Element RP_NaturschutzrechtlichesSchutzgebiet ausgelesen. Dies führt auch zu einer doppelten Verwendung der gml:id und der Geometrie, woran eine Validierung scheitert. Gleichfalls wird ein zusätzliches doppeltes Anführungszeichen (") in den Geometrieelementen erzeugt (da die gml:id mehrfach existiert). Die Datei ist somit nicht mehr well-formed. Der Fehler-Code sieht wie folgt aus:
<xplan:position>
<gml:MultiSurface srsName="EPSG:25833" gml:id="GML_059c1968-bd64-11e6-a824-03ce8583237c_geom_0"">
<gml:surfaceMember>
<gml:Polygon gml:id="GML_059c1968-bd64-11e6-a824-03ce8583237c_geom_1"">
<gml:exterior>
<gml:LinearRing>
Die Fehlerquelle hängt voraussichtlich mit der Klasse model/build_gml.php ~Zeile 400 ff. zusammen, könnte aber ein generelleres Problem darstellen, wenn Nicht-Abstrakte Elemente von Nicht-Abstrakten Elementen ableiten. In XPlanung betrifft dies die Klassen RP_Freiraum, RP_Verkehr, RP_Siedlung und davon abgeleitete Klassen
Die Funktionen, die sich hinter der api verstecken sind im Grund genommen auch anwendungsabhängig, da spezielle Layer benötigt werden. Darüber hinaus gibt es Angaben, die konfigurierbar sein müssen und können die angesprochenen Layer nicht geschützt werden.
Daher sollen diese in die Plugins verschoben werden. Im Konkreten Fall werden die API's für flurstuecke, Satzungsgebiete und zustaendigeStelle in das PlugIn baumfaellantrag verschoben. Da die API Anfragen sowieso nur auf den Case Layer-Suche_Suchen verweisen beschränkt sich der Anwendungsfall im Plugin auf das setzen der in der config.php angegebenen Kontanten für die Suche nach Daten.
Erzeuge ein Werkzeug mit dem für alle Tabellen in einem Postgres-Datenbankschema automatisch die dazugehörigen Layer und Attributdefinitionen erstellt werden. Die Eingabe ist der Schemaname, die Ausgabe SQL für die kvwmap MySQL-Datenbank.
Aufnahme von XPlan-konformen Shapefiles in der Datenbank
Variante: Xplan-konforme Shapes hochladen und einlesen.
Jeder Spalte in der Shapefile entspricht eine Spalte im Konverter. Shapefile Attributnamen für Attribute mit mehr als 10 Zeichen müssen konform mit den automatischen Attribut-Abkürzungen von pgsql2shp sein. Beispiel: gliederung1 -> GLIEDERUNG, gliederung2 -> GLIEDER_01.
Die Spalte GML-ID muss in dieser Abfrageform bereits existieren. Leere Felder in der Spalte GML-ID müssten hier jeweils befüllt werden? Dies ist notwendig um bei einer Rückkonvertierung und Wiedereinlesung o.ä. die Verbindung von Objekten zu Bereichen oder Textabschnitten zu behalten. Bei Einlesen u. Neugenerierung von GML-IDs müsste auch ein Fehler ausgegeben werden, wenn GML-IDs doppelt vorkommen (bzw. es wird automatisch eine neue GML-ID generiert?) -Daraufhin müssen Felder mit Abkürzungen im Hintergrund in Vollnamen umgewandelt werden (sonst funktioniert SELECT * FROM nicht)
Bei Abfrage kann dann SELECT * FROM ... benutzt werden.
Diese Variante wurde auf AG E-Government besprochen und von den Planträgern gewünscht.
(Low-Priority)Optionale weitere Variante: Umwandlung von Shapefiles mit XPlan-konformen Spaltennamen, jedoch mit entfernten leeren Spalten.
Bei Abfrage werden fehlende Spalten automatisch erkannt, jedes Attribut wird auf den jeweiligen gleichnamigen Attributtyp in der PostGIS-Tabelle übertragen
(Low-Priority)Optionale weitere Variante: Shapefiles mit korrekten Attributierungen aber falschen Spaltennamen (z.B. spalte RECHTSVBL statt RECHTSVERB für rechtsverbindlich mit Werten 1000, 2000 etc die XPlan entsprechen).
Hier könnten im Konverter 2 Spalten mit Checkboxen angelegt werden und so ein einfaches Mapping von Shapefile Spalten auf XPlan-Spalten ermöglicht werden.
Im Verzeichnis docs des xplankonverter plugin stehen viele große Dateien, die nicht zum Quellcode gehören. Diese sollen auf externe Stellen verschoben werden und da wo sie eingebunden werden sollen externe Links gesetzt werden.
Korrektur der Downloadpfade im XPlan-Konverter.
Für Menschen mit Seebehinderung ist es lästig sich immer die Operatoren im Suchformular vorlesen lassen zu müssen. Daher wäre es sinnvoll diese ausblenden lassen zu können.
Das Ausblenden der Operatoren im Suchformular sollte optional sein und mit dem Parameter hide_operators=true erfolgen können.
Vor, nach und an Stelle des Erstellens, Änderns oder Löschens eines Datensatzes sollen Funktionen in PHP ausführbar sein. Wenn z.B. nach dem Anlegen eines neuen Datensatzes ein neuer Layer hinzugefügt werden soll, kann das nicht über einen Datenbanktriggerin PostgreSQL gemacht werden. Im Layer-Editor soll also für jeden Layer eingestellt werden können wann und zu welchem Anlass welche Funktion mit welchen Parametern ausgeführt werden soll. An die Funktion wird je nach Anlass der alte oder neue oder beide Datensätze, sowie die angegebenen Parameter übergeben.
Anwenden der Before und After Trigger in den jeweiligen Funktionen zum
Um Nutzer, insbesondere Gast Nutzer automatisch in einem Cron-Job per SQL löschen zu können wäre es hilfreich, wenn diese mit ihren Relationen zu den Tabellen rolle, rolle_last_query etc. verküpft wären. Damit könnte man dann kaskadiert löschen.
gml_ids in Shapefile Tabellen zurückschreiben.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.