Admin-Dokumentation: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
(FAQ)
(FAQ)
Zeile 1.365: Zeile 1.365:
  
 
Diese Liste ist noch eine unsortierte und nicht zusammengefasste Liste von Fragen und Antworten. Es können also auch Doppelungen auftregen.
 
Diese Liste ist noch eine unsortierte und nicht zusammengefasste Liste von Fragen und Antworten. Es können also auch Doppelungen auftregen.
 +
<br><br>
 +
  
 
*Ich habe einen shape in die PostGIS-DB gespielt. Obwohl mit dem Shape die Sachdatenabfrage funktionierte, klappt sie jetzt plötzlich nicht mehr.
 
*Ich habe einen shape in die PostGIS-DB gespielt. Obwohl mit dem Shape die Sachdatenabfrage funktionierte, klappt sie jetzt plötzlich nicht mehr.
 
**Im Shape werden die Attribute grundsätzlich groß geschrieben, in der PostGIS immer klein. Es müssen also die Abfragetemplates (snippets) angepasst werden.
 
**Im Shape werden die Attribute grundsätzlich groß geschrieben, in der PostGIS immer klein. Es müssen also die Abfragetemplates (snippets) angepasst werden.
<br><br>
+
<br>
 +
 
 
*Der Layer ist nach Anhaken und Neuzeichnen nicht sichtbar, der Haken wird wieder rausgenommen.
 
*Der Layer ist nach Anhaken und Neuzeichnen nicht sichtbar, der Haken wird wieder rausgenommen.
 
**Möglicherweise sind die Endungen der zugehörigen Shapedateien nicht kleingeschrieben.
 
**Möglicherweise sind die Endungen der zugehörigen Shapedateien nicht kleingeschrieben.
 +
<br>
  
 
*Der Layer ist mit allem Drum und Dran angelegt und der Stelle zugeordnet. Trotzdem ist er nicht mal in der Legende zu sehen.
 
*Der Layer ist mit allem Drum und Dran angelegt und der Stelle zugeordnet. Trotzdem ist er nicht mal in der Legende zu sehen.
 
**Die entsprechenden Einträge in der Tabelle „u_rolle2used_layer“ fehlen.
 
**Die entsprechenden Einträge in der Tabelle „u_rolle2used_layer“ fehlen.
 +
<br>
  
 
*Obwohl ich mehrere Classes definiert habe, werden nicht alle Classes dargestellt.
 
*Obwohl ich mehrere Classes definiert habe, werden nicht alle Classes dargestellt.
 
**Die Expression der einzelnen Classes ist möglicherweise nicht richtig definiert. Wichtig: Wenn nach alphanumerischen Zeichenketten gesucht werden soll, müssen sowohl die eckigen Klammern des Attributs als auch die gesuchte Zeichenkette in Hochkomma gestellt werden.
 
**Die Expression der einzelnen Classes ist möglicherweise nicht richtig definiert. Wichtig: Wenn nach alphanumerischen Zeichenketten gesucht werden soll, müssen sowohl die eckigen Klammern des Attributs als auch die gesuchte Zeichenkette in Hochkomma gestellt werden.
 +
<br>
  
 
*Können ALK und ALB auch im Bezieher-Verfahren BZSN verwendet werden?
 
*Können ALK und ALB auch im Bezieher-Verfahren BZSN verwendet werden?
 
**Ja. Für das ALB wird der WLDGE2SQL-Konverter verwendet, für die ALK ab der Version 1.4.5 der EDBS2WKT-Konverter. Beide Konverter beherrschen das BZSN-Verfahren. Die Verarbeitung von ALB-Daten mittels WLDGE2SQL muss noch von Hand angestoßen werden, es ist noch keine automatisierte Batch-Verarbeitung möglich. Die Verarbeitung von ALK-Daten ist mit dem EDBS2WKT ab Version 1.6 im automatisierte Batch-Modus möglich.
 
**Ja. Für das ALB wird der WLDGE2SQL-Konverter verwendet, für die ALK ab der Version 1.4.5 der EDBS2WKT-Konverter. Beide Konverter beherrschen das BZSN-Verfahren. Die Verarbeitung von ALB-Daten mittels WLDGE2SQL muss noch von Hand angestoßen werden, es ist noch keine automatisierte Batch-Verarbeitung möglich. Die Verarbeitung von ALK-Daten ist mit dem EDBS2WKT ab Version 1.6 im automatisierte Batch-Modus möglich.
 +
<br>
  
 
*Was bedeutet „Authentifizierung“?
 
*Was bedeutet „Authentifizierung“?
 
**Seit sich jeder Nutzer schon beim Einstieg ins Systems authentifizieren muß, wird die Spalte Authentifizierung in Tabelle stelle nicht mehr verwendet.
 
**Seit sich jeder Nutzer schon beim Einstieg ins Systems authentifizieren muß, wird die Spalte Authentifizierung in Tabelle stelle nicht mehr verwendet.
 +
<br>
  
 
*Was bedeutet „alb_raumbezug“ und „alb_raumbezug_wert“?
 
*Was bedeutet „alb_raumbezug“ und „alb_raumbezug_wert“?
 
**Mit diesen Angaben kann man eine räumliche Einschränkung auf die ALB-Daten für eine Stelle vornehmen. In alb_raumbezug gibt man an auf welche räumliche Kategorie sich die Beschränkung bezieht. Dazu hat man die drei Möglichkeiten: Kreis, Amt und Gemeinde. In alb_raumbezug_wert gibt man schließlich die ID an. Z.B. Gemeinde 13051003 bedeutet, daß nur die ALB von Altenhagen eingesehen werden dürfen. Die Abfrage der Rechte erfolgt in der Methode: getFlurstKennzByRaumbezug($FlurstKennz,$Raumbezug,$Wert) der Klasse alb.
 
**Mit diesen Angaben kann man eine räumliche Einschränkung auf die ALB-Daten für eine Stelle vornehmen. In alb_raumbezug gibt man an auf welche räumliche Kategorie sich die Beschränkung bezieht. Dazu hat man die drei Möglichkeiten: Kreis, Amt und Gemeinde. In alb_raumbezug_wert gibt man schließlich die ID an. Z.B. Gemeinde 13051003 bedeutet, daß nur die ALB von Altenhagen eingesehen werden dürfen. Die Abfrage der Rechte erfolgt in der Methode: getFlurstKennzByRaumbezug($FlurstKennz,$Raumbezug,$Wert) der Klasse alb.
 +
<br>
  
 
*Muss ein Benutzer „Amt“ o.ä. eingerichtet werden? Welche Rechte bekommt er?
 
*Muss ein Benutzer „Amt“ o.ä. eingerichtet werden? Welche Rechte bekommt er?
 
**Benutzer sollten Personen sein. Was er dann tun darf hängt davon ab welche Rolle er spielen soll. Wenn alle im Amt NVP das selbe tun sollen mit dem System, werden Sie alle ein und der selben Stelle zugewiesen. Diese Zuweisung ist die Rolle. Gibt es z.B. die Aufgabe Katasterauskunft, dann heißt die Stelle Katasterauskunft und alle, die eine Katasterauskunft haben dürfen bekommen die Stelle zugewiesen in dem ihre Benutzer_ID mit der Stellen_ID in der Tabelle Rolle verknüpft werden.
 
**Benutzer sollten Personen sein. Was er dann tun darf hängt davon ab welche Rolle er spielen soll. Wenn alle im Amt NVP das selbe tun sollen mit dem System, werden Sie alle ein und der selben Stelle zugewiesen. Diese Zuweisung ist die Rolle. Gibt es z.B. die Aufgabe Katasterauskunft, dann heißt die Stelle Katasterauskunft und alle, die eine Katasterauskunft haben dürfen bekommen die Stelle zugewiesen in dem ihre Benutzer_ID mit der Stellen_ID in der Tabelle Rolle verknüpft werden.
 
**Wird zusätzlich eine Bauleitplanstelle benötigt für Auskünften aus B-Plänen, die vielleicht noch nicht fertig sind oder was auch immer an Einsicht schützenswert sind, kann eine Stelle Bauleitplanung eingerichtet werden und nur die da reinschauen dürfen bekommen eine Rolle dafür eingetragen. Ein Benutzer kann also verschiedene Rollen einnehmen und wie schon vorher beschrieben hängen nun verschiedene Eigenschaften an User, Rolle und Stelle. Die Rechte hängen ausschließlich an der Stelle und die Rechter eines Users erschließen sich über seine Vernüpfungen mit den Stellen (den Rollen, die er einnehmen darf).
 
**Wird zusätzlich eine Bauleitplanstelle benötigt für Auskünften aus B-Plänen, die vielleicht noch nicht fertig sind oder was auch immer an Einsicht schützenswert sind, kann eine Stelle Bauleitplanung eingerichtet werden und nur die da reinschauen dürfen bekommen eine Rolle dafür eingetragen. Ein Benutzer kann also verschiedene Rollen einnehmen und wie schon vorher beschrieben hängen nun verschiedene Eigenschaften an User, Rolle und Stelle. Die Rechte hängen ausschließlich an der Stelle und die Rechter eines Users erschließen sich über seine Vernüpfungen mit den Stellen (den Rollen, die er einnehmen darf).
 +
<br>
  
 
*Was sind Attribute, sind die Informationen aus den DBFs gemeint?
 
*Was sind Attribute, sind die Informationen aus den DBFs gemeint?
 
**Genau die. Später könnten das auch die Attribute der Tabelle oder Sicht (Abfrage) sein, die für ein Layer im MapServer von postgis bereitgestellt werden.
 
**Genau die. Später könnten das auch die Attribute der Tabelle oder Sicht (Abfrage) sein, die für ein Layer im MapServer von postgis bereitgestellt werden.
 +
<br>
  
 
*Was genau verstehe ich unter Stelle und Rolle und was hat beides mit dem Benutzer zu tun?
 
*Was genau verstehe ich unter Stelle und Rolle und was hat beides mit dem Benutzer zu tun?
 
**Eine Stelle solle eine Arbeitsstelle sein, also eine festgelegte Benutzeroberfläche mit allen daran hängenden Rechten an Funktionen, räumlicher Ausdehnung und Bedienelementen.
 
**Eine Stelle solle eine Arbeitsstelle sein, also eine festgelegte Benutzeroberfläche mit allen daran hängenden Rechten an Funktionen, räumlicher Ausdehnung und Bedienelementen.
 
**Die Rolle ist die Zuordnung eines Nutzers zur Stelle. Das heißt mehrere Nutzer können an der gleichen Stelle arbeiten, z.B. bei der Katasterauskunft. Einige Einstellungen sind an dieser Rolle gebunden, z.B. der gerade gewählte Ausschnitt oder die aktiven Layer. Wenn der Benutzer also gerade Katasterauskunft in Doberan spielt muß er den Fensterausschnitt nicht wechseln, den er gerade hatte als er in der Bauleitplanung für Kühlungsborn hatte. Einige Einstellungen sind nun aber doch an den Benutzer gebunden, z.B. die Fenstergröße. Denn der Benutzer sitzt ja in der Regel am gleichen Rechner. Welche Einstellung an welche Klasse gebunden sind sieht man wenn man sich die Attribute des Datenmodells anschaut oder besser noch die Klassen in user.php zum setzen der Einstellungen. Änderungen sind möglich und der Stein der Weisen sicher auch noch nicht gefunden. Flexibilität ist aber schon mal gegeben.
 
**Die Rolle ist die Zuordnung eines Nutzers zur Stelle. Das heißt mehrere Nutzer können an der gleichen Stelle arbeiten, z.B. bei der Katasterauskunft. Einige Einstellungen sind an dieser Rolle gebunden, z.B. der gerade gewählte Ausschnitt oder die aktiven Layer. Wenn der Benutzer also gerade Katasterauskunft in Doberan spielt muß er den Fensterausschnitt nicht wechseln, den er gerade hatte als er in der Bauleitplanung für Kühlungsborn hatte. Einige Einstellungen sind nun aber doch an den Benutzer gebunden, z.B. die Fenstergröße. Denn der Benutzer sitzt ja in der Regel am gleichen Rechner. Welche Einstellung an welche Klasse gebunden sind sieht man wenn man sich die Attribute des Datenmodells anschaut oder besser noch die Klassen in user.php zum setzen der Einstellungen. Änderungen sind möglich und der Stein der Weisen sicher auch noch nicht gefunden. Flexibilität ist aber schon mal gegeben.
 +
<br>
  
 
*SuSE, RedHat, Debian GNU/Linux, Free BSD,...: Gibts da aus Sicht des kvwmap irgendwelche Präferenzen?
 
*SuSE, RedHat, Debian GNU/Linux, Free BSD,...: Gibts da aus Sicht des kvwmap irgendwelche Präferenzen?
 
**Nein. Wäre nur schön, wenn bei der Distribution schon ein Apache Web Server und MySQL mit installiert ist. Getestet ist kvwmap unter SuSE Linux, RedHat und Windows XP, alle auch mit XAMPP.
 
**Nein. Wäre nur schön, wenn bei der Distribution schon ein Apache Web Server und MySQL mit installiert ist. Getestet ist kvwmap unter SuSE Linux, RedHat und Windows XP, alle auch mit XAMPP.
 +
<br>
  
 
*Ist bei der Installation von kvwmap in den Klassen einiger Anpassungsaufwand zu betreiben?
 
*Ist bei der Installation von kvwmap in den Klassen einiger Anpassungsaufwand zu betreiben?
 
**Eigentlich nur in der config.php
 
**Eigentlich nur in der config.php
 +
<br>
  
 
*Kann ich Anpassungen selbst vornehmen oder brauche ich erst eine PHP-Schulung?
 
*Kann ich Anpassungen selbst vornehmen oder brauche ich erst eine PHP-Schulung?
Zeile 1.408: Zeile 1.422:
 
**Größer bzw. umständlicher ist die Einrichtung der Datenbank. Dazu sollte man schon mal einen SQL-Client genutzt haben. Empfehle phpMyAdmin. Überhaupt ist eine Installation von XAMPP von apachefriends nützlich. Da ist apache und mysql und was man so braucht schon drin.
 
**Größer bzw. umständlicher ist die Einrichtung der Datenbank. Dazu sollte man schon mal einen SQL-Client genutzt haben. Empfehle phpMyAdmin. Überhaupt ist eine Installation von XAMPP von apachefriends nützlich. Da ist apache und mysql und was man so braucht schon drin.
 
**Komplikationen können vor allem bei der Kompilierung auftreten, besonders bei der Kompilierung des mapservers und phpMapScript aber 2 Wochen sollten reichen. Am meißten machen irgentwelche fehlenden oder falschen Links zu Bibliothen zu schaffen. Lieber in Ruhe die Installationsanleitungen durchlesen, als überhastet nur ./configure und make.
 
**Komplikationen können vor allem bei der Kompilierung auftreten, besonders bei der Kompilierung des mapservers und phpMapScript aber 2 Wochen sollten reichen. Am meißten machen irgentwelche fehlenden oder falschen Links zu Bibliothen zu schaffen. Lieber in Ruhe die Installationsanleitungen durchlesen, als überhastet nur ./configure und make.
 +
<br>
  
 
*Daten aus verschiedenen Fachämtern liegen als Shape vor. ALB wird für eine Gemeinde als WLDGE bestellt. ALK wird für dieselbe Gemeinde als EDBS vorliegen. Kann ich damit beginnen?
 
*Daten aus verschiedenen Fachämtern liegen als Shape vor. ALB wird für eine Gemeinde als WLDGE bestellt. ALK wird für dieselbe Gemeinde als EDBS vorliegen. Kann ich damit beginnen?

Version vom 13. Februar 2006, 13:18 Uhr

Inhaltsverzeichnis

kvwmap setzt unter anderem auf Apache, UMN-MapServer, php-Mapscript, MySQL, Postgres mit PostGIS und EDBS2WKT auf und beinhaltet WLDGE2SQL.
Dank an dieser Stelle für die Bereitstellung der genannten Software.

Dieses Manual wurde erstellt unter Mitwirkung von

Peter Korduan,
Markus Hentschel,
Hauke Christoph,
Heinz Schmidt

An der Entwicklung von kvwmap waren und/oder sind bisher beteiligt:

Peter Korduan,
Stefan Rahn,
Hauke Christoph,
Conrad Gühler,
Swen Hüner,

Zuarbeiten und Hinweise kamen bisher von den Katasterämtern Bad Doberan, Nordvorpommern, Ücker-Randow, Ludwigslust/Schwerin, Parchim, Waren-Müritz, Rügen und Rostock

Dienstleistungen zu kvwmap werden angeboten von:

Steinbeis Transfer Zentrum Geoinformatik Rostock/Greifswald
Prof. Ralf Bill
Status:  in Work!!
Hier soll eine Dokumentation zu kvwmap entstehen. Die Dokumentation ist noch nicht fertig.
Zuarbeiten, Hinweise und Korrekturvorschläge sind herzlich willkommen.

Für die Richtigkeit und Vollständigkeit der folgenden Angaben wird keine Garantie übernommen.


Übersicht

Hintergründe für die Entwicklung

Kvwmap ist eine auf den UMN-MapServer aufsetzende Entwicklung zur Erfassung, Verarbeitung, Analyse und Präsentation von raumbezogenen Information. Die Entwicklung besteht aus einer Reihe von PHP-Skripten, einem Schema für eine MySQL-Datenbank zur Speicherung von Benutzerdaten und einem Schema für eine PostgreSQL-Datenbank mit PostGIS Aufsatz zur Speicherung von raumbezogenen Daten. Die Anwendung nutzt PHP-MapScript für den Zugriff auf die Funktionen des UMN-MapServers und die pdf class von R&OS zur Erzeugung von PDF-Dokumenten.

Funktionalität im Client

Folgende Funktionalitäten werden von dem Client bereitgestellt:

Navigation

Zoomin.png Zoom in (durch Aufziehen einer Box)
Zoomin.png Zoom in (durch Klicken i. d. Karte bei wählbarem Zoomfaktor)
Zoomout.png Zoom out (durch Klicken i. d. Karte bei wählbarem Zoomfaktor)
Pan.png Pan (durch Ziehen des Bildschirmausschnittes an eine neue Stelle)
Pan.png Zentrieren (der zu klickende Punkt wird in Kartenmitte versetzt)
Jumpto.png Eingabe eines konkreten Koordinatenpaars ('Koordinatenzoom')
  • Eingabe eines konkreten Maßstabs
    Massstab.png
  • Tool-Tipps einblenden
    Tooltip.png

Abfragen

Das Abfrageergebnis wird in einem eigenen Fenster angezeigt. Spaltenbezeichnungen und Layouteinstellungen können in Vorlagen angepasst werden

  • Auswahl der abfragbaren Layer in Legende
  • Anklicken der entsprechenden Objekte Query.png
  • Aufziehen einer Box um betreffende Objekte Query.png
  • Abfrage der ALB-Daten beim Flurstückslayer, Ausgabe in PDF im amtlichen Format 30 und 35

Suche

  • Flurstücke (Gemeinde-Gemarkung/Flur/Flurstück)
  • Adressen (Gemeinde/Strasse/Hausnummer)

Messen

  • Koordinaten bestimmen
    Koordinaten.png
  • Streckenmessungen
    Mesure.png Tooltip.png

Weitere Funktionalitäten

  • Kartengröße wahlweise einstellbar
  • Kartenausschnitt als Rasterbild abspeicherbar
  • Bildschirm-Ansichten drucken (Browserfunktionalität)
  • Druck-Voransicht (Browserfunktionalität)
  • Layer wahlweise ein-/ausschaltbar
  • Hilfe-Funktion

Funktionen auf dem Server

  • Speicherung und Verwaltung der Karteneinstellungen
    In der MySQL-Datenbank werden die Informationen vorgehalten, die für eine Kartenausgabe erforderlich sind. Es handelt sich im Wesentlichen um die Daten, die sonst in der Map-Datei für den UMN-MapServer enthalten sind, nur dass sie in der Datenbank für verschiedene Karten nicht redundant abgespeichert werden.
  • Speicherung und Verwaltung von Benutzerdaten
    In der MySQL-Datenbank werden Daten
    • zu den Benutzern,
    • zu den Stellen und
    • zu den Rollen, die die Benutzer in den Stellen einnehmen können

abgespeichert.

  • Einlesen von ALB-Daten im WLDGE-Format in eine MySQL oder PostgreSQL-Datenbank

Fachschalen

Zu kvwmap gehört eine Reihe von Funktionen, die in Fachschalen zusammengefasst wurden. Eine Fachschale beinhaltet thematisch zusammengehörende Funktionen zur Erfüllung fachspezifischer Aufgaben. Die anderen Funktionen stehen parallel dazu immer zur Verfügung. Die benötigten Funktionen können über das frei konfigurierbare Menü thematisch zu einer Fachschale und über zugriffsrechtlich über die Rolle eines Benutzers in einer Stelle zugeordnet werden.

Notizen

Mit der Funktion Notizen können Textnotizen an jede beliebige Position innerhalb des Kartenbereichs einer Stelle gesetzt werden.

Voraussetzungen:

  • Der Stelle muss das Menü Notizen zugewiesen worden sein. (Tabelle: u_menue2stelle)
  • Dem Nutzer muss die Zuordnung der Stelle zum Menü Notizen zugewiesen sein. (Tabelle: u_menue2rolle)
  • Es muss ein Layer Notizen eingetragen worden sein.
  • Der Stelle muss der Layer Notizen zugewiesen sein.
  • Der Layer muss dem Nutzer zugewiesen worden sein.
  • Ebenso müssen Class und Label sowie die Zuordnung zur Klasse und Layer eingetragen sein. Nutzen Sie für all diese Eintragungen den Abschnitt Notizen aus mysql_install_help.php aus dem Verzeichnis layouts/sql_dumps
  • Es muss eine Datenquelle in der postgis Datenbank vorhanden sein. Das heißt die Tabelle für Notizen muss existieren. Wenn nicht kann diese mit dem SQL-Statement aus postgres_install.sql angelegt werden. (in layouts/sql_dumps)

Erst wenn diese Voraussetzungen erfüllt sind, erscheint das Menü zum Anlegen neuer Notizen.

Image002.jpg

Klicken Sie auf Notizen und legen eine neue Notiz an. Diese erscheint nach dem Absenden und dem aktiv schalten im Kartenfenster. Die zu definierende Textposition zeigt auf die Spitze des Bezugspfeils.

Image004.jpg

Wenn man Text in mehreren Zeilen haben möchte, muss man im Textfeld mit der Enter-Taste feste Zeilenumbrüche eingeben.

Image006.jpg

Wenn man eine Notiz ändern möchte macht man die Abfrageoption des Layers Notizen aktiv, wählt den Infoknopf und selektiert in der Karte die Notiz, die man ändern möchte. Dort kann man dann auf ändern klicken und kommt wieder in das Formular, welches zum anlegen neuer Notizen dient.

Image008.jpg

Kataster

Darstellung der ALK und ALB-Daten. Suche nach Flurstücken und Adressen aus der ALK und ALB. Automatisierte Fortführung des ALB-Bestandes über das einlesen von WLDGE-Dateien mit WLDGE2SQL-Konverter. Aktualisierung von ALK-Daten über EDBS2WKT-Konverter.

Nachweisverwaltung

Erfassung, Bearbeitung und Recherche von Daten über Dokumente der Katasterverwaltung zur Unterstützung der Auftragsvorbereitung bei Katastervermessungen

Allgemeine Beschreibung der Nachweisverwaltung

Die Nachweisverwaltung dient der digitalen Fortführung des Liegenschaftskatasters. Mit dieser Anwendung können alle Dokumente, die als Nachweis im Liegenschaftskataster geführt werden, zusammen mit Ihren beschreibenden Daten eingeflegt und danach recherchiert werden. Zu allen Dokumenten, die als Bilddatei vorliegen, wird neben dem Metadaten auch der Raumbezug abgespeichert. Der Raumbezug, wird in Form eines Polygons realisiert, das auf der Grundlage der ALK zuvor festgelegt und zusammen mit den Metadaten in die Datenbank eingepflegt wird. Mit Hilfe der Metadaten und des Raumbezugs, können dann die Dokumente recherchiert und ausgegeben werden.

Vorraussetzung für die Nutzung

Um die Nachweisverwaltung von kvwmap nutzen zu können müssen folgende Voraussetzungen gegeben sein.

  • Es muss eine Stelle eingerichtet worden sein, in der die Funktionen der Nachweisverwaltung genutzt werden können. Als praktisch erweist es sich, wenn eine Stelle für die Auskunft eingerichtet wird und eine für die Einpflege von Dokumenten, bzw. die Änderungsfunktion.
  • Es müssen Menüpunkte (Tabelle: u_menues) für die Funktionen der Nachweisverwaltung eingerichtet sein. Dazu kann man die entsprechenden SQL-Statements zu „Einträge der Menüpunkte“ in mysql_install.sql im Verzeichnis layouts/sql_dumps nutzen. Die ID´s für id und obermenue sowie die menueebene müssen natürlich an die eigenen Menüpunkte angepasst sein, die man vielleicht schon eingerichtet hat.
  • Die Menüpunkte müssen zu den entsprechenden Stellen zugeordnet sein.
  • Die Nutzer, die die Nachweisverwaltung nutzen können sollen müssen zu den entsprechenden Stellen zugeordnet sein.
  • Es muss eine PostgreSQL-Datenbank mit PostGIS Aufsatz installiert sein.
  • Die Tabellen für die Nachweisverwaltung müssen mit den entsprechenden Rechten in der PostGIS-Datenbank eingerichtet sein. Dazu nutzt man am besten die SQL-Vorlagen für die Nachweisverwaltung in der Datei postgres_install.sql im Verzeichnis layouts/sql_dumps

Auswählen der Stelle Nachweisverwaltung

Wenn Sie die Nachweisverwaltung nutzen möchten, müssen Sie sich unter der richtigen Arbeitsstelle im Menü "Stelle wählen" anmelden.

Dazu öffnen Sie die Startseite des Kartenserver und klicken auf den Link "Menü auswählen" im rechten oberen Teil des Browserfensters.

Es öffnet sich ein Fenster mit der Auswahl der Arbeitsstellen. Markieren Sie hier bitte die Arbeitsstelle "Nachweisverwaltung" und klicken Sie auf den Button "Abschicken" der sich unter dem Auswahlfeld der Arbeitsstellen befindet.

Mit dem Button "Abbrechen" gelangen Sie wieder auf die Startseite des Kartenservers.

Nach der Auswahl der Arbeitsstelle "Nachweisverwaltung" und dem betätigen des Button "Abschicken" gelangen Sie auf die Oberfläche der Nachweisverwaltung. Im linken Teil des Browser-Fensters hat sich des Menu Ihrer Fachschale angepasst und im Kopf des Browser-Fensters steht nun "Nachweisverwaltung".

Image010.jpg
  1. Schritt: Stelle wählen
  2. Schritt: Arbeitsstelle markieren und abschicken
  3. Schritt: Oberfläche der Nachweisverwaltung
Image012.jpg

Hinzufügen von Dokumenten

Um diese Funktion nutzen zu können, müssen Sie sich zuvor unter Nachweisverwaltung einwählen. Näheres finden Sie im Abschnitt "Einrichten der Stelle" beschrieben.

Als nächstes muss der Bereich für das einzupflegende Dokument eingerichtet werden. Dazu muss mir Hilfe der Navigationsellemente, im Grafikfenster, oder über den Menü-Punkt "Flurstücksuche" der ALK-Ausschnitt so einrichtet werden, das später das Polygon für den Raumbezug festgelegt werden kann.

Wenn Sie den ALK-Ausschnitt richtig festgelegt haben, finden Sie auf der rechten Seite des Browser-Fensters eine Menü Leiste mit der Rubrik Nachweisverwaltung. Kicken Sie den Menü-Punkt "Dokumente hinzufügen" unter der Rubrik Nachweisverwaltung an.

Jetzt erscheint die Oberfläche der Dokumenteingabe. Der ALK-Auschnitt muss bei diesem Schritt übernommen worden sein. In den übernommenen Ausschnitt sollte als erstes das Polygon mit den entsprechenden Werkzeugen im Grafikfenster festgelegt werden.

Danach folgt die Eingabe der beschreibenden Daten und die Wahl der Bilddatei für das einzupflegende Dokument. Hierbei ist zu beachten, das alle Eingaben getätigt und die hochzuladende Datei ausgewählt werden muss. Erst dann kann man den Datensatz mit dem Button "Senden" in die Datenbank einpflegen. Ist eine Eingabe fehlerhaft oder gar nicht angegeben worden, ändert sich die Hintergrundfarbe und es erscheint eine Fehlermeldung

Der Eintrag der Daten erfolgt in die Tabelle "n_nachweise", der jeweiligen Datenbank.

Sollte ein Nachweis mit einer Fehleingabe in die Datenbank eingepflegt worden sein, können Sie, wie unter "Ändern von Nachweisen" beschrieben, den Datensatz ändern.

Recherchieren von Nachweisen

Um diese Funktion nutzen zu können, müssen Sie sich zuvor unter Nachweisverwaltung einwählen. Näheres finden Sie im Abschnitt "Einrichten der Stelle" beschrieben.

Sind die erfolgreich unter der Arbeitsstelle Nachweisverwaltung angemeldet, erscheint im linken Teil des Browser-Fenster, unter Kategorie Nachweisverwaltung, der Menü-Punkt "Dokumentenrecherche".

Bevor Sie den Menü-Punkt anwählen, müssen Sie entscheiden, ob sie mit Hilfe eines Polygon (Box) recherchieren wollen. Ist das der Fall, müssen Sie zuvor den Kartenauschnitt mit Hilfe der "Flurstückssuche" oder der Graphikelemente im Grafikfenster zu dem entsprechenden Flurstück navigieren.

Wählen Sie jetzt den Menü-Punkt an und es öffnet sich die Oberfläche für die Dokumentenrecherche. Im Kopf steht "Dokumentenabfrage".

Zunächst, müssen Sie die Art der Nachweise auswählen, nach dem Sie recherchieren wollen wählen.

Als nächstes müssen Sie die Art der Recherche festlegen. Standardmäßig ist die Recherche mit Hilfe des Polygon (Box) eingestellt. Beachten Sie, das der Kartenausschnitt jetzt nicht mehr angepasst werden kann. Reicht der Kartenausschnitt für die Recherche nicht aus, müssen Sie erneut ins Menü "Nachweisverwaltung" wechseln und den Kartenausschnitt definieren.

Bei den weiteren Recherchemethoden kann entweder nach der individuellen Nummer eines einzelnen Nachweis gesucht werden oder nach den Nachweisen, die unter einer bestimmten Auftragnummer recherchiert wurden.

Image014.jpg

Nach dem das Polygon festgelegt ist und die Dokumnentenart ausgewählt wurde, kann man mit dem Button "Senden" die Recherche-Anfrage an die Datenbank senden.

Das Rechercheergebnis könnte wie folgt aussehen:

Image016.jpg

Mit dem Auswahl-Feld "markieren" oder "einblenden" unter dem Rechercheergebnis, können Sie durch Massenbearbeitung die Dokumentenarten im Rechercheergebnis entsprechend markieren/Markierung aufheben oder einblende/ausblenden. Mit dem Auswahl-Feld "markierte" können Sie die markeirten Nachweise entweder zu einer Auftragsnummer hinzufügen oder entfernen. Die Auftragsnummer muss zuvor über dem Rechercheergebnis ausgewählt werden.

Achtung: Beim hinzufügen von Nachweisen zu einem Auftrag, versichern Sie sich, das die Auftragsnummer über dem Rechercheergebnis richtig ausgewählt worden ist!!!

Für die Übersichtlichkeit können Sie die Spaltennamen des Rechercheergebnis anklicken und entsprechend das Recherchergebnis neu sortieren lassen.

Ändern von Nachweisen

Um Dokumente zu ändern muss eine recherche voraus gehen.

Recherchieren Sie den Nachweis, das einer Änderung unterzogen werden soll, wie zuvor unter "Recherchieren von Nachweisen" beschrieben.

In Ihrem Rechercheergebnis finden Sie das zuändernde Dokument, in diesen Zeile sich rechts außen drei Ikons für "Ansicht-()", "bearbeiten-()" und "löchen-()" befinden. Bewegen Sie den Maus-Cursor einfach auf eines der Ikons und kurz danach wird mittels ToolTip die Funktion des Ikons angezeigt.

Um ein Nachweis zu ändern, klicken Sie auf das Ikon "bearbeiten" in der Zeile des zu ändernden Nachweis der Rechercheergebnise. Sie gelangen zur Oberfläche der Dokumenteneingabe, wo die beschreibenden Daten zusammen mit den Raumbezug (Polygon) zu dem Nachweis angezeigt wird.

Die beschreibenden Daten und das Polygon können hier entsprechend, wie unter "Hinzufügen von Dokumenten" beschrieben, geändert werden. Um die Änderung zum Nachweis einzupflegen, betätigen Sie den Button "Senden". Wenn die korregierten Angaben richtig eingegeben sind, werden die Daten somit neu in die Datenbank eingepflegt. Kontrollieren Sie nach dem bearbeiten eines Nachweis Ihre Änderung!

Bodenrichtwerterfassung

Erfassung und Darstellung von Bodenrichtwertzonen mit Angaben über den Bodenwert, Erschließungsgrad, Sanierungsgebiet und Richtwertdefinition

Flächenversiegelung

Erfassung und Darstellung von Versiegelungsflächen auf der Grundlage von Luftbildern

Aufbau des PHP-Skript

Die Anwendung ist so programmiert, dass alle Aufrufe über die Datei index.php erfolgen. Die Seiten, die der Benutzer im Browser angezeigt bekommt, werden zur Laufzeit durch den Server zusammengesetzt.

index.php

Die Datei index.php startet mit dem Einbinden einer Konfigurationsdatei config.php und einer Startdatei start.php, unterscheidet und verzweigt in Anwendungsfälle mit einer switch-Anweisung und endet mit einer Enddatei end.php. Zur Unterscheidung der Anwendungsfälle nutzt das Skript den Parameter $go und $go_plus. Wenn $go_plus einen Wert enthält, wird dieser an $go angehängt. Wenn $go leer ist, wird ein Standardfall ausgeführt. In den jeweiligen Anwendungsfällen (cases), werden die entsprechenden Funktionen der Benutzeroberfläche als Methoden der Klasse GUI der Klassenbibliothek kvwmap.php aufgerufen.

config.php

Die Konfigurationsdatei enthält verschiedene Voreinstellungen zur Konfiguration der Anwendung, die in den PHP-Dateien verwendet werden. Die Voreinstellungen werden über das Setzen von Konstanten realisiert. Die Konstanten sind thematisch in Gruppen zusammengefasst und umfassen z.B. Einstellungen zu Dateipfaden, Layout und WMS-Capabilities Metadaten. Des Weiteren wird in der Konfigurationsdatei eingestellt, welche Klassenbibliotheken geladen werden sollen und diese eingebunden. Dazu gehört auch die Bibliothek php_mapscript.so bzw. dll. Außerdem wird ein Debugdatei-Objekt $debug aus der Klasse debugfile der Klassenbibliothek kvwmap.php mit einem vorgegebenen Debuglevel eingestellt, und Datenbankobjekte für den Zugriff auf die Benutzer-, Karten- und Geometriedaten initialisiert.

start.php

In der Startdatei wird zunächst das Objekt für die Benutzeroberfläche initialisiert. Die Klasse GUI für die Benutzeroberfläche ist in der Klassenbibliothek kvwmap.php enthalten. Anschließend werden alle an das Skript übergebenen Variablen aus der PHP-Systemvariable $_REQUEST an das Objekt $GUI in das Array $formvars übergeben. Wird die PHP-Anwendung über CLI aufgerufen, werden die Argumente aus der Kommandozeile an $formvars übergeben. In start.php kann eingestellt werden, das wievielte Argument an welches Element von $formvars übergeben werden soll. In weiteren Schritten werden die Datenbankobjekte an $GUI übergeben und geöffnet. Zur Identifizierung des zugreifenden Benutzers wird die vom Web-Server bereitgestellte PHP-Konstante REDIRECT_REMOTE_USER verwendet. An Hand von $login_name werden aus der Benutzerdatenbank alle Benutzerdaten ausgelesen und dem Objekt $user aus der Klassenbibliothek user.php zugewiesen, incl. der von ihm zuletzt genutzten Stelle. Soll beim aktuellen Aufruf keine neue Stelle eingestellt werden, wird diese Stelle für den Benutzer verwendet, ansonsten neu gesetzt. Vor dem Erzeugen des Stellenobjektes wird geprüft, ob der Nutzer auf die Stelle zugreifen darf. Abschließend wird für den Benutzer die Stelle als Rolle gesetzt, ein Menü-Objekt in $GUI->Menue initiiert und das Menü für die Stelle geladen. Je nach Einstellungen erfolgen zwischendurch Ausgaben in die Debug-Datei.

end.php

In der Datei end.php werden die offenen Datenbankverbindungen und die Debug-Datei geschlossen.

kvwmap.php

In der Klasse GUI sollten alle Funktionen enthalten sein, die die Interaktion des Benutzers mit dem Programm betreffen. Einige allgemeine Funktionen, wie das Lesen der Karteninformationen aus der Datenbank übernimmt die Klasse GUI, andere fachspezifische Aufgaben werden durch separate Objekte übernommen. Das gilt vor allem für die Funktionen der Fachschalen.

Installation

Übersicht

In diesem Abschnitt wird eine Übersicht darüber gegeben, was alles für kvwmap installiert werden sollte bzw. aus welchen Komponenten die Anwendung besteht.

Folgende Komponenten werden für die Nutzung dieses Internet-GIS vorausgesetzt:

  • Apache - Es ist eine Version >= 2.0.48 eingesetzt werden, damit die Umgebungsvariable REDIRECT_REMOTE_USER genutzt werden kann. Diese wird zur Identifizierung des Nutzers verwendet. (siehe auch Apache bug-report)
    Session sollte z.Z. noch aktiv geschaltet werden, aber die Anwendung wird umgestellt, so dass sie ohne Session läuft und alle relevanten Parameter der Benutzer in der Datenbank zwischengespeichert werden.
  • PHP - Die Entwicklung von kvwmap läuft derzeit auf der Version 4.3.7
    Zur Konfiguration von php wurden in unserem Beispiel folgende Parameter gesetzt.
    ./configure --enable-force-cgi-redirect --with-config-file-path=/opt/lampp/etc --with-regex=system *:--with-gd=/usr/local/gd --with-freetype-dir=/usr/local/freetype --enable-gd-native-ttf *:--with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/libjpeg --with-zlib --with-zlib-dir=/usr/local/zlib *:--enable-dbase –with-pgsql=/usr/local/pgsql
    Diese Parameter müssen Sie an Ihr System anpassen oder ggf. ergänzen.
    Ob PHP richtig kompiliert wurde erkennen Sie durch die Ausgabe eines phpinfo() Befehls. Erzeugen Sie dazu eine Datei mit folgendem Inhalt in einem Verzeichnis unterhalb von wwwroot.
     <?php
       phpinfo();
     ?>
  • oder fügen Sie dieses Programmschnipselchen in eine andere php Datei ein.
    Das sollte dann eine Ausschrift erzeugen, die folgendes beinhaltet:

PHP Version 4.3.10

System

Linux berg 2.6.5-7.97-smp #1 SMP Fri Jul 2 14:21:59 UTC 2004 x86_64

Build Date

Jul 20 2005 18:31:02

Configure Command

'./configure' '--enable-force-cgi-redirect' '--with-regex=system' '--enable-dbase' '--with-pgsql=/usr/local/pgsql' '--with-gd=/usr/local/gd'

Server API

CGI


In Configure Command sollte --with-pgsql=… stehen und weiter unten:

GD Support

enabled

GD Version

2.0 or higher

GIF Read Support

enabled

GIF Create Support

enabled

JPG Support

enabled

PNG Support

enabled

WBMP Support

enabled

mysql

MySQL Support

enabled

Active Persistent Links

0

Active Links

0

Client API version

3.23.49

MYSQL_MODULE_TYPE

builtin

MYSQL_SOCKET

/tmp/mysql.sock

MYSQL_INCLUDE

no value

MYSQL_LIBS

no value

pgsql

PostgreSQL Support

enabled

PostgreSQL(libpq) Version

8.0.1

Multibyte character support

enabled

SSL support

enabled

Active Persistent Links

0

Active Links

0

Directive

Local Value

Master Value

pgsql.allow_persistent

On

On

pgsql.auto_reset_persistent

Off

Off

pgsql.ignore_notice

Off

Off

pgsql.log_notice

Off

Off

pgsql.max_links

Unlimited

Unlimited

pgsql.max_persistent

Unlimited

Unlimited

Darin erkennt man ob MySQL, GD und PostgreSQL wirklich unterstützt werden und z.B. welche PostgresSQL-Version unterstützt wird.

Wenn die Angaben z.B. zu pgsql nicht zu finden sind, sollte man php mit --with-pgsql=/pgsql-install-pfad neu kompilieren und wieder die entstandene PHP aus /usr/local/php/sapi/cgi ins cgi-bin Verzeichnis vom Webserver kopieren und neu testen.

Wenn das auch nichts bringt, greift das Lampp vielleicht auf eine ganz andere php zu, z.B. auf eine dynamisch geladene Bibliothek (libphp4.so). Testen durch das umbenennen von php in cgi-bin in php-bla. Danach sollte die Fehlermeldung vom Apache kommen, dass er die php-Datei nicht ausführen kann, oder der Quellcode gesendet werden, was dem gleich kommt. Dann suchen nach dem wahren Ort wo lampp php ausführt.

Informationen darüber findet man in den Anleitungen zum Ausführen von php in

Apache. In der httpd.conf steht zum Beispiel:

LoadModule php4_module modules/libphp4.so Um pgsql in libphp4.so nutzen zu können müsste man die pgsql Unterstützung eben da hinein kompilieren. Alternativ dazu steht die Variante php als cgi-Version einzurichten mit den entsprechenden Optionen in der httpd.conf:


Action php-script /cgi-bin/php


  1. AddHandler cgi-script .cgi

AddHandler php-script .php .php3


Dann könnte man also php als CGI-Version kompilieren mit:

--with-regex=system

Dazu zur Sicherheit gibt man an:

--enable-force-cgi-redirect

Um anzugeben, wo die Konfigurationsdateien zu finden sind: --with-config-file-path=/opt/lampp/etc

  • gd - Version 2.0
  • MapServer - Version ab 4.2.0 wird empfohlen
    Zur Konfiguration von MapServer und damit auch phpMapScript wurden folgende Parameter gesetzt:
    OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT INPUT=EPPL7 INPUT=POSTGIS INPUT=GDAL INPUT=SHAPEFILE
    Welche Optionen für configure wirklich notwendig sind, hängt davon ab welche Datenarten und welche Services der MapServer unterstützten soll.
  • phpMapScript - ist in der Version: 1.194.2.3
    phpMapScript wird mit installiert, wenn die Option –with-php angegeben wird.
  • MySQL – irgendeine aktuelle Version, verwende noch Tabellentyp MyISAM, wer Transaktionen machen will braucht eine Version die InnoDB unterstützt.
  • phpMyAdmin
    Zur Administration der MySQL Datenbank kann phpMyAdmin installiert werden. Jedes andere DB-Frontend mit ODBC-Treiber für MySQL ist natürlich auch möglich. Ich benutze z.B. auch MS-Access mit MySQL-ODBC.
  • PostgreSQL - Version 7.4.3
    Die Version 7.4.3 soll fehlerfrei laufen. Mit der Version 8.0 hatte ich im Zusammenhang mit kvwmap aber auch noch keine Probleme.
  • pgAdmin III
    Zur Administration von PostgreSQL würde ich pgAdminIII empfehlen, aber es geht natürlich auch pgMyAdmin oder andere DB-Frontends mit ODBC für MySQL, z.B. MS-Access
    Quelle: http://www.pgadmin.org
  • ODBC-Treiber für PostgreSQL
    Für den Zugang zum Server von einem lokalen Recher aus, muss der ODBC-Treiber für PostgreSQL installiert werden.
    Quelle: http://www.postgresql.org/ftp/odbc/versions
  • PostGIS – Version 1.0
  • EDBS2WKT
    Konverter zum Einlesen von ALK-Daten in die postgresql Datenbank.
    Quelle: http://62.153.231.87/alk/edbs2wkt
    Vor dem Einlesen von ALK-Daten in die PostGIS-Datenbank sollte eben PostgreSQL mit PostGIS unterstützung installiert sein.
  • JUMP Als Frontend für die Änderung der raumbezogenen Daten kommt JUMP in Frage
  • PDFClass – installieren in www-root Verzeichnis

UMN-MapServer

Zur Dokumentation des UMN-MapServer nutzen sie die Dokumentation auf http://mapserver.gis.umn.edu/doc.html

Als Übersicht habe ich mal ein Installationskochbuch von Mike Elstermann zu SuSE hier aus der Mailingliste Mapserver-DE aufgenommen. Darin sieht man schön, was alles für Bibliotheken dazugehören.

MapServer-Installaton unter Suse 9.0

0. Systemvoraussetzungen:

  • Gcc, gcc++
  • make
  • freetype + devel
  • zlib + devel
  • libpng + devel
  • gd + devel
  • readline + devel
  • bison
  • flex

1. GD2.0.15

  • ./configure
  • make
  • make install

2. GEOS

  • ./configure
  • make
  • make install
  • /sbin/ldconfig

3. PostgreSQL

  • ./configure
  • make
  • make install
  • user postgres via yast hizufügen
  • mkdir /usr/local/pgsql/data
  • chown postgres /usr/local/pgsql/data
  • su - postgres
  • /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data &
  • /usr/local/pgsql/bin/createdb test
  • /usr/local/pgsql/bin/psql test

4. PostGIS

  • Kopieren ins CONTRIB-Verzeichnis der Quellen des PostgreSQL
  • tar -xvf
  • im Makefile "USR_PROJ=0" setzen, falls keine projection genutzt werden soll
  • make
  • make install
  • createdb yourtestdatabase
  • createlang plpgsql yourtestdatabase
  • psql -d yourtestdatabase -f postgis.sql (im CONTRIB/POSTGIS-CVS-Pfad)
  • psql -d yourtestdatabase -f spatial_ref_sys.sql

5. GDAL (v1.2.3)

  • ./configure
  • make
  • make install

6. PROJ.4 (v4.4.8)

  • ./configure
  • make
  • make install

7. Mapserver (v4.2.3)

  • ./configure
    • with-postgis=/usr/local/pgsql/bin/pg_config
    • with-gd=/usr/local
    • with-png=/usr/local
    • with-proj=/usr/local
    • with-ogr=/usr/local/bin/gdal-config
    • with-gdal=/usr/local/bin/gdal-config
  • make
  • make install

Anmerkung: Für Kvwmap muss mindestens noch –with-php dazu!

Quelle:

 Mike Elstermann, IT-Consult Halle GmbH, mike.elstermann@itc-halle.de

PostgreSQL mit PostGIS Erweiterung

PostgreSQL

Laden Sie sich PostgreSQL von http://www.postgresql.org

Zur Installation von PostgreSQL lesen Sie die INSTALL-Anweisung im Installationsverzeichnis von postgresql. Führen Sie aber zur Nutzung von Geos den configure Befehl folgendermaßen durch:

  1. LDFLAGS=-lstdc++ ./configure

an Stelle von einfach nur

  1. ./configure

Danach

  1. make
  1. make install

Zum Einrichten der Datenbank für kvwmap

  1. adduser postgres

Oft ist schon ein postgres user im system vorhanden, dann lassen.

Datenverzeichnis anlegen

  1. mkdir /usr/local/pgsql/data

Verzeichnis dem user postgres zuweisen

  1. chown postgres /usr/local/pgsql/data

Wechseln zum user postgres (als postgres anmelden)

  1. su – postgres

Datenbank initialisieren

  1. /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Postmaster starten. (Diese Zeile in Startskript von Rechner aufnehmen, sonst immer nach Neustart von Server neu starten)

  1. /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &

Kvwmap Datenbank anlegen.

  1. /usr/local/pgsql/bin/createdb <Datenbankname>

Als Datenbankname geben Sie den Namen an, den Sie in der config.php im kvwmap-Verzeichnis an die Variable $pgdbname übergeben haben. Z.B. kvwmapsp1-4-2

Zum Testen in Datenbank einloggen.

  1. /usr/local/pgsql/bin/psql kvwmapsp1-4-2

Alle Programme für postgres befinden sich in /usr/local/pgsql/bin.

Am besten den Pfad anpassen.

  1. export PATH=$PATH:/usr/local/pgsql/bin


Konfiguration

Der Datenbankserver von PostgreSQL wird über die Datei postgres.conf konfiguriert. Diese Datei befindet sich im mit „initdb –D Verzeichnis“ angelegten data-Verzeichnis, z.B. in /usr/local/pgsql/data. Wenn was nicht funktioniert, kann man mal dort nachschauen, ob alles korrekt eingestellt ist. z.B. wenn der Zugang zur pgsql Datenbank von einem entfernten Rechner aus mit pgAminIII nicht funktioniert liegt das entweder daran, dass die Firewall den Port 5432 nicht frei gibt, oder die Verbindungen nur vom localhost erlaubt sind. Das kann man mit dem Parameter listen_addresses einstellen in der postgres.conf. Für den Zugriff von entfernten Rechner muss für Postgres der Port 5432 offen sein (entsprechend /etc/services). In /etc/hosts sollte der Rechner eingetragen sein, der zugreifen will. In /etc/hosts.allowed können auch Zugangsbeschränkungen eingetragen werden.


Projektdatenbank Zur Einbindung von ALK-Daten in eine PostGIS-Datenbank sollte mit EDBS2WKT zunächst eine Datenbank neu erstellt werden, die die Tabellen für die ALK-Objekte enthält. Damit man diese Postgres-Datenbank dann mit kvwmap zusammen nutzen kann, muss man das Skript postgis_install.sql aus dem Verzeichnis /layouts/snippets von kvwmap in postgres ausführen. Danach sollten alle relevanten Tabellen in der Datenbank enthalten sein.

PROJ

Wenn Sie PROJ noch nicht für UMN-MapServer installiert haben, laden Sie sich PROJ von http://www.remotesensing.org:16080/proj

Entpacken von proj-version.tar.gz nach /usr/local

Erzeugen eines symbolischen Links:

  1. ln –s proj-version proj

Installieren mit:

  1. ./configure
  1. make
  1. make install

GEOS

Laden Sie sich GEOS von http://geos.refractions.net

Entpachen von geos-version.tar.gz nach /usr/local

Erzeugen eines symbolischen Links:

  1. ln –s geos-version geos

Installieren mit

  1. ./configure
  1. make
  1. make install

PostGIS

Man muss den PostgreSQL Source haben und PostgreSQL installiert haben.

Laden Sie sich PostGIS von http://postgis.refractions.net

Folgen Sie der Installationsanleitung in README.postgis

Zur Aktivierung der PROJ und GEOS Unterstützung in Makefile.config USE_PROJ und USE_GEOS auf 1 setzen und als Pfade /usr/local angeben.

Installieren mit: make -> make install

Zur Einrichtung der PostGIS Erweiterung für die kvwmap Datenbank:

  1. createlang plpgsql <Datenbankname>
  1. psql -f lwpostgis.sql -d <Datenbankname>

Als Datenbankname geben Sie den Namen an, den Sie in der config.php im kvwmap-Verzeichnis an die Variable $pgdbname übergeben haben. Z.B. kvwmapsp1-4-2

Anlegen der Tabellen für die Koordinatensysteme

  1. pgsql –f spatial_ref_sys.sql

Es muss auch ein Benutzer angelegt sein, mit dem Sie von kvwmap aus auf die Datenbank zugreifen. Nutzer hinzufügen:

  1. createuser –P <Benutzername>

<Benutzername> ist der Name unter dem Sie auf die Datenbank von kvwmap aus zugreifen, z.B. kvwmap Anschließend werden Sie nach einem Passwort <Passwort> für den Nutzer gefragt. Der hier angegebene Name bzw. Passwort wird dann in der config.php im kvwmap Verzeichnis auf die Variable $PostGISdb->user=’<Benutzername’ bzw. $PostGISdb->passwd='<Passwort>' gesetzt. 2.3.5 Datenbank Sichern und Wiederherstellen

Eine PostGIS Datenbank lässt sich mit dem pg_dump Befehl sichern. Dabei wird eine sql-Datei erzeugt, die später zur Wiederherstellung eines alten Standes verwendet werden kann. Um die Sicherung ausführen zu können melden Sie sich am Besten auf Ihrer Konsole als postgres an.

  1. su postgres

Anschließend wechseln Sie in ein Verzeichnis, in dem postges Schreibrechte hat, z.B.

  1. cd /usr/local/pgsql/data

Dort führen sie den dump Befehl aus.

  1. ../bin/pg_dump -f <dateinamedersicherung.sql> <datenbankname>

Zum wiederherstellen müssen Sie die alte Datenbank löschen.

  1. dropdb <datenbankname>

Anschließend legt man die Datenbank wieder an, fügt den PostGIS Support und die Referenzsystem hinzu und läd dann die Sicherung ein.

  1. createdb <datenbankname>
  1. createlang plpgsql <datenbankname>
  1. psql -f postgis.sql -d <datenbankname>
  1. psql –f spatial_ref_sys.sql –d <datenbankname>
  1. psql -f <dateinamedersicherung.sql> -d <datenbankname>
  1. vacuumdb -z <datenbankname>

Die Dateien postgis.sql und spatial_ref_sys.sql befinden sich in dem share Verzeichnis des pgsql Verzeichnisses. Die letzte Zeile dient dem Auffrischen der Tabellen und der Neuorganisation der Indizee und des Speicherplatzes.

Schritte zur Installation von kvwmap

Um kvwmap nutzen zu können müssen die oben beschriebenen Komponenten installiert sein.

Nachfolgend werden die Schritte beschrieben, die absolviert werden sollten, damit man im Client eine Karte sehen kann. Dazu gehören einige Einstellung die den Server betreffen. Diese werden in der Datei config.php vorgenommen. Die meißten Einstellungen werden über Konstanten vorgenommen. Wenn noch Einstellungen vorgenommen werden müssen, die irgentwo anders im Quellcode fest verankert sind lassen Sie es mich wissen, dann baue ich das auch als Konstane in die config.php ein.

Und es sind eine Reihe von Eintragungen in der MySQL-Datenbank vorzunehmen, z.B. das Anlegen einer Steller, Benutzer, Layer, Menüpunkte etc.

Verzeichnisse

  • Entpachen sie das Packet kvwmap_Version in das www-root
  • In www-root (z.B. /usr/local/httpd/htdocs) sollten folgende zusätzlichen Verzeichnisse angelegt werden:
  • /tmp – für die dynamisch generierten Bilder vom MapServer. Dies ist der Pfad der in der MapDatei für IMAGEPATH steht.
  • Auf der gleichen Ebene wie www-root (z.B. /usr/local/httpd) sollten folgende Verzeichnisse angelegt werden.
  • /logs – Log- und Debugdateien lässt sich in config.php ändern
  • /var – Datenverzeichnis, lässt sich auch in config.php anpassen.
  • Unter dem Verzeichniss var legen sie standardmäßig /data an und darunter die Verzeichnisse für Ihre Daten

config.php

Eine Reihe von Einstellungen für das Programm kann über die Werte von Konstanten in einer zentralen Konfigurationsdatei der config.php in der Wurzel des Programmverzeichnisses erfolgen. Im folgenden werden die definierten Konstanten und ihre aktuell eingestellten Werte angezeigt. Die Standardwerte stehen in Klammern dahinter. Einige Werte setzen sich aus anderen zusammen. Die Konstanten und Werte sind mit Punkt getrennt. Die Punkte gehören nicht zum Wert.

  • INSTALLPATH = /opt/lampp/ (/opt/lampp/)
  • WWWROOT = /opt/lampp/htdocs/ (INSTALLPATH.htdocs/)
  • URL = 139.30.110.27/ (localhost)
  • LOGPATH = /opt/lampp/logs/ (INSTALLPATH.logs)
  • LAYOUTPATH = /opt/lampp/htdocs/kvwmap_1.4.0/layouts/ (WWWROOT.APPLVERSION.'layouts/)
  • SNIPPETS = /opt/lampp/htdocs/kvwmap_1.4.0/layouts/snippets/ (LAYOUTPATH.snippets/)
  • diese Liste ist unvollständig

Datenbankeinträge für die Anzeige im Client

Um in der Benutzeroberfläche des kvwmap-Clients überhaupt etwas sehen zu können, müssen mindestens eine Stelle und ein Benutzer eingetragen werden und ein Layer angelegt sein. Eine Beschreibung zur Verwaltung von Benutzerdaten und Karteninformationen finden Sie unter Abschnitt 5.

Administration

Allgemeines zur Datenverwaltung

Hinweise zum Anlegen eines TILEINDEX für Rasterdaten

  • Die TILEINDEX Datei ist eine Shape-Datei, die die äußeren Umringe von mehren Rasterdateien enthält und Verweise auf dessen Speicherort. Dies ermöglicht die gekachelte Darstellung von flächendeckenden Rasterdaten und verringert die Zeit für die Darstellung des Rasterlayers. Man fasst damit auch mehrere Rasterdateien in einem Layer zusammen.
  • TILEINDEX erzeugen
  • Legen Sie in ArcView einen neuen Polygonlayer an.
  • Digitalisieren Sie die Rechtecke, die die darzustellenden Grafiken umschließen
  • erzeugen Sie eine neue Spalte vom Typ string mit der am Dateinamen orientierten Länge, z.B. 50 oder besser 100 Zeichen.
  • Die Bezeichnung der Spalte, in der die Verweise auf die Rasterdateien stehen, wird für den Parameter TILEITEM in der Map-Datei verwendet.

Anlegen eines TILEINDEX mit „gdaltindex“

  • Voraussetzung:
    Es liegen gekachelte und georeferenzierte Rasterdaten z.B. Luftbildkacheln vor. Die Georeferenzierung erfolgt bei TIFF-Daten über tfw-Dateien und bei JPEG-Daten über jgw-Dateien.
    Der Inhalt der tfw- und jgw-Dateien ist identisch. Tiff-Daten lassen sich somit in JPEG umwandeln, was Speicherplatz spart und kürzere Ladezeiten ermöglicht. Die tfw- und tif-Dateien bzw. die jpg- und die jgw-Dateien sind sinnvollerweise in einem Verzeichnis unterhalb des Datenpfades z.B. /opt/lampp/var/data abzulegen.


  • Erzeugung des Index:
    Infos über die Befehlssyntax von „gdaltindex“ erhält man durch Eingabe des Kommandos „gdaltindex“ ohne Parameter auf der Linux-Konsole.
    Der Tileindex lässt sich einfach im Datenverzeichnis z.B. mit dem Kommando „gdaltindex luftbilder.shp luftbilder/*.jpg“ erzeugen. Hierbei ist der Verzeichnisname mit den Daten „luftbilder“ und das erzeugte shape-file mit dem Index ist „luftbilder.shp“.


  • Einbindung als Raster-Layer:
    Es ist ein Rasterlayer in der Tabelle layer MySQL-Datenbank anzulegen. Der Tileindex muss jetzt lediglich in der Spalte „tileindex“ der Tabelle eingetragen werden. In diesem Beispiel ist der Eintrag „luftbilder.shp“ vorzunehmen.


  • Mögliche Probleme:
    Wenns nicht gleich funktioniert sind zunächst die Rechte der Daten zu überprüfen und ggfs. mit „chmod“ z.B. auf 755 zu setzen.
    Die Erzeugung eines Index über grössere Datenbestände kann schon mal etwas dauern. Das Kommando sollte dann aber ohne Fehlermeldungen durchlaufen.


Hinweise zur Vergabe von Verzeichnis und Dateinamen

Die Verwendung von Umlauten, Leerzeichen, Schrägstrichen oder sonstigen Sonderzeichen sollte vermieden werden.

Stelle

Neue Stelle anlegen

Zum Anlegen einer neuen Stelle kann der Menüpunkt „Stelle Anlegen“ aus der Menügruppe „Stellenverwaltung“ verwendet werden.

Zu einer Stelle können neue Menügruppen, Layer und Benutzer hinzugefügt werden.

z.Z. können nur ganze Gruppen von Menüs hinzugefügt werden. Wenn einzelne Menüpunkte hinzugefügt werden sollen, am besten den Menüpunkt in der Tabelle u_menues anlegen und einer Gruppe zuordnen, Reihenfolge beachten. Anschließend diese Gruppe aus der Stelle löschen und wieder neu hinzufügen. Dann werden alle Untermenüs auch zu der Stelle übernommen.

Die Rechte der Nutzer in den Stellen werden allgemein durch die Zuordnung der Layer und Menüpunkte geregelt. Die Rechte an extra in der Tabelle u_funktionen eingetragenen Funktionen müssen extra in die Tabelle u_funktionen2stelle eingetragen werden.

Stellen anzeigen

Über den Menüpunkt „Stellen anzeigen“ der Menügruppe Stellenverwaltung können Stellen angezeigt werden, gelöscht und geändert werden.

Stellen ändern

Zur Änderung von Stellen siehe „Neue Stelle anlegen“.

Maximale Ausdehnung des Kartenfensters für eine Stelle ändern

Die Koordinaten für die maximale Ausdehnung des Kartenfensters einer Stelle läßt sich über die Angaben zu minxmax, minymax, maxxmax, maxymax in der Tabelle stelle in der Zeile der entsprechenden Stelle ändern.

Nutzerverwaltung

Authentifizierung über den Web-Server

Nutzer von kvwmap müssen sich authentifizieren, damit die Anwendung weiß wen sie vor sich hat. Alle benutzerseitigen Einstellungen werden über den Benutzernamen gesteuert, die der Web-Server liefert, wenn die Authentifizierung anerkannt wurde.

Es gibt mehrere Möglichkeiten der Authentifizierung mit Apache siehe Dokumentation: http://httpd.apache.org/docs/2.0/howto/auth.html

Neben der Authentifizierung über das Standardmodul mod_auth kann auch mod_auth_mysql verwendet werden. Wir der Name schon sagt erfolgt dabei die Authentifizierung über eine MySQL-Datenbank und ist das sinnvollerweise die kvwmap-Datenbank, wenn man nicht schon eine andere Datenbank mit den Benutzern hat.

Authentifizierung mit MySQL

mod_auth_mysql.so sollte im Ordner modules vom apache Verzeichnis zu finden sein. Wenn nicht downloaden und compilieren nach Installanweisungen.

Man muss zunächst in der httpd.conf das Modul mod_auth_mysql einbinden

Also das Komentarzeichen von folgender Zeile wegnehmen:

LoadModule mysql_auth_module modules/mod_auth_mysql.so

Dadurch wird in der Zeile:

<IfModule mod_auth_mysql.c>
   Include conf/mod_auth_mysql.conf
</IfModule>

Ebendieses Konfigurationsdatei geladen. Der entscheidende Teil für kvwmap sieht folgendermassen aus und muss für die eigene Version, das eigene Verzeichnis angepasst werden. Hier ist kvwmap_1.5.7 das zu schützende Verzeichnis


<Location /kvwmap-1.5.7>
 AuthName "MySQL Secured Place"
 AuthType Basic
 require valid-user
 AuthMySQLHost localhost
 # Der Name der Datenbank wo die Nutzer drin stehen.
 AuthMySQLDB kvwmap
 # Der Name des Nutzers, der sich da anmelden soll bei der Datenbank zum   nachsehen.
 AuthMySQLUser apachedemon
 AuthMySQLPassword # Das Passwort von apachedemon wenn es eins hat.
 AuthMySQLUserTable user # Die Tabelle wo die Nutzer drin stehen.
 AuthMySQLNameField login_name # Die Spalte wo die loginnamen drin stehen.
 AuthMySQLPasswordField passwort # Die Spalte wo die Passwörter drin stehen.
 ## AuthMySQLGroupTable user_grp (here do not modify this for the simple test!)
 ## AuthMySQLGroupField group (here do not modify this for the simple test!)
 AuthMySQLPwEncryption none # Hier kann man einschalten, das verschlüsselte
 #Passwörter erkannt werden. (z.B. md5 oder crypt)
</Location>

Infos unter http://modauthmysql.sourceforge.net/CONFIGURE

Nutzer anlegen

Image018.jpg

Zum Anlegen eines neuen Nutzers wählt man den Menüpunkt „Nutzer anlegen“ im Obermenü Nutzerverwaltung. Es erscheint der Benuterdaten Editor wie in Abbildung dargestellt. Man trägt mindestens die Werte mit * ein und sendet das Formular mit „Als neuen Nutzer eintragen“ ab. Der eingetragene Nutzer hat anschließend sofort zugriff auf die Stellen, die im Feld „Berechtigte Stellen“ zugewiesen wurden.

Nur beim erstmaligen anlegen muss man das Password festlegen. Die Rechte des Nutzers werden über die Zuordnung der Rechte zu den Stellen definiert.

Nutzer ändern

Um Nutzerdaten zu ändern wählen Sie erst „Nuter anzeigen“ und dann „ändern“ oder „löschen“.

Layer

Zeichnungsreihenfolge von Layern Ändern

  • Schlagen Sie die ID der Stelle in der Tabelle stelle nach.
  • Ändern Sie die Reihenfolge, indem Sie die Zahlen in der Spalte drawingorder der Tabelle used_layer entsprechend ändern.
  • Der Layer mit der kleinsten Nummern wird zuerst gezeichnet. Die anderen Layer werden nach der Reihenfolge der Nummern aufsteigend gezeichnet und überzeichnen die vorherigen.

Layer zu einer Stelle hinzufügen

  • Nachschlagen der Stellen_ID in Tabelle stelle, von der Stelle, zu der ein Layer hinzugefügt werden soll.
    Wenn die Stelle noch nicht vorhanden ist, siehe neue Stelle anlegen.
  • Nachschlagen der Layer_ID in Tabelle layer vom Layer, der zur Stelle hinzugefügt werden soll.
    Wenn der Layer noch nicht vorhanden ist, siehe neuen Layer anlegen.
  • Eintragen der Zugehörigkeit des Layers zur Stelle in der Tabelle used_layer
    • used_layer_id = wird automatisch vergeben (Autowert, Inkrementell)
    • Stelle_ID = nachgeschlagene Nummer für Stelle
    • Layer_ID = nachgeschlagene Nummer für Layer
    • Status = 0
    • aktivStatus = 1 wenn der Layer gleich sichtbar sein soll, sonst 0
    • drawingorder = hängt davon ab an welcher Stelle der Reihenfolge der Layer gezeichnet werden soll. Schlagen sie die schon eingetragenen Nummern für die anderen Layer der Stelle in der Tabelle used_layer nach. Kleinere Nummern werden zuerst gezeichnet, größere später und überzeichnen vorherige. Rasterdaten sollten zuerst gezeichnet werden, da sie sonst andere Layer überdecken. siehe auch Zeichnungsreihenfolge von Layern Ändern
    • Die anderen Felder können Sie erstmal so lassen
    • Klicken Sie im Browser auf "neu Laden" aktivieren Sie den Layer und klicken noch mal "neu Laden". Ändern Sie ggf. nach Wunsch die Reihenfolge der Layer.

Neuen Layer anlegen

Vektor Layer

  • Dateien des Layers in das Datenverzeichnis data des Servers kopieren. Das befindet sich in der www-root in der Regel unter /usr/local/httpd/htdocs/ oder bei XAMPP unter /opt/lampp/htdocs.
    Wenn es sich um eine neue Datenkategorie handelt, z.B. Daten zur Bebauungsplanung sollte aus Gründen der Übersichtlichkeit ein extra Ordner angelegt werden. Die Hinweise zur Vergabe von Datei- und Verzeichnisnamen sollten beachtet werden.
  • Neuen Layer in der Tabelle layer anlegen
    • Layer_ID wird von der Datenbank selbst vergeben.
    • Name ist der Name der dann auch in der Legende erscheint
    • Datenart
    • 1 wenn es ein Punktlayer ist
    • wenn es ein Polygonlayer ist
    • wenn es ein Rasterlayer ist
    • In Gruppe wird die Zugehörigkeit zur Datenkategorie gekennzeichnet. (Rote Bezeichnung in der Legende)
    • pfad kann frei bleiben
    • In Data wird der Speicherort der Dateien eingetragen ohne Dateiendung. Wenn die Daten in einem Unterverzeichnis liegen, dieses mit angeben, z.B. Umwelt/biotope
    • tileindex und tileitem entfällt für Vektorlayer
    • In der Spalte labelitem steht der Name der Spalte aus der später mal Angaben für die Beschriftung des Layers entnommen werden sollen.
    • In der Spalte labelmaxscale gibt man an, ab welcher Maßstabszahl der Layer frühestens gezeichnet werden soll.
  • Klasse für Layer definieren
  • Layer zur Stelle hinzufügen
  • Für die Sachdatenabfrage des neuen Vektorlayers ist ein Template (Vorlage) anzulegen in dem definiert wird welche Sachdaten aus der DBF-Tabelle des Layers mit welchem Layout dargestellt werden soll.
  • Am einfachsten ist es ein Template eines schon vorhandenen Layers zu kopieren. Der Name der Template-Datei muss dem Namen des Layers entsprechen, die Endung .php besitzen und im Verzeichnis kvwmap_Versionsnummer/layouts/snippets liegen. Wenn Sie die Konstanten LAYOUTPATH und/oder SNIPPETS in der Datei config.php anpassen, kann das Templatefile auch an anderer Stelle stehen.

RasterLayer

  • Rasterdateien in das Datenverzeichnis des Web-Servers kopieren.
    Wenn es sich um eine neue Datenkategorie handelt, z.B. Daten zur Bebauungsplanung sollte aus Gründen der Übersichtlichkeit ein extra Ordner angelegt werden. Die Hinweise zur Vergabe von Datei- und Verzeichnisnamen sollten beachtet werden.
  • Wenn die Rasterdaten in einer gekachelten Darstellung angezeigt werden sollen (TILE) muss auch eine Shape-Datei mit den Verweisen zu den Rasterkarten in das Datenverzeichnis kopiert werden. Die Hinweise zum Anlegen eines TILEINDEX sind zu beachten.

Beschriftung für Layer anlegen

  • Spalte des Layers auswählen welche den Text für die Beschriftung enthält.
  • Eintragen des Spaltennamens in die Tabelle layer in das Feld labelitem.
  • Eintragen der maximalen Maßstabszahl in der die Beschriftung noch angezeigt werden soll in das Feld labelmaxscale
  • Eintragen des Styles (Label_ID) für die Beschriftung in der Tabelle classes für die entsprechende Klasses des Layers, die Beschriftet werden soll in der Spalte Label_ID.
  • Entweder eine vorhandene Label_ID aus der Tabelle labels übernehmen oder eine neue Labeldefinition anlegen.

Neue Klasse für Layer anlegen

  • Eintragen der neuen Klasse in die Tabelle classes.
  • Die Class_ID wird automatisch vergeben.
  • Der Name ist der Name unter der die Klasse in der Legende aufgeführt ist.
  • Bei Layer_ID geben Sie die Nummer des Layers ein, zu dem die Klasse gehören soll.
  • Für Style_ID geben Sie eine Nummer die das Aussehen der Zeichnungselemente der Klasse definiert. Styles sind in der Tabelle Styles vorgegeben. Siehe neuen Style anlegen.
  • In der Spalte Expression wird der logische Ausdruck ausgegeben, der die Klasse hinsichtlich seiner Sachdaten definiert. z.B. werden mit "Objart = 1000" nur die Features angezeigt, die in der Spalte der DBF-Datei eine 1000 stehen haben.
  • Die Spalte Label_ID ist für die Beschriftung der Klasse. siehe Neuen Beschriftungstyp einrichten

Neuen Layer aus PostGIS anlegen

  • Es gibt verschiedene Möglichkeiten Daten in PostGIS einzubinden um diese als Layer für MapServer nutzen zu können.
    Man kann z.B. von einer vorhandenen Shape-Datei aus mit shp2sql eine SQL-Datei generieren und die Tabelle mit samt Geometryspalte, Index und Inhalt erzeugen.
    Dazu wird das in PostGIS mitgelieferte Skript shp2sql ausgeführt (siehe mapserver-wiki) .
  • shp2pgsql <shapedateiname> public.<tabellenname> | psql -d <datenbankname>
  • Wer die Tabelle selbst definieren will geht folgendermassen vor:
    • Definieren der Tabelle und absenden über einen SQL-Datenbank Client
      Die möglichen Datentypen finden Sie in der Dokumentation zu postgres.
      Nachfolgend ein Beispiel für eine Tabelle zur Aufnahme von bodenrichtwertzonenn.


CREATE TABLE bw_bodenrichtwertzonen(
  oid int8 NOT NULL DEFAULT 0,
  gmeinde_id int8 NOT NULL DEFAULT 0,
  zonennummer int8 NOT NULL DEFAULT 0,
  standort varchar(255),
  richtwertdefinition varchar(50),
  bodenwert int8,
  erschliessungsart varchar(20),
  sanierungsgebiet varchar(50),
  sichtbar bool NOT NULL DEFAULT true,
  stichtag date
);


ALTER TABLE bw_bodenrichtwertzonen OWNER TO doberan;

Die Tabelle muß die Systemspalte oid besitzen um von MapServer gelesen werden zu können. Wenn man nicht WITHOUT oid angibt, wird dieser Index intern selbständig angelegt und man muß sich nicht darum kümmern. Die Anzahl der Objekte kann dann 2*2147483647 betragen. Mehr mehr will muß diesen Schlüssel selbst anlegen. (siehe auch PostgreSQL Doku)

  • Anschließend werden die Geometry-Spalten angelegt.
    Im Beispiel eine für den Umring der Bodenrichtwertzone mit EPSG-Code Gauß/Krüger 4. 3°-Streifen auf

Krassowskie-Ellipsoid (42/83):

SELECT AddGeometryColumn('public', 'bw_bodenrichtwertzonen','umring',2398,'POLYGON', 2)

und eine für die Position der Beschriftung:

SELECT AddGeometryColumn('public', 'bw_bodenrichtwertzonen','textposition',2398, 'POINT', 2)

Der Syntax ist in der PostGIS Dokumentation beschrieben.

Im nächsten Schritt werden Geometryindizee über die Tabellen gelegt.

CREATE INDEX bw_bodenrichtwertzonen_umring_gist ON bw_bodenrichtwertzonen USING GIST ( umring GIST_GEOMETRY_OPS );

CREATE INDEX bw_bodenrichtwertzonen_textposition_gist ON bw_bodenrichtwertzonen USING GIST ( textposition GIST_GEOMETRY_OPS );

Eine Anleitung dazu findet man unter GIST-Indexes in der PostGIS-Doku

  • Als nächstes kann dann diese Tabelle als Layer in die Map-Datei oder Objekt Definition eingebunden werden.
    Das erfolgt über eine Abfrage. Was genau in dem Layer dargestellt werden soll, wird in der Anweisung Data des Map-Objektes definiert.
    Wenn z.B. die Umringe im Layer dargestellt werden sollen muss in es folgendermaßen heißen.
  • CONNECTION "user=<datenbanknutzername> dbname=<datenbankname> host=<hostname>"
  • DATA "umring FROM bw_bodenrichtwertzonen"
  • Das Äquivalent in kvwmap wird in der Tabelle layer definiert. Der SQL-Text "umring FROM bw_bodenrichtwertzonen" wird in der Spalte Data abgelegt.
    Der Datentyp ist hier ein Polygon also Nummer 2. Connectiontyp 6 definiert, daß es sich um einen PostGIS Layer handelt und in Connection kommt ein String der Form:
    "user=<benutzername> dbname=<datenbankname>".
  • Wenn die Texte genau an den Positionen der abgespeicherten Punkte ausgegeben werden sollen nutzt man die Abfrage:
  • textposition FROM bw_bodenrichtwertzonen
  • Über eine WHERE Klausel in der SQL-Abfrage die Data zugeordnet wird, kann eine Selektion erfolgen. Um z.B. nur die Bodenrichtwertzonen zum Stichtag 31.12.2002 darzustellen gibt man folgendes ein:

umring FROM bw_bodenrichtwertzonen WHERE stichtag = '2002-12-31'

  • Möchte man einen Layer nicht von einer bestehenden Tabelle erzeugen, sondern von einer in PostgreSQL vorgefertigten Sicht, muss man dafür gesorgt haben, dass die Geometriespalte in der Abfrage auch in der Tabelle geometry_colums aufgeführt ist, sonst kann die srid nicht zugeordnet werden.


Wie eine räumliche Einschränkung erfolgt ist im Abschnitt Retrieving GIS Data in der PostGIS-Doku beschrieben

Neuen WMS-Layer anlegen

Zum Anlegen eines WMS-Layers muss man den getMap Request des WMS kennen und in das Feld Connection der Tabelle Layer eintragen. Die Felder pfad und data bleiben hier leer. Der ConnectionType ist 7 und als Datentyp wird 3 wie Raster gewählt. Alle anderen Einstellungen erfolgen wie bei einem normalen Rasterlayer. Queryable sollte auf 0 gestellt werden solange getFeatureInfo von kvwmap noch nicht unterstützt wird.

Der getMap Request braucht kein width, hight und BBox enthalten, das schickt MapServer mit z.B. so: https://www.wmsserver.de/cgi-bin/mapserv?map=/srv/www/htdocs/wms/mywms.map&request=getMap&Version=1.1.1&layers=mylayer

SQL-Skriptunterstützung zum Anlegen eines neuen Layers

Insbesondere für neue Fachschalen ist es nützlich, wenn das Anlegen von Layern für eine Vielzahl von Stellen automatisiert werden kann. Dazu wurden eine Reihe von SQL-Befehlen in die Datei mysql_install.sql gepackt.

Im oberen Teil befinden sich SQL-Statements für die Aktualisierung des Datenbankmodells und Konstanen, z.B. für den Benutzernamen und den Namen der Datenbank zum Zugriff auf PostGIS Layer.

Die SQL-Statements für Aktualisierungen des Datenbankmodells sind mit einem Datum versehen, so dass man selber abchecken kann ob sein Datenbankmodell noch aktuell ist. Insbesondere können solche Änderungen über Versionswechsel hinweg erfolgen. Meistens sind es zusätzliche Attribute, neue Tabellen für n-m Verknüpfungen oder die Änderung von Datentypen.

Die weiteren Statements sind zusammengefasst für die Fachschalen. Die einzelnen Statements sind kommentiert. Wer z.B. erstmalig einen Layer für die Bodenrichtwertzonen anlegt führt kopiert sich die Konstantendefinition in ein SQL-Fenster (z.B. in phpMyAdmin) und anschließend den Teil unter Bodenrichtwertzonen. Nach dem Ausführen sollte in der entsprechenden Stelle der Layer sofort verfügbar sein. Dazu sind aber auch einige Ersetzungen im Skript vorzunehmen. Gekennzeichnet sind diese Ersetzungsmöglichkeiten z.B. durch # Achtung Stelle_ID anpassen.

ALB-Fortführen

  • Menüpunkt Fortführung Unterpunkt ALB_Änderung ausführen.
  • WLDGE-Datei im Formular hochladen oder wenn schon in das Verzeichnis data/ALB kopiert, den entsprechenden Namen angeben.
  • Wählen ob Grundbestand oder Fortführung und WLDGE-Datei einlesen
  • Danach wird die Datei geprüft, eingelesen und die entsprechenden Tabellen in der Datenbank aktualisiert
  • Für eine detailierte Beschreibung siehe wldge2sql_manual.

ALK-Aktualisieren

Mit Shapefiles

  • Menüpunkt Fortführung Unterpunkt ALK_Änderung ausführen.
  • Die Shape-Dateien ALK_Flurstuecke, ALK_Gebaeude, ALK_Nutzungen und ALK_Ausgest im Verzeichnis data/ werden eingelesen und die dazugehörigen Tabellen in der Datenbank aktualisiert.
  • Die Fortführung erfolgt im Moment nur komplett über den gesamten Datenbestand im Shape-Format.

Mit EDBS-Dateien (BZSN)

  • Es ist eine Fortführung über Beziehersekundärnachweis mit EDBS-Dateien über EDBS2WKT vorgesehen.
  • Der Konverter EDBS2WKT muss auf einem Windows-Rechner installiert sein. Die Postgres-Datenbank mit PostGIS-Unterstützung muss vorhanden sein. Die ALK-Tabellen müssen schon mit EDBS2WKT angelegt sein.
  • Dann kann das Einlesen der EDBS-Dateien erfolgen.
  • Es kann sein, dass die Dateien noch vom UNIX Textformat in PC-Format geändert werden müssen. Dazu kann das Tool UnixToWin verwendet werden. Zu finden unter: http://62.153.231.87/alb/daten/UnixToWin.exe

WMS-Konformität

Kvwmap kann als WMS konformer MapServer eingesetzt werden. Dazu produziert kvwmap „Mapfiles“ mit entsprechenden Metadaten (siehe MapServer WMS Server HOWTO).

Den Speicherort für Mapdateien stellen Sie über die Konstante WMS_MAPFILE_Path ein.

Wenn Sie eine WMS konforme Map-Datei erstellen wollen, klicken auf den Menüpunkt WMS-Export und geben dort den Namen der Datei (z.B. wms_test.map) an. In dieser Datei wird dann der zuletzt angezeigte Zustand der kvwmap Kartenansicht abgelegt und ist für die Nutzung in einem Web Map Service nutzbar. Die Map-Datei enthält alle Metadaten, die für den getCapabilities Request erforderlich sind.

Die Map-Datei sollte in einem WWW-Verzeichnis stehen, z.B. /meinwwwroot/WMS.

Auf diese Map-Datei kann dann wie folgt zugegriffen werden.

getCapabilities-Request

http://www.myserver.de/cgi-bin/mapserv?map=/mywwwroot/WMS/wms_test.map&

request=getcapabilities

In dem vom MapServer geliefertem XML-Dokument sind die verfügbaren Layer aufgelistet. Diese können dann im getMap-Request zur Ansicht gebracht werden.

getMap-Request

http://www.myserver.de/cgi-bin/mapserv?map=/mywwwroot/WMS/wms_test.map& request=getmap&VERSION=1.1.1&layers=Landkreis,Gemeinde,Gemarkung,LSG& Height=500&width=500


FAQ

dieser abschnitt kommt im wiki doppelt vor (vgl. FAQ!).
--Hauke 10:12, 9. Feb 2006 (CET)

Diese Liste ist noch eine unsortierte und nicht zusammengefasste Liste von Fragen und Antworten. Es können also auch Doppelungen auftregen.


  • Ich habe einen shape in die PostGIS-DB gespielt. Obwohl mit dem Shape die Sachdatenabfrage funktionierte, klappt sie jetzt plötzlich nicht mehr.
    • Im Shape werden die Attribute grundsätzlich groß geschrieben, in der PostGIS immer klein. Es müssen also die Abfragetemplates (snippets) angepasst werden.


  • Der Layer ist nach Anhaken und Neuzeichnen nicht sichtbar, der Haken wird wieder rausgenommen.
    • Möglicherweise sind die Endungen der zugehörigen Shapedateien nicht kleingeschrieben.


  • Der Layer ist mit allem Drum und Dran angelegt und der Stelle zugeordnet. Trotzdem ist er nicht mal in der Legende zu sehen.
    • Die entsprechenden Einträge in der Tabelle „u_rolle2used_layer“ fehlen.


  • Obwohl ich mehrere Classes definiert habe, werden nicht alle Classes dargestellt.
    • Die Expression der einzelnen Classes ist möglicherweise nicht richtig definiert. Wichtig: Wenn nach alphanumerischen Zeichenketten gesucht werden soll, müssen sowohl die eckigen Klammern des Attributs als auch die gesuchte Zeichenkette in Hochkomma gestellt werden.


  • Können ALK und ALB auch im Bezieher-Verfahren BZSN verwendet werden?
    • Ja. Für das ALB wird der WLDGE2SQL-Konverter verwendet, für die ALK ab der Version 1.4.5 der EDBS2WKT-Konverter. Beide Konverter beherrschen das BZSN-Verfahren. Die Verarbeitung von ALB-Daten mittels WLDGE2SQL muss noch von Hand angestoßen werden, es ist noch keine automatisierte Batch-Verarbeitung möglich. Die Verarbeitung von ALK-Daten ist mit dem EDBS2WKT ab Version 1.6 im automatisierte Batch-Modus möglich.


  • Was bedeutet „Authentifizierung“?
    • Seit sich jeder Nutzer schon beim Einstieg ins Systems authentifizieren muß, wird die Spalte Authentifizierung in Tabelle stelle nicht mehr verwendet.


  • Was bedeutet „alb_raumbezug“ und „alb_raumbezug_wert“?
    • Mit diesen Angaben kann man eine räumliche Einschränkung auf die ALB-Daten für eine Stelle vornehmen. In alb_raumbezug gibt man an auf welche räumliche Kategorie sich die Beschränkung bezieht. Dazu hat man die drei Möglichkeiten: Kreis, Amt und Gemeinde. In alb_raumbezug_wert gibt man schließlich die ID an. Z.B. Gemeinde 13051003 bedeutet, daß nur die ALB von Altenhagen eingesehen werden dürfen. Die Abfrage der Rechte erfolgt in der Methode: getFlurstKennzByRaumbezug($FlurstKennz,$Raumbezug,$Wert) der Klasse alb.


  • Muss ein Benutzer „Amt“ o.ä. eingerichtet werden? Welche Rechte bekommt er?
    • Benutzer sollten Personen sein. Was er dann tun darf hängt davon ab welche Rolle er spielen soll. Wenn alle im Amt NVP das selbe tun sollen mit dem System, werden Sie alle ein und der selben Stelle zugewiesen. Diese Zuweisung ist die Rolle. Gibt es z.B. die Aufgabe Katasterauskunft, dann heißt die Stelle Katasterauskunft und alle, die eine Katasterauskunft haben dürfen bekommen die Stelle zugewiesen in dem ihre Benutzer_ID mit der Stellen_ID in der Tabelle Rolle verknüpft werden.
    • Wird zusätzlich eine Bauleitplanstelle benötigt für Auskünften aus B-Plänen, die vielleicht noch nicht fertig sind oder was auch immer an Einsicht schützenswert sind, kann eine Stelle Bauleitplanung eingerichtet werden und nur die da reinschauen dürfen bekommen eine Rolle dafür eingetragen. Ein Benutzer kann also verschiedene Rollen einnehmen und wie schon vorher beschrieben hängen nun verschiedene Eigenschaften an User, Rolle und Stelle. Die Rechte hängen ausschließlich an der Stelle und die Rechter eines Users erschließen sich über seine Vernüpfungen mit den Stellen (den Rollen, die er einnehmen darf).


  • Was sind Attribute, sind die Informationen aus den DBFs gemeint?
    • Genau die. Später könnten das auch die Attribute der Tabelle oder Sicht (Abfrage) sein, die für ein Layer im MapServer von postgis bereitgestellt werden.


  • Was genau verstehe ich unter Stelle und Rolle und was hat beides mit dem Benutzer zu tun?
    • Eine Stelle solle eine Arbeitsstelle sein, also eine festgelegte Benutzeroberfläche mit allen daran hängenden Rechten an Funktionen, räumlicher Ausdehnung und Bedienelementen.
    • Die Rolle ist die Zuordnung eines Nutzers zur Stelle. Das heißt mehrere Nutzer können an der gleichen Stelle arbeiten, z.B. bei der Katasterauskunft. Einige Einstellungen sind an dieser Rolle gebunden, z.B. der gerade gewählte Ausschnitt oder die aktiven Layer. Wenn der Benutzer also gerade Katasterauskunft in Doberan spielt muß er den Fensterausschnitt nicht wechseln, den er gerade hatte als er in der Bauleitplanung für Kühlungsborn hatte. Einige Einstellungen sind nun aber doch an den Benutzer gebunden, z.B. die Fenstergröße. Denn der Benutzer sitzt ja in der Regel am gleichen Rechner. Welche Einstellung an welche Klasse gebunden sind sieht man wenn man sich die Attribute des Datenmodells anschaut oder besser noch die Klassen in user.php zum setzen der Einstellungen. Änderungen sind möglich und der Stein der Weisen sicher auch noch nicht gefunden. Flexibilität ist aber schon mal gegeben.


  • SuSE, RedHat, Debian GNU/Linux, Free BSD,...: Gibts da aus Sicht des kvwmap irgendwelche Präferenzen?
    • Nein. Wäre nur schön, wenn bei der Distribution schon ein Apache Web Server und MySQL mit installiert ist. Getestet ist kvwmap unter SuSE Linux, RedHat und Windows XP, alle auch mit XAMPP.


  • Ist bei der Installation von kvwmap in den Klassen einiger Anpassungsaufwand zu betreiben?
    • Eigentlich nur in der config.php


  • Kann ich Anpassungen selbst vornehmen oder brauche ich erst eine PHP-Schulung?
    • Die Anpassung geht ohne Schulung. Nur Werte für Konstanten setzen.
    • Größer bzw. umständlicher ist die Einrichtung der Datenbank. Dazu sollte man schon mal einen SQL-Client genutzt haben. Empfehle phpMyAdmin. Überhaupt ist eine Installation von XAMPP von apachefriends nützlich. Da ist apache und mysql und was man so braucht schon drin.
    • Komplikationen können vor allem bei der Kompilierung auftreten, besonders bei der Kompilierung des mapservers und phpMapScript aber 2 Wochen sollten reichen. Am meißten machen irgentwelche fehlenden oder falschen Links zu Bibliothen zu schaffen. Lieber in Ruhe die Installationsanleitungen durchlesen, als überhastet nur ./configure und make.


  • Daten aus verschiedenen Fachämtern liegen als Shape vor. ALB wird für eine Gemeinde als WLDGE bestellt. ALK wird für dieselbe Gemeinde als EDBS vorliegen. Kann ich damit beginnen?
    • Aber ja! Für die ALK muss der EDBS2WKT-Konverter vorliegen. Die Konvertierung der ALB-Daten erfolgt über den WLDGE2SQL-Konverter, der als Modul in kvwmap enthalten ist. Beide Datensätze werden in eine PostgreSQL/PostGIS-DB gespielt. Die Fachdaten können als Shape belassen werden oder sie wandern ebenfalls in die PostGIS-DB.

Referenz zur Datenbank

Dieser Abschnitt enthält eine Beschreibung der Feldinhalte zu Nutzerdaten und Layern.

Eine ausführliche Beschreibung aller MapFile-Parameter, die in der Datenbank abgebildet werden, findet sich unter http://www.umn-mapserver.de/docc44/mapfile-reference44.html (für MapServer 4.6).


Alle nummerierten Parameter entsprechen den MapScript-Definitionen. Diese Definitionen können in der map.h der mapServer-Source im Abschnitt „General enumerated types“ nachgesehen werden.


Aktualisiert 01.09.2005, Markus Hentschel, kva@lk-nvp.de

Tabelle „user“

In dieser Tabelle werden die einzelnen Benutzer von kvwmap eingetragen. Jeder Benutzer wird mit Name und Vorname einzeln eingetragen. Das Anlegen von Gruppenbezeichnungen („Naturschutz“, „Kataster“ o.ä.) empfiehlt sich nicht. Hier erfolgt keine Zuweisung von Rechten oder Daten!

login_name

Das kann ein beliebiges Wort sein, z.B. die PC-Anmeldung des Benutzers.

funktion

Auswahl: „Admin“ oder „User“.

Tabelle „rolle“

Durch die Rolle werden dem jeweiligen Benutzer (User) beim Start von kvwmap verschiedene Stellen (mindestens eine) zunächst angeboten und nach erfolgter Auswahl zugeordnet. Für jeden User können beliebig viele Rollen angelegt werden. Zu jeder Rolle gehört genau eine Stelle. Erst durch die Rolle (d.h. eben durch die Zuweisung des Benutzers zu einer Stelle) werden dem Benutzer bestimmte Rechte verliehen, die sich aus der Zuordnung zur Stelle ergeben.

user_id

Die entsprechende ID aus der Tabelle „user“. Es können beliebig viele Rollen angelegt werden, in denen die user_id identisch ist, nur muss jeweils das Feld „stelle_id“ anders belegt werden.

stelle_id

Die entsprechende ID aus der Tabelle „stelle“. Zum Begriff „Stelle“ siehe dort.

nImageWidth, nImageHeight

Größe des Kartenfensters beim Start (in Pixeln), z.B. „500, 500“. Diese Einstellung wird aus der jeweils letzten Sitzung übernommen.

minx, miny, maxx, maxy

Ausdehnung des Kartenausschnitts beim Start (in Koordinaten). Diese Einstellung wird aus der jeweils letzten Sitzung übernommen.

nzoomFaktor

Faktor, der das Maß des Herein- bzw. Herauszoomens bestimmt. „2“ ist Verdoppelung bzw. Halbierung des Maßstabs. Diese Einstellung wird aus der jeweils letzten Sitzung übernommen.

selectedButton

Speichert, welcher Zoom-Button beim Beenden aktiviert war.

Tabelle „stelle“

Der Begriff „Stelle“ meint eine Arbeitsstelle oder besser Arbeitsaufgabe. An die Stelle ist eine festgelegte Benutzeroberfläche geknüpft mit allen daran hängenden Rechten an Funktionen, räumlicher Ausdehnung und Bedienelementen. Die Stelle definiert auch den Zugriff auf die Daten, die der Benutzer sehen und abfragen darf.

Bezeichnung

Wenn der Benutzer kvwmap startet, kann er aus den Stellen auswählen, die ihm über die Rolle zugewiesen wurden. In der Auswahl erscheint die Bezeichnung der Stellen.

start, stop

Damit kann die zeitliche Zuordnung des Benutzers zur Stelle eingestellt werden, z.B. bei Auslegungsfristen für Bürgerbeteiligungen oder für zeitlich begrenzte Gast-Zugriffe.

minxmax, minymax, maxxmax, maxymax

Maximal erlaubte Ausdehnung (in Koordinaten) des Kartenausschnitts, z.B. der gesamte Landkreis, die Stadt oder eine Gemeinde.

Referenzkarte_ID

Die entsprechende ID aus der Tabelle „referenzkarten“ zur Anbindung der Übersichtskarte. Zum Begriff „Referenzkarte“ siehe dort.

Authentifizierung

Wird nicht mehr verwendet.

ALB_status

Regelt die PDF-Ausgabe des ALB. „30“ = Eigentümerangaben nicht sichtbar, „35“ = Eigentümerangaben sichtbar.

Wappen

Dateiname des zugehörigen Wappens (Pfad wird in die config.php eingetragen).

alb_raumbezug

Mit „alb_raumbezug“ und „alb_raumbezug_wert“ kann man eine räumliche Einschränkung auf die ALB-Daten für eine Stelle vornehmen. Auswahlmöglichkeiten: „Kreis“, „Amt“, „Gemeinde“.

alb_raumbezug_wert

Gibt den Schlüssel des Kreises/des Amtes/der Gemeinde an.

Tabelle „used_layer“

Jeder Stelle können beliebig viele Used Layer zugeordnet werden. Zu jedem Used Layer gehört genau ein Layer. Umgekehrt ausgedrückt: Durch die Tabelle „used_layer“ kann ein Layer beliebig vielen Stellen zugeordnet werden.

stelle_id

Die entsprechende ID aus der Tabelle „stelle“.

layer_id

Die entsprechende ID aus der Tabelle „layer“. Zum Begriff „Layer“ siehe dort.

queryable

Layer können als abfragbar („1“) oder nicht abfragbar („0“) gekennzeichnet werden. Entsprechend ist das Info-Häkchenfeld in der Legende vorhanden oder nicht.

drawingorder

Die Zeichenreihenfolge, in der die Layer dargestellt werden, ist entscheidend für das Aussehen der Karte. Der Layer mit der kleinsten drawingorder-Nummer wird zuerst gezeichnet. Die drawingorder-Nummer kann bis zu elf Stellen besitzen, es empfiehlt sich also, großzügig bei der Vergabe zu sein, um später in kvwmap integrierte Layer noch sinnvoll einfügen zu können. Rasterlayer sollten zuerst gezeichnet werden, Beschriftungslayer zuletzt.

Durch die Angabe der Zeichenreihenfolge in den Used Layern kann jeder Stelle individuell eine eigene Zeichenreihenfolge gegeben werden.

rect_xmin, rect_ymin, rect_xmax, rect_ymax

Maximal zulässige Ausdehung des Layers in der zugeordneten Stelle

minscale

Kleinste Maßstabszahl, unterhalb der der Layer nicht mehr angezeigt wird (z.B. 500).

maxscale

Größte Maßstabszahl, über die hinaus der Layer nicht mehr angezeigt wird (z.B. 10.000).

Filter

Dieser Parameter erlaubt für Daten spezifische Attributfilter einzusetzen, die zur selben Zeit abgearbeitet werden wie die räumlichen Filter, aber bevor irgendwelche CLASS Ausdrücke ausgewertet werden.

template

Wenn Layer in verschiedenen Stellen unterschiedliche Sachdatenanzeigen bekommen sollen, können verschiedene Snippets zur Anzeige definiert werden. (Beispiel: biotope_amt1.php, biotope_amt2.php, etc.)

symbolscale

Gibt den Maßstab an, bei dem ein Symbol oder eine Beschriftung die Größe haben soll, die ihm in der Tabelle „styles“ bzw. „labels“ als size zugewiesen ist. Funktioniert nur, wenn gleichzeitig die Felder „minsize“ und „maxsize“ in der Tabelle „styles“ bzw. „labels“ mit Werten gefüllt sind.

Werden bei „symbolscale“ keine Angaben gemacht, hat das Symbol bzw. die Beschriftung immer genau die Größe, die durch „size“ definiert ist.

Tabelle „attribute“

Diese Tabelle regelt, welche Spalten eines Shapes bzw. welche Felder einer Datenbank zur Sachdatenabfrage verwendet werden dürfen. Diese Attribute müssen im jeweiligen Querytemplate definiert sein.

attributename

Name des Attributs (= Spaltenüberschrift im Indexshape), das zur Sachdatenabfrage verwendet werden soll.

layername

Name des zugehörigen Layers aus der Tabelle „layer“. Nicht der Name der Shapedatei! Zum Begriff „Layer“ siehe dort.

art

„dbf“ für Shapes

„postgis“ für PostgreSQL/PostGIS-Daten

Tabelle „attribute_access“

Diese Tabelle ordnet den Used Layern (d.h. im Endeffekt der Stelle) die Attribute zu, die in einer Sachdatenabfrage sichtbar sein dürfen.

Attributename

Name des Attributs (= Spaltenüberschrift im Indexshape), das zur Sachdatenabfrage verwendet werden soll.

used_layer_id

ID aus der Tabelle „used_layer“, die zugeordnet werden soll.

type

„SD lesen“ = Sachdaten lesen möglich.

„kein Zugriff“ = Sachdaten lesen nicht möglich.

Tabelle „layer“

Jeder Layer beinhaltet einen thematisch logischen und abgegrenzten Teilaspekt der Gesamtdatenmenge. Dabei wird in Raster-, Punkt-, Linien- und Flächenlayer unterschieden. Layer (soweit nicht Rasterlayer) können in kvwmap als Shapes vorliegen, aus einer PostgreSQL/PostGIS-Datenbank stammen oder als WMS bezogen werden.

Name

Der Name des Layers wird in der Legende angezeigt. Wird kein Name vergeben, wird dieser Layer nicht in der Legende angezeigt. Layernamen dürfen keine Sonderzeichen enthalten, insbesondere keine Leerzeichen.

Datentyp

„0“ = Punktlayer, „1“ = Linienlayer, „2“ = Flächenlayer (polygon), „3“ = Rasterlayer

Die Typen „Beschriftungslayer“ und „Circle“ sind z.Z. in kvwmap noch nicht definiert.

Der Datentyp muss nicht derselbe Typ sein wie die Shapedatei. Eine Polygon Shapedatei kann beispielsweise auch als Punkt- oder Linienlayer gezeichnet werden.

Gruppe

Layer können einer Gruppe zugeordnet werden. In der Legende erscheinen sie dann unter dieser Gruppenbezeichnung. Ein Ein- bzw. Ausschalten der Gruppe ist momentan nicht möglich.

pfad

Dieses Feld enthält vordefinierte SQL-Statements für die Sachdatenabfrage von PostGIS-Layern. Je nach dem ob connectiontype=6 ist oder nicht wird die Abfrage über die dbf-Dateien oder über die PostGIS Datenbank gestartet. Das Suchfenster wird im Abfragestatement durch xxxx freigehalten und bei einer Abfrage durch das Suchrechteck bzw. Punkt ersetzt. Ein Beispiel für ein Abfragestatement in diesem Feld ist:

SELECT *,AsText(koordinaten) AS punkte FROM fp_punkte_temp WHERE art IN (0,1) AND NOT Disjoint(koordinaten,GeometryFromText('xxxx'))

Auf alle hier selektierten Tabellenfelder kann in der Datei Layername.php zugegriffen werden für eine individuelle Gestaltung der Ergebnisanzeige.

Data

Name des Shapes ohne Endung. Bei Daten aus einer PostGIS-Tabelle wird die Geometriespalte und der Tabellenname angegeben, Beispiel: „the_geom from bplan“. Hinweis: Standardmäßig wird die Geometriespalte in einer PostGIS-DB immer „the_geom“ genannt.

tileindex

Wird nur bei Rasterlayern gesetzt. Wenn Rasterbilder gekachelt vorliegen und in einem Bildkatalog indiziert wurden, wird der Name des Index-Shapes hier angegeben. Die Eingabe im Feld „Data“ entfällt. Hinweis: Die Indizierung kann z.B. mit dem Werkzeug gdaltindex aus der GDAL-Installation erfolgen.

tileitem

Wird nur bei indizierten Rasterlayern gesetzt. Attributname (= Spaltenüberschrift im Index­shape), in dem die Pfade zu den einzelnen Bildern stehen.

labelangleitem

Enthält den Attributnamen der Sachdaten des Layers, der die Winkel der Texte enthält. Braucht nur ausgefüllt werden, wenn beschriftet werden soll und der Text nach bestimmten Werten in den Sachdaten ausgerichtet werden soll.

labelitem

Wird nur gesetzt, wenn eine Beschriftung erzeugt werden soll. Attributname (= Spaltenüberschrift im entsprechenden Shape), aus dem die Beschriftung entnommen werden soll.

labelmaxscale

Größte Maßstabszahl, über die hinaus der Layer nicht mehr beschriftet wird (z.B. 400.000)

labelminscale

Kleinste Maßstabszahl, unterhalb der der Layer nicht mehr beschriftet wird (z.B. 500)

connection

Wird nur gesetzt, wenn die Daten aus einer (PostGIS-)Datenbank oder von einem WMS kommen. Die connection ist im Falle einer Datenbank die Zeichenkette der Datenbankverbindung, bestehend aus Benutzername, Passwort, Datenbankname, Hostnamen, Name des Vorgangs. Beispiel: "user=nobody password=****** dbname=kvwmapsp1-4-0 host=localhost port=5432".

Beispiel für einen WMS: „http://www.beispiel.de/cgi-bin/mapserv?“

connectiontype

Wird nur gesetzt, wenn die Daten aus einer (PostGIS-)Datenbank oder von einem WMS kommen. Der connectiontype ist die Einstellung des Verbindungstyps.

Kvwmap unterstützt mit der Version 1.4.5 den Parameter „6“ = postgis und demnächst den Parameter „7“ = WMS.

classitem

Attributname (= Spaltenüberschrift im entsprechenden Shape), aus dem die Class erzeugt werden soll. Zum Begriff „Class“ siehe dort.

filteritem

Angabe zum Einsatz der „Filter“-Ausdrücke aus der Tabelle „used_layer“.

transparency

Wert, der angibt, wie opak der Layer sein soll, zwischen „0“ = vollkommen durchsichtig und „100“ = gar nicht durchsichtig.

tolerance

Die Empfindlichkeit von punktbasierten Abfragen. Wie weit darf man den Punkt verfehlen, damit er dennoch gefangen wird? Gilt in kvwmap bei der Abfrage von PostGIS-Layern auch für aufgezogene Rechtecken zum suchen.

toleranceunits

Einheit der Tolerance-Werte. Standardmäßig ist „pixels“ gesetzt. Für die Abfrage von PostGIS-Layern wird die Angabe von „tolerance“ mit der aktuellen Pixelgröße multipliziert. Ist „toleranceunits“ leer wird auch die Pixelgröße verwendet, ist sie „meters“ wird die „tolerance“ mit 1 multipliziert.

labelrequires

Die Beschriftung des Layers kann davon abhängig gemacht werden, ob ein anderer Layer an- oder ausgeschaltet ist.

Beispiel: ([flurstuecke] != 1) Der Layer wird angezeigt, wenn der Layer „flurstuecke“ nicht (‚!= 1‘) angezeigt wird.

Tabelle „classes“

Jede Class wird genau einem Layer zugeordnet. Mit der Class können Daten, die in einem Shape liegen, nach bestimmten Kriterien selektiert und in unterschiedlichen Ausgestaltungen präsentiert werden.

Name

Der Name der Class wird in der Legende angezeigt.

Layer_ID

Die entsprechende ID aus der Tabelle „layer“.

Expression

Wenn der Layer mehrere Classes enthält, regelt „Expression“ die Zugehörigkeit eines Features zur jeweiligen Class. Wenn kein Ausdruck vorhanden ist, werden alle Features einer Class zugeordnet.

Kvwmap lässt momentan nur logical Expressions zu. Dabei muss das Attribut (Spaltenüberschrift in der DBF-Tabelle des Shapes) explizit angegeben werden. Die Notation erfolgt so:

- Die komplette Expression wird grundsätzlich mit einer runden Klammer ( ) versehen.

- Das Attribut wird in eckige Klammern [ ] gesetzt. Handelt es sich um das Attribut eines Shapes, ist darauf zu achten, dass es in Großbuchstaben geschrieben wird. Handelt es sich um das Attribut einer PostGIS-Tabelle, ist darauf zu achten, dass es in Kleinbuchstaben geschrieben wird.

- Wird eine Zeichenkette abgefragt, wird sowohl die eckige Klammer des Attributs als auch der Ausdruck in einfache Anführungszeichen ‘ ‘ gesetzt.

- Folgende logische Operatoren werden unterstützt: =, >, <, <=, >=, =, lt (lower than), gt (greater than), ge (greater equal), le (lower equal), eq (equal), ne (not equal).

- logische Ausdrücke können mit „AND“ bzw. „OR“ beliebig verschachtelt werden.

Beispiel:

([EINWOHNERZAHL] >= 20000 AND ‚[ART]‘ ne ‚Stadt‘)

drawingorder

Darstellungsreihenfolge der Classes in der Legende. Wenn nichts angegegeben wird, werden die Classes alphanumerisch sortiert.

Tabelle „styles“

Styles beinhalten Parameter zur Symbolisierung und Ausgestaltung der im Layer enthaltenen Geometrien.

Symbol

Die laufende Nummer des Symbols in der Symboldatei (z.B. symbols.sym). Beginnend mit 1, ist also das fünfte Symbol die Nummer 5. In der Symboldatei müssen dafür keine Nummern explizit angegeben werden.

Hinweis: Große Schwierigkeiten gibt’s, wenn Symbole in die Symbol-Datei eingefügt werden. Besser den Symbolnamen verwenden.

Symbolname

Wenn die Symbole der Symboldatei Namen haben, sollten diese benutzt werden. Diese Verfahrensweise ist derjenigen der Symbolnummern vorzuziehen.

Size

Angabe der Höhe (in Pixeln) des Symbols bzw. des Musters, wenn es sich um einen Linienlayer handelt. Werden „Sizeunits“ gesetzt, bezieht sich die Angabe auf die definierte Einheit (momentan von kvwmap noch nicht unterstützt).

Die Umrandungen von Flächenlayern werden immer mit size=1 erzeugt. Sollen hier andere Größen bzw. auch Muster erscheinen, muss der Layer als Linienlayer angegeben werden.

„Size“ bei Flächenlayern in Kombination mit der Angabe von „Symbol“ erzeugt eine Flächenfüllung mit dem angegebenen Muster und der angegebenen Größe.

color

Farbe des Symbols, der Linie, der Fläche. Wird angegeben in „R G B“ (3 Zahlen mit Leerzeichen getrennt: „125 200 50“).

Backgroundcolor

Angabe einer Farbe für nicht-transparente Symbole.

Outlinecolor

Angabe einer Farbe, um Polygone und bestimmte Markersymbole zu umranden. Linien haben keine outlinecolor, hier müssen gegebenenfalls mehrere Styles miteinander kombiniert werden.

minsize, maxsize

Definiert die minimale bzw. maximale Anzahl der Pixel, um ein Symbol zu zeichnen. Hinweis: Damit die Darstellung skalierbar wird, müssen in der Tabelle „used_layer“ ein Wert für symbolscale und die Werte für minscale und maxscale gesetzt sein.


Mehr Information zur Erstellung von Symbolen und Liniensignaturen z.B. hier: http://www.mapmedia.de/dokumente/umn_signaturen_howto/index.html

Tabelle „u_styles2classes“

Da mehrere Styles zu einer Class gehören können, wird die Zuordnung des jeweiligen Styles in einer eigenen Tabelle vorgenommen.

class_id

Die entsprechende ID aus der Tabelle „classes“.

style_id

Die entsprechende ID aus der Tabelle „styles“.

drawingorder

Legt die Zeichnungsreihenfolge der Styles fest, wenn (z.B. bei komplexeren Linienausgestaltungen) mehrere Styles in einer Class enthalten sind.

Tabelle „labels“

Sämtliche Parameter dieser Tabelle werden in der MapServer Referenz unter o.a. Internetadresse ausführlich beschrieben. Hier sollen nur die „Schalter“ benannt werden:

Type

„0“ = Truetype, „1“ = Bitmap

Standardmäßig wird „0“ verwendet. Der Font muss im Ordner „Fonts“ enthalten sein und in der fonts.txt eingetragen sein!

minsize, maxsize

Definiert die minimale bzw. maximale Anzahl der Pixel, um eine Beschriftung zu erzeugen. Hinweis: Damit die Darstellung skalierbar wird, müssen in der Tabelle „used_layer“ ein Wert für symbolscale und in der Tabelle „layer“ Werte für labelminscale bzw. labelmaxscale gesetzt sein.

Position

„0“ = Die Beschriftung befindet sich links über dem Bezugspunkt

„1“ = Die Beschriftung befindet sich rechts unter dem Bezugspunkt

„2“ = Die Beschriftung befindet sich rechts über dem Bezugspunkt

„3“ = Die Beschriftung befindet sich links unter dem Bezugspunkt

„4“ = Die Beschriftung befindet sich rechts vom Bezugspunkt

„5“ = Die Beschriftung befindet sich links vom Bezugspunkt

„6“ = Die Beschriftung befindet sich über dem Bezugspunkt

„7“ = Die Beschriftung befindet sich unter dem Bezugspunkt

„8“ = Die Beschriftung befindet sich genau auf dem Bezugspunkt

„9“ = „Auto“, kalkuliert eine Beschriftungsposition, die keine andere Beschriftung beeinträchtigen wird.

Antialias

Kantenglättung. Funktioniert nur bei „Truetype“.

„0“ = ja, „1“ = nein

Partials

Zeigt Texte, die vom Kartenrand abgeschnitten werden.

„0“ = ja: auch Teile des Textes sollen noch angezeigt werden.

„1“ = nein: wenn der Text angeschnitten wird, ist er nicht mehr zu sehen.

Wird nichts angegeben, wird standardmäßig „0“ gesetzt.

Force

Zwingt Beschriftungen zur Anzeige, ohne Rücksicht auf Kollisionen.

„0“ = ja, „1“ = nein

Wird nichts angegeben, wird standardmäßig „1“ gesetzt.

Tabelle „u_labels2classes“

Da mehrere Label zu einer Class gehören können, wird die Zuordnung des jeweiligen Labels in einer eigenen Tabelle vorgenommen.

class_id

Die entsprechende ID aus der Tabelle „classes“.

label_id

Die entsprechende ID aus der Tabelle „labels“.

Tabelle „referenzkarten“

Diese Tabelle regelt den Aufbau der Übersichtskarte.

Name

Bezeichnung für die Übersichtskarte, kann frei gewählt werden.

Dateiname

Name der Rasterbild-Datei. Pfad zur Übersichtskarte ist in der config.php gesetzt!

xmin, ymin, xmax, ymax

Ausdehnung der Übersichtskarte (in GK-Koordinaten).

width, height

Größe der Übersichtskarte (in Pixeln), z.B. 120, 90.

Tabelle „u_menue“

Das Menü dient nicht der Themenauswahl. Es wird nicht für jede Stelle auch ein Menü angelegt. Die Themendarstellung und -auswahl für die jeweiligen Geodaten erfolgt über die Zuordnung von Use­d Layern zur Stelle und wird im Client in der Legende realisiert.

Menüs werden für spezielle Funktionen benötigt, z.B. für die Eingabe von Daten zu bestimmten

Themen bei der Nachweisverwaltung oder für spezielle Recherchen und Analysefunktionen bei ausgewählten Daten.

Name

Der Name wird im Menütext angezeigt.

Links

Der Link weist auf den Anwendungsfall, der in der index.php definiert ist. Beispiel: Der Nutzer soll Flurstücke suchen können. Der Anwendungsfall in der index.php lautet „Flurstueck_Auswaehlen“. Der entsprechende Eintrag im Feld „Links“ lautet dann „index.php?go=Flurstueck_Auswaehlen“

Obermenue

Die Menüs werden verschachtelt. Es gibt Obermenüs und darunter angeordnet Untermenüs. Soll ein Menü ein Untermenü sein, so wird hier die ID des entsprechenden Obermenüs angegeben. Beispiel: Die Flurstückssuche soll keinem Obermenü zugeordnet werden. Im Feld wird eine „0“ eingetragen.

Beispiel: Die ALB-Fortführung soll ein Untermenü im Menü „Fortführung“ sein. Das Menü „Fortführung“ hat die ID „17“. Diese ID wird im Feld eingetragen.

Menueebene

Die Verschachtelungstiefe wird in Ebenennummern beginnend bei „1“ angegeben. Beispiel: Die Flurstückssuche soll in der Verästelung am Anfang stehen. Im Feld wird eine „1“ eingetragen. Beispiel: Die ALB-Fortführung soll in der Verästelung unter dem Menü „Fortführung“ erscheinen. Im Feld wird eine „2“ eingetragen, da das Menü „Fortführung“ die Menüebene „1“ hat.

Target

„_blank“ öffnet ein neues Fenster. Das ist z.B. bei der Hilfe nötig. Standardmäßig wird nichts eingetragen.

Tabelle „u_menue2stelle“

Die Zuweisung der Menüs zur jeweiligen Stelle. Dadurch wird erreicht, dass bestimmte Menüs nur bestimmten Stellen zur Verfügung stehen.

Stelle_id

Die entsprechende ID aus der Tabelle „stelle“.

Menue_id

Die entsprechende ID aus der Tabelle „u_menues“.

Menue_order

Reihenfolge der Darstellung bei der Sortierung der Menüs in der Stelle. Das Menü mit der kleinsten Menue_order-Nummer wird zuerst gezeichnet. Die Nummer kann bis zu elf Stellen besitzen, es empfiehlt sich also, großzügig bei der Vergabe zu sein, um später für die Stelle hinzukommende Menüs noch einfügen zu können.

Tabelle „u_funktionen“

Funktionen sind spezielle Anwendungen, deren Ablauf in der index.php definiert wird. Mit Funktionen sind nicht die Zoomwerkzeuge gemeint!

Bezeichnung

Der Name wird in der Funktionenauswahl angezeigt.

Link

Der Link weist auf den Anwendungsfall, der in der index.php definiert ist. Zur Schreibweise siehe Tabelle „u_menue“.

Derzeit läuft es so, dass man die Funktion so definiert, wie der Anwendungsfall, den man schützen will. Also wenn man z.B. den Anwendungsfalle: „ALB_Aenderung“ schützen möchte, muss „ALB_Aenderung“ in Bezeichnung eingegeben werden.

In der index.php werden diese Einschränkungen für den jeweiligen Anwendungsfall aber nur dann wirksam, wenn die Rechteeinschränkung abgefragt wird.

Ein Anwendungsfall ohne Rechteeinschränkungsmöglichkeit:

case „Anwendungsfall“ :

{
 $GUI->functiondieausgefuehrtwerdensoll();
}

Anwendungsfall mit Einschränkungsmöglicheit:

case „Anwendungsfall“ :

{
   if ($GUI->Stelle->isFunctionAllowed($GUI->formvars['go'])) {
     $GUI-> functiondieausgefuehrtwerdensoll();
   }
   else {
     # Benutzer ist nicht berechtigt zum Ausführen der Funktion
     $GUI->Fehlermeldung='Sie sind nicht berechtigt diesen Anwendungsfall auszuführen.';
     $GUI->rollenwahl($Stelle_ID);
     $GUI->output();
   }
}

Man Sieht, dass im Falle der erteilten Berechtigung der Anwendungsfall ausgeführt wird und man sonst auf die Stellenauswahl geleitet wird.

Man könnte meinen, dass diese Verzweigung generell für alle Anwendungsfälle vor der Abarbeitung der cases ausgeführt werden könnte, dann kann man aber nicht individuell entscheiden was geschehen soll, wenn keine Rechte vorliegen.

Bisher gilt also, wenn Sie Anwendungsfälle extra schützen wollen (zusätzlich zu der Möglichkeit den Link zur Anwendung in der Stelle gar nicht erst anzuzeigen) dann teilen sie es den Entwicklern mit und diese können das fest in die index.php aufnehmen. Es hindert sie natürlich keiner daran ihre eigene index.php zu erstellen. Achtung dann aber beim update.

Tabelle „u_funktion2stelle“

Die Zuweisung der Funktionen zur jeweiligen Stelle. Dadurch wird erreicht, dass bestimmte Funktionen nur bestimmten Stellen zur Verfügung stehen.

Funktion_id

Die entsprechende ID aus der Tabelle „u_funktionen“.

Stelle_id

Die entsprechende ID aus der Tabelle „stelle“.

Erlaubt

Wenn eine Funktion zugeordnet werden soll, muss sie auch explizit erlaubt werden.

Tabelle „u_rolle2used_layer“

Die Tabelle speichert beim Verlassen von kvwmap den Status der Häkchenfelder in der Legende. Damit werden die Einstellungen eines Benutzers gespeichert, unabhängig davon, ob ein anderer Benutzer in der selben Stelle andere Einstellungen vornimmt.

AktivStatus

Entscheidet, ob der Layer nach dem Start sichtbar ist („1“) oder nicht („0“). Entsprechend ist in der Legende ein Häkchen gesetzt oder nicht.

QueryStatus

Entscheidet, ob der Layer nach dem Start zur Abfrage ausgewählt ist („1“) oder nicht („0“). Entsprechend ist in der Legende ein Häkchen gesetzt oder nicht.