Installation von PostNAS und Zugriff mit kvwmap: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
(Einspielen der NAS-Daten)
Zeile 60: Zeile 60:
 
  export LD_LIBRARY_PATH=/home/fgs/fgs/postnas/gdal-trunk/lib
 
  export LD_LIBRARY_PATH=/home/fgs/fgs/postnas/gdal-trunk/lib
  
 +
Nach dem Einlesen der Daten müssen die folgenden beiden Skripte ausgeführt werden:
  
 
== Zugriff mit kvwmap ==
 
== Zugriff mit kvwmap ==

Version vom 27. März 2012, 13:33 Uhr

Auf dieser Seite wird beschrieben, wie man PostNAS installiert, eine PostNAS-Datenbank einrichtet, NAS-Daten einspielt und mit kvwmap darauf zugreifen kann. Die PostNAS-Anleitung entspricht dabei im Großen und Ganzen der Anleitung der PostNAS-Entwickler und unterscheidet sich nur in wenigen Anpassungen, die z.B. das in MV benutzte Koordinatensystem und den Zugriff von kvwmap betreffen.

PostNAS installieren

Systemvoraussetzungen

  • gcc, PostgreSQL-devel, Xerces, PROJ und GEOS - kann man unter Suse alles über yast installieren
  • SVN-Client - ist unter Suse meist schon vorhanden


GDAL/OGR bauen und installieren

  • Code beziehen (mit normalen Benutzerrechten z.B. in /home/fgs/fgs):
 mkdir postnas
 cd postnas
 svn checkout http://svn.osgeo.org/gdal/trunk/gdal
  • Konfigurieren und kompilieren (hier wird gdal in /home/fgs/fgs/postnas/gdal-trunk installiert)
 cd gdal
 ./configure --prefix=/home/fgs/fgs/postnas/gdal-trunk --with-xerces
 make
  • Installation mit root-Rechten:
 sudo make install


Erstellung einer PostNAS-Datenbank

Datenbank anlegen

  • Es wird eine neue PostGIS-Datenbank mit Encoding UTF8 und einem postgis_template als Vorlage angelegt

Datenbankschema erstellen

  • Um das Datenbankschema anzulegen muss man folgende SQL-Dateien nacheinander in der neuen Datenbank ausführen:

Der Unterschied zu den SQL-Skripten, die unter http://trac.wheregroup.com/PostNAS/browser/trunk/data/konvert/postnas_0.6 zu finden sind, besteht nur darin, dass das Koordiantensystem EPSG:25833 statt EPSG:25832 verwendet wird und alle Tabellen mit oids angelegt werden. Außerdem wurden ein paar kleinere Fehler behoben.

Einspielen der NAS-Daten

Um die NAS-Daten in die PostNAS-DB einzuspielen wird das Programm ogr2ogr des zu Beginn installierten GDALs verwendet. Man wechselt dazu nach

/home/fgs/fgs/postnas/gdal-trunk/bin

und führt folgenden Befehl aus:

./ogr2ogr -f "PostgreSQL" -skipfailures -append PG:"dbname=<POSTNASDB> user=<DBUSER> host=localhost port=5432" -a_srs EPSG:25833  /PFAD/ZU/DEN/NASDATEN.XML 2>> postnas_err.log

wobei <POSTNASDB> durch den Datenbanknamen, <DBUSER> durch den Datenbanknutzer und /PFAD/ZU/DEN/NASDATEN durch den Pfad zu den NAS-Daten ersetzt werden muss.

Achtung: Falls es auf dem Server bereits ein anderes gdal gibt, kann es beim Ausführen von ogr2ogr zu Fehlern kommen. Ist auf dem Server z.B FGS installiert, so kann es sein, dass das gdal von FGS benutzt wird, was dann natürlich nicht funktioniert. Man kann das auch nachprüfen, indem man in

ldd /home/fgs/fgs/postnas/gdal-trunk/bin/ogr2ogr

ausführt und sich anschaut, auf welches gdal gelinkt wird. Falls dort nicht auf das PostNAS-gdal gelinkt wird, muss man, bevor man ogr2ogr aufruft, den Library-Path entsprechend setzen:

export LD_LIBRARY_PATH=/home/fgs/fgs/postnas/gdal-trunk/lib

Nach dem Einlesen der Daten müssen die folgenden beiden Skripte ausgeführt werden:

Zugriff mit kvwmap

Umstellung von ALB/ALK auf ALKIS

Um in kvwmap alle Kataster-Recherchefunktionen von ALK/ALB auf ALKIS umzustellen, muss man nur einige Parameter in der config.php setzen:

 $pgdbname='alkis';                                    // muss auf die PostNAS-DB gesetzt werden
 define('ALKIS', true);                                // muss auf true gesetzt werden
 define("LAYERNAME_FLURSTUECKE",'Flurstuecke_Alkis');  // muss auf den neuen ALKIS-Flurstückslayer gesetzt werden
 define('EPSGCODE','25833');                           // muss auf 25833 gesetzt werden

Anlegen eines neuen Flurstückslayers

Mit folgenden SQL-Befehlen kann in der MySQL-DB ein neuer Flurstückslayer angelegt werden:

 SET @group_id = 1;
 SET @connection = 'user=xxxx password=xxxx dbname=kvwmapsp';

 INSERT INTO layer (`Name`,`Datentyp`,`Gruppe`,`pfad`,`Data`,`schema`,`document_path`,`tileindex`,`tileitem`,`labelangleitem`,`labelitem`,`labelmaxscale`,`labelminscale`,`labelrequires`,`connection`,`printconnection`,`connectiontype`,`classitem`,`filteritem`,`tolerance`,`toleranceunits`,`epsg_code`,`template`,`queryable`,`transparency`,`drawingorder`,`minscale`,`maxscale`,`offsite`,`ows_srs`,`wms_name`,`wms_server_version`,`wms_format`,`wms_connectiontimeout`,`wms_auth_username`,`wms_auth_password`,`wfs_geom`,`selectiontype`,`querymap`,`logconsume`) VALUES('Flurstuecke_Alkis','2',@group_id,'SELECT wkb_geometry, f.flurstueckskennzeichen as flurstkennz, \'\' as flurnr, \'\' AS entsteh, \'\' AS letzff, \'\' AS status, \'\' AS flaeche, \'\' AS karte, \'\' AS kreisid, \'\' AS kreisname, \'\' as gemkgschl, \'\' AS gemkgname, \'\' AS gemeinde, \'\' AS gemeindename,\'\' AS finanzamt,\'\' AS finanzamtname, \'\' AS forstschluessel, \'\' AS forstname, \'\' AS lagebezeichnung, \'\' AS nutzung, \'\' AS ausfstelle,\'\' AS verfahren, \'\' AS vorgaenger, \'\' AS nachfolger, \'\' AS bestandsnr,\'\' AS eigentuemer, \'\' AS freitext, \'\' AS hinweis,\'\' AS baulasten, \'\' AS amtsgerichtname, \'\' AS amtsgerichtnr,\'\' AS grundbuchbezirkname, \'\' AS grundbuchbezirkschl, \'\' AS klassifizierung FROM ax_flurstueck AS f WHERE 1=1','the_geom from (select wkb_geometry as the_geom, ogc_fid from ax_flurstueck) as foo using unique ogc_fid using srid=25833','','','','','','',NULL,NULL,'',@connection,'','6','ogc_fid','ogc_fid','3','pixels','25833','Flurstuecke_customALKIS.php','1',NULL,'1000',NULL,NULL,'','EPSG:25833','ALK-Flurstücke','1.1.0','image/png','60','','','','','1','0');
 SET @last_layer_id582=LAST_INSERT_ID();
 INSERT INTO classes (`Name`,`Layer_ID`,`Expression`,`drawingorder`,`text`) VALUES('alle',@last_layer_id582,'','0','');
 SET @last_class_id=LAST_INSERT_ID();
 INSERT INTO styles (`symbol`,`symbolname`,`size`,`color`,`backgroundcolor`,`outlinecolor`,`minsize`,`maxsize`,`angle`,`angleitem`,`antialias`,`width`,`minwidth`,`maxwidth`,`sizeitem`) VALUES(NULL,'','1','-1 -1 -1','  ','0 0 0',NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,'');
 SET @last_style_id=LAST_INSERT_ID();
 INSERT INTO u_styles2classes (style_id, class_id, drawingorder) VALUES (@last_style_id, @last_class_id, 0);