MXD2map - ein freier Konverter von ArcGIS MXD-Dateien zu UMN MapServer
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Untertitel |
| |
Serientitel | ||
Anzahl der Teile | 47 | |
Autor | ||
Lizenz | CC-Namensnennung 3.0 Unported: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/15892 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
|
2
4
7
9
11
14
16
17
21
25
27
28
29
31
34
35
36
44
45
47
00:00
Gleitendes MittelMIDI <Musikelektronik>DatenbusServerCONSULTANT <Datenbank>GeometrieSummierbarkeitDigital-Analog-UmsetzerOpen SourceInverser LimesARC <Programmiersprache>EbeneLinieArcGISDesktopSpezialrechnerWINDOWS <Programm>Oracle <Marke>Apache <Programm>TheoremDienst <Informatik>DatenhaltungWärmeübergangLINUXDatenendeinrichtungMehrwertnetzHTMLMailing-ListeQuellcodeDownloadingWeb SiteWeb-SeiteInformationPostgreSQLEnde <Graphentheorie>Digital-Analog-UmsetzerQuelle <Physik>ArcGISMAPMetadatenRechnenDienst <Informatik>Umsetzung <Informatik>ChipkarteDatentypPolygonTabelleSoftwareentwicklerTemplateServerORACLSApache <Programm>Version <Informatik>QuellcodeMengeAPIPlug inZugriffLINUXDesktopElement <Mathematik>VolumenvisualisierungBetriebssystemDatenbanksystemSelbstrepräsentationDatensatzOpen SourceClientSpielraum <Wahrscheinlichkeitstheorie>RetrievalspracheGeodätische LinieFilterung <Stochastik>PunktSoftwareWindows LiveFunktionalitätDatenbankDateiWINDOWS <Programm>Komponente <Software>KonfigurationsraumMechanismus-Design-TheorieDatenhaltungXMLInhalt <Mathematik>URLDateiformatSchnittstelleAktion <Informatik>InterleavingBiproduktJoyce <Computer>Äußere Algebra eines ModulsFlussdiagramm
Transkript: Deutsch(automatisch erzeugt)
00:00
Damit übergebe ich an Stefan Holl von der Intuvation. Danke Jörg, vielen Dank für die Einleitung. Mein Name ist Stefan Holl von der Firma Intuvation. Ich möchte den letzten Vortrag in diesem Slot halten und Ihnen das Projekt MXD2Map vorstellen. Unter der gleichnamigen URL auch erreichbar. Es ist ein Konverter für SV-MXD-Dateien in UMN Map Server Map Files.
00:26
Die beiden Buzzwords, die darin im Titel zu finden sind, MXD und UMN Map Server, sollte einem eigentlich ein Großteil bekannt sein. Vielleicht noch ein Stück weit zu der Geschichte, wie es dazu kam, so ein Projekt zu etablieren.
00:42
Wir sind von einem Kunden gefragt worden, ob wir eine Möglichkeit finden. Wir kennen ca. 2000 Layer, die ungefähr in mehreren hundert MXD-Dateien abgelegt sind und als Services verfügbar sind, in UMN Map Server zu migrieren.
01:01
Grundsätzlich ist das natürlich machbar, aber das macht man natürlich nicht mit der Hand, weil das mehrere Mannjahre Arbeit sind. Darüber hinaus will man ja idealerweise auch wieder so ankommen oder sein Kartenbild so am Ende haben, wie man es denn auch vorher kannte. Aber ich habe ja das moderne Gerät.
01:21
Und da komme ich auch zur Agenda. Ich will heute darüber sprechen, was MXD2Map eigentlich ist, wieso es zu diesem Projekt kam, wie es funktioniert, was man damit alles machen kann. Dazu gehört natürlich auch, was man damit nicht machen kann. Dann will ich so ein bisschen die Technik beleuchten, die da drin steckt
01:41
und erläutern, warum wir uns für derartige Technologie entschieden haben, ein paar Anwendungsbeispiele zeigen und natürlich darüber hinaus weitere Entwicklungen zeigen. Es ist freie Software als solches. Das heißt, derartiges Produkt ist natürlich immer bedarfsgetrieben.
02:00
Das heißt, die Anforderungen, die wir initial hatten, sind hier primär umgesetzt worden. Es gibt weitere Anwendungsfälle, die jetzt auf der sogenannten Roadmap stehen. Die will ich Ihnen zeigen, wohin wir da gehen wollen. Und Ihnen das Projekt einfach ein bisschen näher bringen. Man muss dazu sagen, es ist ein ganz junges Projekt. Das ist in der Version 1.0 jetzt veröffentlicht.
02:22
Da ist also noch eine ganze Menge Spielraum nach oben, was an Möglichkeiten da sind. Kurz nochmal zu mir. Mein Name ist Stefan Holl. Ich bin Projektleiter bei der Firma Innovation GmbH, setze den UMN Map Server seit circa 2003 aktiv ein. Gerne auch in einer Kombination mit PostGIS im Backend,
02:44
um eine schlagkräftige WebGIS-Komponente auf der Serverseite zu haben. Darüber hinaus bin ich aktiv im FosGIS e.V., auch hier in der Konferenz im Programmkomitee und als Geo-Mitglied. Kurz, was ist MXD2Map? Der Name soll das schon so ein bisschen suggerieren.
03:03
Wie gesagt, er konvertiert SRE-MXD-Dateien in UMN Map Server Map Files. Kurz dazu, was ist ein MXD? Wer weiß das nicht? Das ist gut, dann brauche ich das nicht mehr erklären. Wie gesagt, in diesen MXDs sind sehr viele, leider binär vorgehaltene Informationen über Gestaltungsvorschriften, Datentypen und dergleichen,
03:28
die eben mit SRE-Produkten auslesbar sind und an denen sind wir interessiert. Die wollen wir haben, um sie in die entsprechenden Map-File-Syntax zu überführen. Der Map Server als solches ist so aufgebaut, dass man ein textuelles Map-File bekommt,
03:43
wo Gestaltungsvorschriften drinstehen, wo die Quellen der Daten hinterlegt sind, also ein Connection-String zur PostGIS-Datenbank, ein Fazit zum Shape-File, zu einem Rasterbild usw. Und diese Dinge wollen wir sozusagen schreiben. Darüber hinaus ist es für uns natürlich wichtig, die Darstellungen, so wie sie in dem originären File enthalten sind, auch im UMN Map Server letzten Endes wieder abzubilden.
04:10
Die Herausforderung bestand hier ganz klar in der Symbolik. Hintergrund ist, dass der Kunde in einer sehr symbolträchtigen Branche arbeitet,
04:22
er ist in der Hydrographie tätig, das heißt, er hat sehr viele detaillierte Symboliken in seinen MXDs versteckt. Die will er natürlich auch überführt wissen, sodass das Kartenbild identisch erscheint. Natürlich will er auch nicht seine ganze Datengrundlage umstellen.
04:41
Das heißt, er ist sehr stark SRE-orientiert, hat die Daten in einer ARC-SDE-Datenbank liegen und die will er natürlich nicht ändern. Das heißt, ein Export daraus in Shape-Files oder in Postgres ist nicht adäquat, sondern das Resultat in dem Map-File soll selbstverständlich dann die Daten, die in der Primärdatenbank liegen, auch bitte schön nutzen.
05:02
Das ist eine klassische Anforderung, die wir zu lösen hatten. Natürlich hat auch der Kunde kein Interesse daran, seine Mitarbeiter umzuschulen, um irgendwelche anderen Werkzeuge zu benutzen, sondern er möchte seinen klassischen Workflow weiter behalten. Das heißt, das Gestalten der Karten soll nach wie vor in dem bekannten Umfeld passieren,
05:22
sprich in ArcGIS, möchte da seine Kartengestaltung vornehmen, Klassifikationen und so weiter, seine Layouts zusammenstellen und möchte das dann aber gerne als WMS- oder WFS-fähiges Map-File exportieren. Idealerweise natürlich irgendwo aus der Toolbox klicken, Public as WMS
05:40
und dann fällt es irgendwo raus und er kann sein WMS publizieren. Natürlich war dem Kunden auch wichtig, dass er es als freie Software publiziert. Wir haben natürlich geschaut, welche Lizenz ist dann passend. Hier in unserem Fall haben wir uns für die GNU-Lesser-GPL-Lizenz entschieden.
06:04
Einfach aus dem Hintergrund, da komme ich gleich in der technischen Umsetzung noch darauf, weil uns das vorgegeben ist, einfach unter der Bedingung, da wir einige Bibliotheken verwenden, die eben auch diese Lizenzierung schon haben. Wie funktioniert das ganze Werkzeug?
06:22
Hier so ein grobes, schematisches Bild. Das heißt, ganz oben da sitzt derjenige, der sein Kartenbild erstellt. Das heißt, er arbeitet an der Karte, lädt seine Layer hinzu, klassifiziert sie, malt sie bunt an, stellt Linienstärken ein und so weiter und so fort,
06:41
wie man eben eine Karte im Desktop-GIS gestaltet und speichert das Ganze in seine MXD-Datei. Diese MXD-Datei liegt irgendwo auf dem Netzlaufwerk, irgendwo auf seinem Rechner rum. Und der nächste Schritt, der dann hier diesen MXD-to-Map-Converter beschreibt, ist folgender.
07:01
Das heißt, diese MXD-Datei wird dem Konverter zugeführt. Wie das bei Konvertern immer so schön ist, kann man den auch gerne mannigfaltig konfigurieren. Wir haben uns da sehr nah an dem Map-File gehalten. Das heißt, wir haben einen Templating-Mechanismus etabliert,
07:20
auf Basis dessen man sein resultierendes UMN Map-Server Map-File schon vorstrukturieren kann. Der geneigte Map-Server-Benutzer kennt derartiges sicherlich. Der kennt die Fähigkeiten, Map-File-Teile mit Include-Files und dergleichen in einen Master-Map-File zu integrieren.
07:41
Diese Art von Konfigurationen nehmen wir uns hier auch als Grundlage. Darüber hinaus haben wir Metadaten und solche Sachen eben konfigurierbar. Das Schöne ist, dieses Template kann von der Map-Server-Komponente im Vorfeld eingelesen werden. Über die Java-Map-Script-Variante wird es auf Basis der Inhalte, die in dem MXD-File enthalten sind, sukzessive gefüllt.
08:11
Das heißt, über die ARCGIS-Engine, die wir hier anbinden, über das Java-Backend oder die Java-API anbinden,
08:25
haben wir ein sogenanntes Mittelformat hier in der Mitte. Das heißt, es ist ein einheitliches Format, wo wir die MXD-Dateien lesen. Und an dieses Mittelformat stecken wir dann sozusagen Java-Map-Script dran als Writer, der dann am Ende unsere Map-Datei rausschreibt.
08:46
Das ganze Werkzeug ist so generisch gehalten, dass ich den Writer-Part, der hier jetzt Map-Server-spezifisch ist, theoretisch auch austauschen könnte, indem ich einfach einen weiteren Writer schreiben würde, der dann, weiß ich nicht, QGIS-XML schriebe oder so was oder MAPNIC oder was auch immer als Konfigurationsdatei rausschreiben würde.
09:07
Das ist also die ganz einfache Funktion, natürlich ist es technisch etwas komplizierter, insbesondere wenn man sich mit der ARCGIS-Engine auseinandersetzen muss, die von der Sache hier einfach, ja, zwar dokumentiert, aber eher groß und umfangreich ist und man doch ein bisschen suchen muss, wenn man sich da nicht jeden Tag drin bewegt,
09:25
aber eben die Möglichkeit bietet, auf jedes kleine Detail innerhalb einer MXD-Datei auch programmatisch zugreifen zu können. Das ist also eigentlich, wenn man hier unten angekommen ist, schon das Ende der Idee. Natürlich geht es weiter. Es gibt eine Preview-Ansicht sozusagen.
09:43
Dafür brauche ich natürlich noch in irgendeiner Form einen Web-Server. Ich habe hier mal Apache hingemalt. Auch ein Client wäre hilfreich, also ein Open-Layers-Client oder so, der dann die resultierenden WMS-Dienste konsumiert, um dann das Ergebnis sozusagen direkt on the fly testen zu können.
10:03
Ja, das ist also der klassische Workflow, den man bei MXD2MAP vorfindet. Als Features sind, ich nenne es Feature, an manch anderer würde sagen, es ist kein Feature. Ich finde die Kommandozeilen-Schnittstelle als Feature einfach aus dem Grunde, weil, wie eingangs schon gesagt,
10:23
man knapp 2000 Datenlehrer erzeugen möchte, möchte man die nicht alle manuell mit der Hand bearbeiten, sondern über eine entsprechende Batch-Prozessierung kommandozeilenorientiert abarbeiten lassen. Natürlich kann man sich das Ganze in die ArcToolbox integrieren, wenn man es als Click-Werkzeug haben möchte.
10:43
Aktuell haben wir eine Unterstützung von der ArcSDE als Datenquelle. Wie gesagt, das war der Bedarf, der zu lösen war. Wir mussten eben diese Daten aus der ArcSDE wiederholen. Der Einfachheit halber als Fingerübung sind auch Shapefiles unterstützt. Ich nenne es jetzt mal das einfachste Format, das gut dokumentierteste Format.
11:05
Grundsätzlich sind aber auch alle anderen OGR-Formate nötig, die vom Map-Server unterstützt werden. Wenn man sich mit der AP von der ArcS, vom ArcGIS-Engine-Produkt etwas näher auseinandersetzt,
11:21
wird man merken, dass man eine unglaubliche Vielfalt an Symboliken unterstützt. Wir haben uns hier auf die sogenannten Markerlayer, die mit TrueType-Symbolen ausgestattet sind, eingeschossen. Zum Glück waren ein Großteil der Daten entsprechend mit TrueType-Symbolen und TrueType-Schriftsymbolen referenziert, was eben durch den OMM-Map-Server auch unterstützt wird.
11:42
Man kann darüber Symboliken definieren, die auf ein Zeichen innerhalb eines Schriftsatzes mappen und man bekommt dann entsprechend das Symbol für eine Boje, die links oder rechts oder was auch immer zu stehen hat, die alle einzelne Bedeutungen haben, die eben sehr vermehrt in den MXD-Dateien vorgefunden waren. Natürlich aber auch Picture-Marker, das heißt irgendwelche geologischen Symbole,
12:04
die man als Flächenfüllung an Polygon heranbringen muss, all solche Dinge sind in solchen Picture-Markern implementiert. Das sind eben einige Spezialitäten, die jetzt für unsere Fachanwendung sozusagen umgesetzt wurden. Darüber hinaus gibt es Unterstützung für Klassifikationen, das heißt, ganz klassisch gibt es auch da eine Unmenge an Möglichkeiten in ArcGIS.
12:27
Wir haben uns hier auf ein Subset beschränkt, mit dem man eben klassifizieren kann. Man kann eben Klassifikationen auch noch weiter gruppieren. Das machen wir hier für den WMS-Dienst dann in WMS Group Layer,
12:42
sodass man dann eine Verschachtlung von thematischen Dingen hat. Maßstabsabhängiges Zeichnen von Elementen ist natürlich auch einfach. Insbesondere bei Labeln macht das Sinn, wenn man eben in tiefere Zoom-Stufen vordringt, dass dann zu einigen Punkten im Label angestellt werden, all solche Sachen. Das sind die Dinge, die in dem Projektort oder in den vorgefundenen MXD-Dateien am häufigsten vorkamen.
13:07
Und was in unserem Falle sehr wichtig war, sind Filterbedingungen. Das heißt, sehr komplexe Filterbedingungen auch. Einfach auf der Tatsache geschult, dass die Daten, die in der STE-Lagen sehr stark normalisiert wurden,
13:20
insofern sehr viele Joints nötig sind, um an die Informationen, die man möchte, dann wirklich auch ranzukommen. Klar, man würde sagen, für eine Online-Präsentation nicht so ideal, wissen wir alle. Ja, ist nicht so ideal, aber da musste eben um hingearbeitet werden, dass man mit sehr vielen Joints auch auf Layerebenen umgehen konnte.
13:40
Da ist der Mapserver nicht immer so nett gewesen zu uns. Er musste dann doch noch ein bisschen getreten werden, dass er das auch tut und mehrere Joints über mehrere Tabellen auch auf ARC-STE-Themen erlaubt. Aber das ist ein Feature und entsprechend hier in MX-D2-Map implementiert. Ja, zur Technik habe ich schon einiges gesagt. Wir haben den UMN Mapserver 6.x im Einsatz.
14:04
Zur damaligen Zeit mussten wir da am Trunk arbeiten, einfach weil da auch noch Änderungen eingegangen sind von uns. Und wir haben eben die Java-Mapscript-Variante verwendet. Klassischerweise ist natürlich, dass die Standardbibliothek für den Zugriff auf Geodaten, Gedal, OGR im Spiel,
14:23
hier besonders mit den entsprechenden Plugins für ARC-STE, File Geo Database, Oracle und so weiter. Auf der Klientseite ist die API so ausgelegt, dass die ARC-Desktop 10.x angesprochen wird. Und die darin enthalten ARC-IS Engine.
14:41
Das heißt, wenn man MX-D2-Map nutzen möchte, braucht man zwingend entweder einen ARC-IS Desktop oder die etwas weniger teure ARC-IS Engine, die eben programmatisch die Möglichkeit bietet, die Desktop-Funktionalitäten sozusagen umzusetzen. Wenn man die eben schon angesprochene Previewing-Funktionalität oder muss man sich noch einen Mapserver installieren,
15:03
der dann entsprechend ein Mapserver Binary zum Rendern des Mapfiles sozusagen darstellt. In der jetzigen Version 1.0 ist das Ganze unter Windows livefähig. Das leider spare ich mir jetzt mal. Allerdings haben wir es nicht hingekriegt, diese ganze ARC-IS Engine,
15:21
die von ESRI auch für Linux zur Verfügung gestellt wird, unter selbigem Betriebssystem lauffähig zu machen. Das tat ums Verrecken nicht. Insofern, wer da Lust hat und Hinz mir geben kann, der spricht mich gerne an, wie man sowas unter Linux zum Laufen kriegt. Wir haben es leider nicht geschafft. Insofern gibt es die fertigen Varianten aktuell als Windows-Binary.
15:44
Zum Anwendungsfall. Anwendungsbeispiele sind, wie eben schon gesagt, die Migration von großen Datensätzen zum UMN Mapserver. Wahrscheinlich wird man den ganzen Overhand nicht machen, wenn ich irgendwie 5 MXDs mit 3 Layern jeweils migrieren will. Das habe ich wahrscheinlich auch in hinreichend schneller Zeit
16:01
mit der Hand gemacht. Spannend sind eben große Datenmengen, die man als OGC-Dienst publizieren möchte. Ich brauche keine manuellen Mapfile-Kenntnisse mehr. Das heißt, man muss keine Textdatei schreiben. Ich brauche, um derartige Dinge zu publizieren, auch keine ArcGIS-Server-Komponente.
16:21
Und ein großer Vorteil, die Datenhaltung, wo die Daten liegen, auch die Kartengestaltungs-Workflows, die bleiben erhalten wie gehabt. Das ist für viele ein entsprechend großer Vorteil. Wie sieht das Ganze aus? Mal beispielhaft an einem relativ einfachen Datensatz.
16:40
Historisch bedingt habe ich die Frida-Daten genommen. Mittlerweile ist ein Open-Street-Map aufgegangen und nicht mehr so simpel, wie hier dargestellt. Das heißt, das sind jetzt hier 5 Shapefiles, die in einem MXD abgespeichert werden und in der Previewing-Ansicht dann hier rausfallen. Man sieht das.
17:00
Ich habe das hier jetzt mal als Lokal, als Mapserver sozusagen aufgebaut. Und die entsprechenden visuellen Repräsentationen der einzelnen Datenlayer kann man dann direkt sehen. Das ist jetzt nicht so spektakulär. Spannend ist es sicherlich, das mal an eigenen Daten zu sehen, was dann passiert.
17:22
Und insofern, solche Konverter sind eben fürs Auge immer ein bisschen schwierig darzustellen, genau wie Datenbanken. Die machen einfach so visuell nicht so viel her. Als Roadmap will ich trotzdem noch ein paar Ideen mit reinreichen, die jetzt auf der Agenda stehen. Wir werden idealerweise den Datentyp
17:47
ARC-SDE-Raster unterstützen wollen, einfach um auch an die am Kunden vorhandenen Rasterdaten ranzukommen. Jedes andere Format kann man relativ einfach implementieren, einfach aus dem Grunde, weil wir das in einem Mittelformat haben und dann muss man einfach nur den Teilbereich dranbauen,
18:03
der sozusagen den Writer schreibt, also den Teil des Mapfiles sozusagen rausschreibt. Darüber hinaus wollen wir gerne eine bessere Labelunterstützung, die ist sehr simplifiziert. Wer ARC gescannt und die ganzen Maplex Extensions, wie sie alle heißen zum Labeln, wird merken, dass das, was wir haben,
18:21
natürlich kartografischen Ansprüchen nicht entspricht, ist aber nicht schlimm. Trotzdem wollen wir uns da noch verbessern. Auch die Filterung von Geodaten soll noch etwas verbessert werden, um auf Basis von einem Layer mehrere Visualisierungsmöglichkeiten zu schaffen. Cardo-Theagramme wollen unterstützt werden. Ein großes Thema sind die sogenannten Query Layer,
18:42
die man in ARC gescannt, um eben auch PostGIS-Daten dann direkt zu migrieren, ohne noch mal einen neuen Layer im Mapfile schreiben zu müssen. Und mir persönlich liegt das am Herzen, dass man das irgendwann auch mal unter Linux zum Laufen kriegt. Ja, MXD2Map ist freies Software.
19:03
Es gibt einen Community Support über eine Mailing-Liste, der Quellcode liegt zur Verfügung. Es ist ein Download-Paket, da ein Windows-Installer, wie heißt das schon, so eine Setup-Exit, die man sich runterladen kann, installieren kann, mit einem Beispiel-Datensatz, der integriert ist, um eben gleich loslaufen zu können,
19:21
einen professionellen Support gibt es natürlich auch. Und jeder, der daran Interesse hat, den lade ich natürlich gerne ein, auf der Webseite mal zu schauen, da ein bisschen rumzustöbern. Ich bin noch bis Donnerstag hier, falls Sie Fragen haben, können Sie mich gerne ansprechen, jetzt oder möglicherweise auch später. Vielen Dank.