Umsetzung von geometrischen Daten in Datenbanken in eine

Werbung
Umsetzung von geometrischen Daten in Datenbanken in eine
Shape-Struktur
Version 1.1
Stand 27.09.2005
TOPO graphics
Geoinformationssysteme GmbH
Telefon
Fax
(02225) 94 88 00
(02225) 94 88 90
Neuer Markt 27
53340 Meckenheim
Email
[email protected]
http: //www.topographics.de
1 Allgemeines
MySQL2Shp ist ein Kommandozeilenprogramm, welches mit Parametern gestartet wird. Es wandelt
geometrische Daten aus einer MySQL-Datenbank in eine Shape-Struktur um. Dabei werden sowohl die
Geometrien als auch die Attribute übernommen. Vorraussetzung für die Nutzung des Programms ist eine
geometriefähige Version der MySQL-Datenbank.
2 Aufrufparameter
Das Programm kann auf zwei unterschiedliche Arten aufgerufen werden. Zum einen können die Parameter direkt
in der Kommandozeile übergeben werden, zum anderen besteht die Möglichkeit der Nutzung einer
Parameterdatei. Diese Varianten werden im Folgenden erläutert.
2.1 Start über direkten Aufruf in der Kommandozeile
Die Parameter werden aufeinander folgend in der Kommandozeile angegeben.
Parameter:
°
–host:<rechnername>
» Hostname des MySQL
°
–port:<port>
» Portnummer
optionaler Parameter, falls nicht angegeben, wird
Defaultwert (3306) verwendet
°
–user:<username>
» Username für Anmeldung an MYSQL-Datenbank
°
–pwd:<passwort>
» Passwort für Anmeldung an MYSQL-Datenbank
°
–DB:<datenbankname>
» Datenbank für den Zugriff
°
–tab:<tabellenname>
» Tabelle mit Geometrieobjekten
°
–shp:<zielshapedatei>
» Zielshape mit kompletter oder relativer Pfadangabe
An den Dateiname wird jeweils Endung _a, _l , _p bzw.
_t für die jeweiligen Geometrietypen angehängt.
optional:
° –shp_a:<zielshapedatei>
» Name des Zielshapes für Flächen mit kompletter oder
relativer Pfadangabe
° –shp_l:<zielshapedatei>
» Name des Zielshapes für Linien mit kompletter oder
relativer Pfadangabe
° –shp_p:<zielshapedatei>
» Name des Zielshapes für Punkte mit kompletter oder
relativer Pfadangabe
° –shp_t:<zielshapedatei>
» Name des Zielshapes für Texte mit kompletter oder
relativer Pfadangabe
Die optionalen Shapefile-Angaben überschreiben jeweils den vorher gesetzten globalen Wert für den
Namen des jeweiligen Geometrietyps!
°
–fields:<attributfelder>
» optionaler Parameter
Angabe der zu übernehmende Attribute (Spalten)
der Datenbank.
Ist dieser Parameter nicht angegeben, werden alle
Attribute übernommen
Bei der Verwendung mehrerer Tabellen und
Datenbanken erfolgt die Angabe:
Datenbank.Tabelle.Spalte
Aufbau von <attributfelder>:
Name des Attributes in MySQL#Name in DBF#Typ/Breite (Typ: T=Text,G=Ganzzahl,R=Reelle Zahl)
z.B.: MYSQLATTR#DBFATTR#T30
Name in der DBF-Tabelle sowie Typ und Breite des Attributes sind optional!
optional:
° –fields_a:<attributfelder>
» Angabe der zu übernehmende Attribute (Spalten) für
Flächen
° –fields_l:<attributfelder>
» Angabe der zu übernehmende Attribute (Spalten) für
Linien
° –fields_p:<attributfelder>
» Angabe der zu übernehmende Attribute (Spalten) für
Punkte
° –fields_t:<attributfelder>
» Angabe der zu übernehmende Attribute (Spalten) für
Texte
Die optionalen Fields-Angaben überschreiben jeweils den vorher gesetzten globalen Wert für Fields
des jeweiligen Geometrietyps!
°
–join:<Verknüpfung>
» optionaler Parameter
bietet die Möglichkeit der Angabe von JoinVerknüpfungen innerhalb der Abfrage
Bsp:
-join:inner join tableB on tableA.spalte1=tableB.spalte2
°
–log:<protokolldatei>
» optionaler Parameter
Ist eine Datei angegeben, werden Informationen
zur Datenumsetzung, Parameter, Hinweise, Warnungen und Fehler in diese Datei geschrieben,
andernfalls erfolgt keine Dokumentation.
°
–sql:<bedingung>
» optionaler Parameter
Mit diesem Parameter kann eine sachliche
Selektion der zu übernehmenden Objekte erfolgen
°
–area:<polygonangabe>
» optionaler Parameter
Mit diesem Parameter kann eine räumliche Selektion der zu übernehmenden Objekte erfolgen.
Als Angabe sind hier zwei Arten zulässig, zum
einen erfolgt sie durch Angabe eines Polygons im
WKT-Format. Die zweite Möglichkeit ist die
Angabe einer Shape-Datei, welche die Polygone
für die Einschränkung des Gebietes enthält.
°
–areaxy:<Rechtswertfeld>;<Hochwertfeld>» optionaler Parameter
Werden hier Spalten für Rechts-und Hochwert
angegeben, wird für die Ermittlung der im Area
liegenden Objekte dieser Objektpunkt und nicht
alle Objektpunkte verwendet.
°
–d oder –d+
» optionaler Parameter
Leere Shapes werden entfernt, d.h. wenn z.B.
keine Punktobjekte enthalten sind, wird auch
keine Punkt-Shapedatei angelegt.
Ist dieser Parameter nicht angegeben, werden
immer alle Dateien erzeugt.
°
–d–
» optionaler Parameter
Leere Shapes werden nicht entfernt, d.h. wenn
z.B. keine Punktobjekte enthalten sind, wird
trotzdem eine Punkt-Shapedatei angelegt.
Mit dieser Option kann bei mehreren
Parameterdateien die Option –d bzw. –d+
rückgängig gemacht werden.
°
–a oder –a+
» optionaler Parameter
Daten werden an vorhandene Shapes angehängt.
Ist dieser Parameter nicht vorhanden, werden die
bestehenden Shapedateien gelöscht und die
Struktur neu erzeugt.
°
–a–
» optionaler Parameter
Bestehende Shapedateien werden vor der
Umsetzung gelöscht gelöscht und neu erzeugt. Mit
dieser Option kann bei mehreren Parameterdateien
die Option –a bzw. –a+ rückgängig gemacht
werden.
°
–txt:<textfeld>
» optionaler Parameter
Hier kann eine Spalte für ein Textfeld angegeben
werden. Ist ein Eintrag vorhanden wird eine
zusätzliche Text-Shapedatei angelegt. Andernfalls
werden nur Punkte Linien und Flächen erzeugt.
°
–t2:<rotationsfeld>;<Linienlänge>
» optionaler Parameter
Ist dieser Parameter vorhanden, werden Texte als
Linienobjekte erzeugt. Das Rotationsfeld wird für
hierbei für die Linienerstellung von Punkten
benötigt. Ist der Parameter nicht vorhanden, erfolgt
eine Erzeugung von „Textpunkten“. Die
Linienlänge ist optional. Wird hier ein Wert
angegeben, werden die Linien für die Texte in der
angegebenen Länge erzeugt. Bei Nichtangabe wird
die Default-Länge 0.5 (Meter) verwendet.
°
–geotyp:<geometrietypspalte>
» optionaler Parameter
Angabe eines Feldes zum Checken des
Geometrietyps (1..Punkt, ..Linie,3..Fläche,4..Text)
Ist dieses Feld nicht vorhanden erfolgt die Analyse
des Geometrietyps über das Geometriefeld. Ein
Objekt wird hierbei dem Typ „Text“ zugeordnet,
wenn das Feld aus dem Parameter –txt keinen
Leeren String enthält.
°
–Winkel:Feldname;Richtung;Winkeladdition » optionaler Parameter
Winkelkorrektor des Winkels, der im Feld
<Feldname> enthalten ist:
Richtung 0|1: Drehsinn nicht umkehren | umkehren
Winkeladdition: angegebenen Winkel aufaddieren
°
–fkz:<feldname>;Z<offset1>;N<offset2>
» optionaler Parameter
Flurstückstexte erzeugen:
<Feldname>: DBF-Spalte mit Objektschlüsseln
<Zoffset1>: Zähler-Offset in y-Richtung
(vom Bruchstrich)
<Zoffset2>: Nenner-Offset in y-Richtung
(vom Bruchstrich)
°
–zielmeridian:<Meridianstreifennummer>;<Spalte1>;<Spalte2>;…
» optionaler Parameter
Die Koordinaten der Objekte werden in den
angegebenen Meridianstreifen transformiert:
Werte: 2,3,4 oder 5
(DHDN Gauß-Krüger Meridianstreifen 2-5)
Die Spalten geben die Spalten an, welche bei der
Meridianstreifentransformation mit berechnet und
umgesetzt werden sollen. Mehrere Spalten werden
mit Semikolon getrennt.
°
–zielepsg:<EPSG-Code>
» optionaler Parameter
Die Koordinaten der Objekte werden durch
Angabe des EPSG-Codes in den
angegebenen Meridianstreifen transformiert:
Werte: 31465, 31466, 31467, 31468, 31469
(DHDN Gauß-Krüger Meridianstreifen 2-5)
Beispiele eines Aufrufs:
MySQL2SHP.exe -host:localhost -port:3306 -user:root -pwd: -DB:alk -tab:alkobjekte -shp:"E:\projekte\021.shp"
-fields:rotation;txt;folie;objektid;fachbedeutung -log:"E:\projekte\021.log" -sql:(folie=21) -d -a -txt:txt -t2:rotation
MySQL2SHP.exe -host:mapserver2 -port:3306 -user:root -pwd: -DB:muster_nrw -tab:alkobjekte -shp:"E:\ projekte\001_b.shp"
-fields:rotation;txt;folie;objektid;fachbedeutung -log:"E:\ projekte \001.log" -sql:(folie=1) -d -txt:txt -a
-area:"POLYGON((2518399.736 5686857.761,2518670.303 5686727.384,2518657.686 5686573.175,2518583.385
5686557.754,2518450.204 5686619.438,2518424.97 5686651.681,2518394.128 5686718.973,2518394.128
5686724.58,2518394.128 5686724.58,2518399.736 5686857.761))"
2.2 Start mit Hilfe einer Parameterdatei
Für die Verwendung einer Parameterdatei muss in der Kommandozeile nur ein Parameter angegeben werden,
welcher einen Verweis zur Parameterdatei liefert:
-
-param:<parameterdatei>
.. Angabe des vollen Pfad- und Dateinamen nötig
Beispiel eines Aufrufs:
MySQL2SHP.exe -para:E:\ projekte\paramfile.txt
In der Parameterdatei müssen dann die oben genannten Parameter zeilenweise aufgelistet sein.
Beispiel einer Parameterdatei:
-host:mapserver2
-port:3306
-user:root
-pwd:
-DB:muster_nrw
-tab:alkobjekte
-shp:"E:\projekt\001_b.shp"
-fields:rotation;txt;folie;objektid;fachbedeutung
-log:'E:\projekt\test\001.log'
-sql:(folie=1)
-d
-txt:txt
-a
-area:POLYGON((2518399.736 5686857.761,2518670.303 5686727.384,2518657.686 5686573.175,2518583.385
5686557.754,2518450.204 5686619.438,2518424.97 5686651.681,2518394.128 5686718.973,2518394.128 5686724.58,2518394.128
5686724.58,2518399.736 5686857.761))
-areaxy:OK_RW;OK_HW
Es besteht die Möglichkeit, mehrere Parameterdateien anzugeben. Hierbei wird derselbe Parameter mehrmals
angegeben. Die Parameterdateien werden in der angegebenen Reihenfolge ausgelesen. Dabei werden bereits
gelesene Einstellungsparameter durch neu angegebene ersetzt. Mit diesem Prinzip ist es möglich, eine BasisParameterdatei mit den Grundeinstellungen (Bsp.: Host, Port, User, Datenbank,…) und mehrere weitere Dateien
mit erweiterten Einstellungen (Bedingung, Felder,…) zu erstellen.
Zu beachten ist nur, dass für eine Umsetzung alle nötigen Parameter gesetzt werden müssen, egal aus welcher
Parameterdatei.
Beispiel eines Aufrufs:
MySQL2SHP.exe -para:E:\ projekte\basisparamfile.txt -para:E:\ projekte\paramfile_01.txt
MySQL2SHP.exe -para:E:\ projekte\basisparamfile.txt -para:E:\ projekte\paramfile_02.txt
Lizenzbestimmungen der Komponente Shapelib:
Der Konverter nutzt für das Ausgabeformat "Shape" die bekannte "Shapefile C Library V1.2" von Frank
Warmerdam (siehe auch: "http://shapelib.maptools.org"). Diese Library wurde zur Datei "shapelib.dll"
kompiliert, die dann vom Konverter dynamisch hinzugelinkt wird.
Die Verwendung der "Shapefile C Library" unterliegt in diesem Fall der "MIT Style" license, welche die
unbeschränkte Nutzung und Verbreitung der Library unter den Bedingungen gestattet, das die Copyright- und
Nutzungs- bestimmungen mit der Software weitergereicht werden.
Nachfolgend ist daher die Lizenzbestimmung aufgeführt, die unter
http://shapelib.maptools.org/license.html
zu finden ist.
Copyright (c) 1999, 2001, Frank Warmerdam
This software is available under the following "MIT Style" license, or at the option of the licensee under the
LGPL (see LICENSE.LGPL). This option is discussed in more detail in shapelib.html.
..
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of
the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Herunterladen