<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>OpenStreetMap on Mein Blog</title>
    <link>https://blog.velocarte66.fr/tags/openstreetmap/</link>
    <description>Recent content in OpenStreetMap on Mein Blog</description>
    <image>
      <title>Mein Blog</title>
      <url>https://blog.velocarte66.fr/images/papermod-cover.png</url>
      <link>https://blog.velocarte66.fr/images/papermod-cover.png</link>
    </image>
    <generator>Hugo</generator>
    <language>de</language>
    <lastBuildDate>Fri, 18 Jul 2025 17:51:00 +0200</lastBuildDate>
    <atom:link href="https://blog.velocarte66.fr/tags/openstreetmap/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>QGIS: &#34;Traveling Salesman&#34;-Routing mit den ORS Tools</title>
      <link>https://blog.velocarte66.fr/posts/qgis-traveling-salesman-routing/</link>
      <pubDate>Fri, 18 Jul 2025 17:51:00 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/posts/qgis-traveling-salesman-routing/</guid>
      <description>&lt;p&gt;Im Umfeld von OpenStreetMap kommt es immer wieder mal vor, dass man eine Reihe von Objekten erkunden möchte, z.B. alle seit Jahren nicht mehr überprüften Geschäfte einer Stadt. Es ist recht einfach, solche Objekte aus der OSM-Datenbank zu extrahieren. Einen GPX-Track zu erstellen, mit dem man alle gefundenen Objekte auf optimale Weise abfahren kann, ist dagegen recht mühsam. Diese Aufgabenstellung, also den optimalen Weg zu ermitteln, auf dem eine Menge von geografischen Punkten besucht werden kann, wird &lt;a href=&#34;https://de.wikipedia.org/wiki/Problem_des_Handlungsreisenden&#34;&gt;Traveling Salesman Problem&lt;/a&gt; genannt, auf deutsch &lt;em&gt;Problem des Handlungsreisenden&lt;/em&gt;. Das Problem kann im Prinzip nur durch Ausprobieren aller Möglichkeiten gelöst werden, so dass der Aufwand mit der Zahl der Punkte exponentiell ansteigt. Die meisten verfügbaren Lösungen sind daher nicht perfekt, aber für den Hausgebrauch ausreichend. Neben OsmAnd und QMapShack bietet &lt;a href=&#34;https://openrouteservice.org/&#34;&gt;openrouteservice.org&lt;/a&gt; über sein API ein Traveling-Salesman-Routing an. Dieses kann auch über das QGis-Plugin &lt;em&gt;ORS Tools&lt;/em&gt; genutzt werden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Analyse der OSM-Historie nach Benutzer und Attributen</title>
      <link>https://blog.velocarte66.fr/posts/analyse-der-osm-historie-nach-benutzer-und-attributen/</link>
      <pubDate>Thu, 08 Jul 2021 09:12:43 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/posts/analyse-der-osm-historie-nach-benutzer-und-attributen/</guid>
      <description>&lt;h2 id=&#34;extrahieren-von-objekten-anhand-der-tag-historie&#34;&gt;Extrahieren von Objekten anhand der Tag-Historie&lt;/h2&gt;
&lt;p&gt;Mit dem Werkzeug &lt;a href=&#34;https://osmcode.org/osmium-tool/manual.html#filtering-by-tags&#34;&gt;osmium-tool&lt;/a&gt; kann man OSM-Extrakte nach Schlüssel/Wert-Kombinationen filtern. Das funktioniert auch mit History-Dateien. Dabei werden alle Objekte herausgefiltert, bei denen es mindestens eine Version mit der gesuchten Schlüssel-Wert-Kombination gibt. Auf diese Weise ist es z.B. möglich, alle Objekte zu extrahieren, bei denen der Wert eines Schlüssel in der Versionshistorie des Objekts in einer bestimmten Weise geändert wurde, z.B. von highway=track auf highway=service|unclassified|tertiary:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Create data file from history file to ensure consistency between data and history files:
osmium time-filter extract.osh.pbf -o extract.osm.pbf

# Get all ways with highway=track in any version 
# (Discard nodes in the first step in order to eliminate nodes that are no longer part of the current versions of the ways)
osmium tags-filter --omit-referenced extract.osh.pbf w/highway=track -o track-w.osm.pbf
osmium getid --id-osm-file track-w.osm.pbf --add-referenced extract.osm.pbf -o track.osm.pbf

# Keep only ways that are now service,unclassified or tertiary:
osmium tags-filter track.osm.pbf w/highway=service,unclassified,tertiary -o no-track.osm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Die Datei &lt;code&gt;no-track.osm&lt;/code&gt; kann mit JOSM geöffnet werden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPX-Track auf OpenStreetMap-Karte anzeigen und ausdrucken</title>
      <link>https://blog.velocarte66.fr/posts/gpx-track-auf-openstreetmap-karte-anzeigen-und-ausdrucken/</link>
      <pubDate>Tue, 09 Jul 2013 08:49:01 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/posts/gpx-track-auf-openstreetmap-karte-anzeigen-und-ausdrucken/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
Es gibt eine Reihe von Tools und Online-Diensten, mit denen man GPX-Tracks auf einer OpenStreetMap-Karte anzeigen kann: QLandkarteGT, GpsPrune, gpsies.com,... Beim Ausdrucken bzw. Erzeugen einer Vektorgrafik stößt man allerdings schnell an Grenzen. Die Darstellung der Tracks (Farbe, Breite, Transparenz) ist nicht konfigurierbar und der Zoomlevel wird anhand des Kartenausschnitts gewählt, usw. &lt;a href=&#34;https://www.youtube.com/watch?v=iBpScHEbX94&#34;&gt;Dieses Video&lt;/a&gt; hat mir einen Weg zur Lösung aufgezeigt: Quantum GIS (QGIS) mit OpenLayers-Plugin.
&lt;!--break--&gt;
&lt;h2&gt;OpenLayers-Plugin&lt;/h2&gt;
&lt;h3&gt;Installation&lt;/h3&gt;
Das &lt;em&gt;OpenLayers-Plugin&lt;/em&gt; ermöglicht es, OSM-Kacheln und Kacheln aus anderen mit OpenLayers darstellbaren Quellen (Google, Bing) in einem QGIS-Layer anzuzeigen. Dazu muss zunächst das Plugin installiert werden. Bis &lt;em&gt;QGIS 1.8&lt;/em&gt; funktioniert das problemlos mit mit dem Plugin Installer. Zunächst muss im Menü &#34;Erweiterungen&#34; der Plugin Installer installiert werden, dann kann mit diesem das OpenLayers-Plugin installiert werden. &lt;em&gt;QGIS 1.9/2.0&lt;/em&gt; ist mit dem Plugin nicht kompatibel. Es existiert aber ein Workaround, der hier beschrieben ist: [node:254].
&lt;h3&gt;Layer hinzufügen&lt;/h3&gt;
Danach erscheint im Menü &#34;Erweiterungen&#34; ein Untermenu &#34;Openlayers Plugin&#34;, über das eine Kachelquelle ausgewählt und mit einem Layer verknüpft werden kann.

Die Kacheln werden entsprechend dem Zoomlevel geschrumpft bzw, gedehnt, was zu einer unscharfen Darstellung führt. Ein Workaround besteht darin, den Maßstab explizit so einzustellen, dass die Kacheln in Original-Auflösung angezeigt werden. Stellt man den Maßstab 1:2257 ein, erhält man die Kacheln des Zoomlevels 18. Durch Zoomen mit der Maus bekommt man dann die Kacheln in den OSM-Zoomleveln angezeigt.
&lt;h3&gt;Weitere Kachelquelle hinzufügen&lt;/h3&gt;
Eine zusätzliche Kachequelle kann auf einfache Weise Hinzugefügt werden. Im Verzeichnis &lt;code&gt;~/.qgis2/python/plugins/openlayers_plugin/html&lt;/code&gt; existiert für jede Kachelquelle eine HTML-Datei, die den Javascript-Code enthält, mit dem der entsprechende OpenLayers-Layer erzeugt wird. Man erstellt nun eine Kopie einer dieser Dateien und passt den Code entsprechend an. Für OSM-kompatible Kachelquellen genügt es in der Regel, die Datei osm.html zu kopieren und den URL anzupassen.

Anschließend muss noch in &lt;code&gt;~/.qgis2/python/plugins/openlayers_plugin/openlayers_plugin.py&lt;/code&gt;, etwa bei Zeile 120, ein Eintrag für die neue Kachelquelle nach diesem Muster eingefügt werden:

&lt;code&gt;&lt;pre&gt;self.olLayerTypeRegistry.add( OlLayerType(self, &#39;OpenStreetMap&#39;, &#39;osm_icon.png&#39;, &#39;osm.html&#39;, True) )&lt;/pre&gt;&lt;/code&gt;

nach einem Neustart von QGIS ist die neue Kachelquelle verfügbar.

&lt;h2&gt;Alternative Methode&lt;/h2&gt; 
Ein anderer Weg zur Anzeige der OSM-Kacheln in QGIS ist &lt;a href=&#34;https://www.3liz.com/blog/rldhont/index.php?post/2012/07/17/OpenStreetMap-Tiles-in-QGIS&#34;&gt;hier&lt;/a&gt; beschrieben. 
&lt;h2&gt;GPX-Track&lt;/h2&gt;
Ein GPX-Track kann als Vektor-Layer angezeigt werden:
&lt;ul&gt;
   &lt;li&gt;Menüpunkt &lt;em&gt;Vektorlayer hinzufügen&lt;/em&gt; anwählen&lt;/li&gt;
   &lt;li&gt;im Dialog die GPX-Datei auswählen und öffen&lt;/li&gt;
   &lt;li&gt;im anschliessenden Auswahlfenster den Layer &lt;em&gt;tracks&lt;/em&gt; und ggf. weitere Layer auswählen und mit &lt;em&gt;OK&lt;/em&gt; bestätigen&lt;/li&gt;
   &lt;li&gt;im Layer-Fenster die Eigenschaften der Track-Linie festlegen: Farbe, Breite,...&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Karte drucken / Grafik erzeugen&lt;/h2&gt;
Hierzu wird der Dialog &lt;em&gt;Neue Druckzusammenstellung&lt;/em&gt; geöffnet und mit &lt;em&gt;neue Karte hinzufügen&lt;/em&gt; ein Kartenauschnit in das Druckblatt eingefügt. Dabei wird der Kartenausschnitt aus dem Hauptfenster übernommen. Dieser kann im Modus &lt;em&gt;Inhalt verschieben&lt;/em&gt; nach Belieben gezoomt und verschoben werden

Die so erzeugten Ausdrucke haben eine &lt;strong&gt;miserable Qualität&lt;/strong&gt;. Der Zoomlevel der Kacheln wird entsprechend Auflösung des Ausdrucks und der Größe des Kartenauschnitts automatisch gewählt. Dann werden die Kacheln skaliert um den gewählten Kartenausschnitt zu erhalten. Das Ergebnis ist in den meisten Fällen ziemlich unscharf und für den Druck in der Regel nicht verwendbar. 

Durch geeignete Wahl der Druckgröße und des Maßstabs des Kartenausschnitts kann man trotzdem eine akzeptable Bildqualität erreichen. Beispiele:

&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Format&lt;/th&gt; &lt;th&gt;Auflösung (dpi)&lt;/th&gt; &lt;th&gt;Maßstab&lt;/th&gt; &lt;th&gt;Zoomlevel&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;300&lt;/td&gt;&lt;td&gt;57250&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;150&lt;/td&gt;&lt;td&gt;57250&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;57250&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A1&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;57.250&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A1&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;144.448&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A1&lt;/td&gt;&lt;td&gt;300&lt;/td&gt;&lt;td&gt;144.448&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A1&lt;/td&gt;&lt;td&gt;300&lt;/td&gt;&lt;td&gt;2.311.168&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A1&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;577.792&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

Das beste Ergebnis erziele ich allerdings mit einer &lt;strong&gt;Bildschirmkopie&lt;/strong&gt;, da die Kacheln auf dem Bildschirm unskaliert dargestellt werden.


&lt;/div&gt;</description>
    </item>
    <item>
      <title>Mapping Party in Collioure</title>
      <link>https://blog.velocarte66.fr/posts/mapping-party-in-collioure/</link>
      <pubDate>Tue, 28 May 2013 21:17:24 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/posts/mapping-party-in-collioure/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
&lt;img src=&#39;https://blog.velocarte66.fr/files/imagepicker/1/osm2013-2.3.png&#39; alt=&#39;Image&#39; style=&#34;float: left;&#34; class=&#34;imgp_img&#34; /&gt;
&lt;p&gt;
Am 1. Juni 2013 organisieren &lt;a href=&#34;https://annexe21.net/&#34;&gt;Annexe21&lt;/a&gt;, &lt;a href=&#34;https://www.perpinux.org/&#34;&gt;Perpinux&lt;/a&gt; und die &lt;a href=&#34;https://openstreetmap.fr/&#34;&gt;OpenStreetMap&lt;/a&gt;-Mapper des Departements Pyrénées-Orientales eine Mapping Party in à Collioure. 

Alles weitere auf https://annexe21.net/cartopartie2013
&lt;/p&gt;

&lt;/div&gt;</description>
    </item>
    <item>
      <title>PostGIS: Daten für den Renderingprozess vorbereiten</title>
      <link>https://blog.velocarte66.fr/posts/postgis-daten-fur-den-renderingprozess-vorbereiten/</link>
      <pubDate>Wed, 30 Jan 2013 22:10:31 +0100</pubDate>
      <guid>https://blog.velocarte66.fr/posts/postgis-daten-fur-den-renderingprozess-vorbereiten/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
Die nachfolgende Anleitung gilt für Debian Wheezy (Stand 01/2013)
&lt;h3&gt;Anlegen der PostGIS-Datenbank&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installation der PostgreSQL-Pakete: 
&lt;pre&gt;&lt;code&gt;aptitude install postgresql-9.1 postgresql-9.1-postgis postgresql-contrib-9.1 postgis&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Installation des Pakets &lt;code&gt;postgis&lt;/code&gt;. Wheezy enthält PostGIS 1.5. Wenn, wie in meinem Fall, Funktionen benötigt werden, die erst ab PostGIS 2.0 verfügbar sind, kann diese Version problemlos aus den Quellen installiert werden.&lt;/li&gt;
&lt;li&gt;Anlegen eines Users und einer Datenbank. Als Superuser:
&lt;pre&gt;&lt;code&gt;su - postgres
createuser &amp;lt;username&amp;gt;
Soll die neue Rolle ein Superuser sein? (j/n) j
#psql --command &#34;ALTER USER &amp;lt;username&amp;gt; WITH SUPERUSER&#34;;
psql --command &#34;ALTER USER &amp;lt;username&amp;gt; WITH ENCRYPTED PASSWORD &#39;osm&#39;&#34;;
&lt;/code&gt;&lt;/pre&gt;
Als User &lt;code&gt;&amp;lt;username&amp;gt;&lt;/code&gt;:
&lt;pre&gt;&lt;code&gt;createdb osm
psql -d osm --command &#34;CREATE EXTENSION hstore;&#34;
#createlang plpgsql osm
psql -d osm -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d osm -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql 
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Importieren der OpenStreetMap-Daten mit osm2pgsql&lt;/h3&gt;
Mit &lt;a href=&#34;https://wiki.openstreetmap.org/wiki/Osm2pgsql&#34; target=&#34;_blank&#34;&gt;Osm2pgsql&lt;/a&gt; können OpenStreetMap-Daten in eine PostGIS-Datenbank importiert werden. Im Wesentlichen werden dabei die OSM-Objekte (Ways, Nodes, Relations), ihre Attribute (Tags) und Geometrie in Datenbanktabellen übernommen. Nodes werden nach &lt;code&gt;planet_osm_nodes&lt;/code&gt;, Ways nach &lt;code&gt;planet_osm_line&lt;/code&gt; und geschlossene Ways nach &lt;code&gt;planet_osm_polygon&lt;/code&gt; importiert. Welche Attribute übernommen werden sollen, wird in einer Konfigurationsdatei (Import Style) festgelegt.

Relationen vom Typ Multipolygon, Boundary und Route werden nach &lt;code&gt;planet_osm_rels&lt;/code&gt; importiert. In diese Tabelle werden nur die Attribute der Relation und Verweise auf ihre Members eingetragen. Über die Konfigurationsdatei kann festgelegt werden, dass für Relationen mit bestimmten Attributen auch die Geometrie nach &lt;code&gt;planet_osm_polygon&lt;/code&gt; bzw. &lt;code&gt;planet_osm_line&lt;/code&gt; importiert werden.

Daten importieren:
&lt;pre&gt;&lt;code&gt;osm2pgsql -c -m -s -d osm -U &amp;lt;username&amp;gt; -W -H localhost --bbox &amp;lt;bbox&amp;gt; &amp;lt;osmdatei&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;code&gt;&amp;lt;osmdatei&amp;gt;&lt;/code&gt; ist die Datei OSM-Format (.osm, .osm.bz2 ou .pbf), welche die zu importierende Daten enthält. 
&lt;h3&gt;Nachbearbeiten der importierten Daten&lt;/h3&gt;
Die mit &lt;code&gt;osm2pgsql&lt;/code&gt; und dem Default-Importstyle erzeugte Datenbank enthält alle Daten, die man für das Rendern einer Karte im OSM-Mapnik-Standard benötigt. Für einen Karte in einem davon wesentlich abweichenden Stil kann es sinnvoll bzw. notwendig sein, die importierten Daten mit SQL nachzubearbeiten. Ein einfaches Anwendungsbeispiel ist das Ersetzen der Werte &#34;yes&#34;, &#34;true&#34;, &#34;1&#34; durch &#34;yes&#34;, um Abfragen in Mapnik oder Tilemill zu vereinfachen:
&lt;pre&gt;&lt;code&gt;UPDATE planet_osm_line 
    SET  tunnel = (CASE WHEN tunnel IN (&#39;yes&#39;,&#39;true&#39;,&#39;1&#39;) 
                        THEN &#39;yes&#39;::text 
                        ELSE tunnel::TEXT 
                        END);&lt;/code&gt;&lt;/pre&gt;
Dies kann natürlich auch in der Datenbankabfrage in Mapnik/Tilemill gemacht werden. Erledigt man das bereits im Vorfeld, dann werden die Abfragen in Mapnik/Tilemill kompakter und lesbarer. Komplexere Anwendungsfälle werden in einem separaten Beitrag behandelt.




&lt;/div&gt;</description>
    </item>
    <item>
      <title>Rendern und Veröffentlichen einer OSM-Karte - Auswahl der Werkzeuge</title>
      <link>https://blog.velocarte66.fr/posts/rendern-und-veroffentlichen-einer-osm-karte-auswahl-der-werkzeuge/</link>
      <pubDate>Wed, 30 Jan 2013 16:45:33 +0100</pubDate>
      <guid>https://blog.velocarte66.fr/posts/rendern-und-veroffentlichen-einer-osm-karte-auswahl-der-werkzeuge/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
In diesem und den folgenden Beiträgen beschreibe ich meine Erfahrungen mit dem Rendern und Veröffentlichen einer Karte auf der Basis der OpenStreetMap-Daten.
&lt;h3 class=&#34;title&#34;&gt;Anforderungen und Randbedingungen&lt;/h3&gt;
Ausgangspunkt waren folgende Randbedingungen: 
&lt;ul&gt;&lt;li&gt;Die Karte soll ein Gebiet von mindestens 80 km2 abdecken, mit den Zoomleveln von 12 bis 18&lt;/li&gt;
&lt;li&gt;Die Karte soll auf einer Webseite veröffentlicht werden. Der Kostenrahmen liegt bei &lt; 5 Euro pro Monat.&lt;/li&gt;
&lt;li&gt;Arbeitsumgebung ist Linux (Debian Wheezy)&lt;/li&gt; 
&lt;li&gt;Freie Gestaltung des Kartendesigns, insbesondere soll es möglich sein, parallel versetzte Linien zu rendern, z.B. für straßenbegleitende Radwege und -spuren. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class=&#34;title&#34;&gt;Auswahl der Tools&lt;/h3&gt;
Für das &lt;strong&gt;Rendern&lt;/strong&gt; der Karte standen Maperitive und Mapnik zur Auswahl. Da Mapnik grundsätzlich den Einsatz einer PostGis-Datenbank erfordert und mir dies zu aufwändig erschien und zudem der erste Versuch einer PostGis-Installation scheiterte, habe ich zunächst Maperitive eingesetzt, weil es direkt mit den OSM-Daten im OSM-XML-Format arbeitet. 

&lt;strong&gt;Maperitive&lt;/strong&gt; ist eine .Net-Anwendung, lässt sich aber unter Linux mit Mono installieren und betreiben. Die Performance ist weniger gut als unter Windows aber auf meinem Phenom II X2 sind die Reaktionszeiten beim interaktiven Arbeiten im akzeptablen Bereich. Unschön ist allerdings, dass Schriften unter Linux auf Grund einer Einschränkung von Mono nicht immer sauber gerendert werden.  

Der große Vorteil von Maperitive ist die integrierte Entwicklungsumgebung, mit der Änderungen in den Stil-Dateien ohne große Verzögerung in die gerenderte Karte übernommen werden. Mit den zahlreichen verfügbaren Beispiel-Stilen kann auf diese Weise in kurzer Zeit eine individuelle Karte erzeugt werden. Ebenfalls von Vorteil sind die vielen grafischen Gestaltungsmöglichkeiten, z.B. zum Erzeugen von Mustern und Symbolen. Trotzdem war ich mit dem Endergebnis nicht zufrieden, das Kartenbild machte irgendwie einen unprofessionellen Eindruck. Das soll nicht als Kritik an Maperitive verstanden werden, möglicherweise habe ich zu früh auf andere Tools umgeschwenkt. 

Vor dem Umstieg auf Mapnik musste zunächst &lt;strong&gt;PostgreSQL&lt;/strong&gt; und &lt;strong&gt;PostGis&lt;/strong&gt; installiert werden. Das geht recht einfach, da hierfür  Debian-Pakete existieren. Wheezy enthält PostGIS 1.5., wegen eines Versuchs mit der Funktion ST_UnaryUnion habe ich nachträglich PostGIS 2.0 aus den Quellen installiert. Obwohl diese Funktion letzendlich nicht verwendet wird, bin ich bei 2.0 geblieben. 

Schwieriger war der Import der OSM-Daten in die PostGIS-Datenbank. Das lag hauptsächlich daran, dass ich das Tool &lt;strong&gt;osm2pgsql&lt;/strong&gt; erst nach ein paar Fehlversuchen mit anderen Tools gefunden habe. Beim anschließenden Test der damit erzeugten Datenbank mit &lt;strong&gt;QGis&lt;/strong&gt; habe ich festgestellt, dass sich dieses mit der neuen Symbologie hervorragend zum Rendern einsetzen lässt. Leider unterstützen die Tools zum Erzeugen von TMS-Kacheln nicht die neue Symbologie, so dass diese Spur nicht weiter verfolgt wurde, aber langfristig könnte dies eine komfortable Lösung sein.

&lt;strong&gt;Mapnik&lt;/strong&gt; ist in Debian Wheezy in der Version als Paket in der Version 2.0 verfügbar und funktioniert ohne Probleme. Da ich zum Rendern parallel versetzter Linien den LineSymbolizer-Parameter offset benötige, der erst in Mapnik 2.1 verfügbar ist, habe ich die Version 2.1. aus den Quellen installiert. Das Arbeiten mit dem XML-Format der Mapnik-Stildateien ist recht mühsam, da es keinerlei Möglichkeit von Verschachtelung oder Vererbung gibt. Das bläht die Datei enorm auf, sie wird unübersichtlich und fehleranfällig. Ich habe mich nach Alternativen umgeschaut und bin zunächst auf &lt;strong&gt;Cascadenik&lt;/strong&gt; gestoßen, das mit Stylesheets in CSS-Syntax arbeitet. Obwohl die Arbeit mit Cascadenik sehr positiv verlief, bin ich nach kurzer Zeit auf Tilemill umgestiegen, welches mit einer ähnlichen Stil-Syntax arbeitet. 

Für die Veröffentlichung habe ich mich für &lt;strong&gt;OpenLayers&lt;/strong&gt; entschieden. Es hätte aber genau so gut Leaflet sein können. 

Somit ergibt sich die folgende Tool Chain:
&lt;ul&gt;
&lt;li&gt;Importieren der OSM-Daten nach PostGIS mit osm2pgsql&lt;/i&gt;
&lt;li&gt;Nachbearbeiten der PostGIS-Daten &lt;/strong&gt;&lt;/i&gt;
&lt;li&gt;Rendern der Karte mit Tilemill&lt;/i&gt;
&lt;li&gt;Anzeige der Karte mit OpenLayers&lt;/i&gt;






&lt;/div&gt;</description>
    </item>
    <item>
      <title>Erstellen eines GPX-Tracks aus einer OSM-Relation (Perl-Skript)</title>
      <link>https://blog.velocarte66.fr/posts/erstellen-eines-gpx-tracks-aus-einer-osm-relation-perl-skript/</link>
      <pubDate>Fri, 03 Sep 2010 10:00:53 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/posts/erstellen-eines-gpx-tracks-aus-einer-osm-relation-perl-skript/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
In der OpenStreetMap-Datenbank sind viele Wanderwege und Radtouren als Relationen erfasst. Dieses Perl-Skript erzeugt aus einer solchen Relation einen GPX-Track für die Verwendung in einem GPS-Navigationsgerät. Daneben werden viele nützliche Informationen ausgegeben, die als Grundlage für eine Verbesserung der Relation in der OSM-Datenbank dienen können.
&lt;!--break--&gt;
Die meisten Touren sind nicht vollständig erfasst sondern in Teilsegmenten mit mehr oder weniger großen Lücken dazwischen. Das Skript versucht die Teilsegmente nach Möglichkeit vernünftig zu sortieren. 

Das Skript berücksichtigt auch Kreisverkehre, die in OSM mit &#34;roundabout&#34; getaggt sind. Diese geschlossenen Wege können nicht direkt in den GPX-Track übernommen werden. Sie werden deshalb durch einen Weg quer über den Kreisverkehr ersetzt.

Am Ende der der Bearbeitung wird eine Liste der Teilsegmente mit statistischen Daten ausgegeben. Dies gibt bereits einen Hinweis auf die Qualität des erzeugten Tracks. In vielen Fällen ist trotzdem eine manuelle Nachbearbeitung erforderlich.  

Optional wird eine HTML-Datei erzeugt. Diese Datei enthält die statistischen Daten der Segmente (Länge, Abstand zum nächsten Segment) und für jedes Segment einen JOSM-Remotecontrol-Link. Ein Klick auf diesen Link öffnet in JOSM den Bereich, in dem sich das Ende des Segments und der Beginn des folgenden Segments befinden, zur Bearbeitung. 

Das Skript gibt auch eine Reihe von Hinweisen auf Probleme mit der Relation, wie z.B. doppelte Punkte und Wege.

&lt;strong&gt;Installation&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Voraussetzungen:
&lt;ul&gt;&lt;li&gt;Perl muss installiert sein&lt;/li&gt;
&lt;li&gt;Benötigte Module: LWP::Simple, IO::Scalar, XML::Parser, Math::Trig&lt;/i&gt;
&lt;li&gt;Ab Version 0.2 wird für den Zugriff auf lokale XML-Dateien das Modul OSM::osm.pm benötigt. Dieses kann von https://wiki.openstreetmap.org/wiki/Osm.pm heruntergeladen werden. Das Modul muss in einem der Perl-Modul-Verzeichnisse im Unterverzeichnis OSM installiert werden. Eine Liste dieser Verzeichnisse kann mit perl -V ausgegeben werden. Alternativ kann man das Modul in einem Benutzerverzeichnis installieren und dies beim Perl-Aufruf mit der Option &lt;code&gt;-I&lt;/code&gt; angeben (ohne /OSM).&lt;/i&gt;&lt;/ul&gt;&lt;/i&gt;
&lt;li&gt;Die angehängte Datei herunterladen und entpacken.&lt;/li&gt;
&lt;li&gt;Unter Linux: Datei in einem Verzeichnis aus PATH ablegen oder explizit mit &lt;coe&gt;perl pfad/rel2gpx.pl aufrufen&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;Bedienung&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Aufruf: &lt;code&gt;rel2gpx {optionen} {Relation-Id}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Parameter und Optionen:
&lt;dl&gt;
&lt;dt&gt;Relation-Id&lt;/dt&gt;&lt;dd&gt;Id der zu bearbeitenden Relation. Siehe auch Option &lt;code&gt;-f&lt;/code&gt;&lt;/dd&gt;
&lt;dt&gt;-i datei&lt;/dt&gt;&lt;dd&gt;Lese OSM-Daten aus lokaler Datei. Wenn diese Option nicht angegeben wird, dann werden die Daten von openstreetmap.org geladen&lt;/dd&gt;
&lt;dt&gt;-x  datei&lt;/dt&gt;&lt;dd&gt;schreibe eine XML-Datei im osm-Format, welche die Daten aller Objekte der Relation enthält (nur zusammen mit -i). &lt;/dd&gt;
&lt;dt&gt;-r  typ&lt;/dt&gt;&lt;dd&gt;Bearbeite alle Relationen mit type=route und route=typ (nur zusammen mit -i). Mögliche Werte für &lt;code&gt;typ&lt;/code&gt;: bicycle, hiking, train.&lt;/dd&gt;
&lt;dt&gt;-f  datei&lt;/dt&gt;&lt;dd&gt;Lese Relation-Ids aus der Datei (nur zusammen mit -i). In der Textdatei kann pro Zeile eine Id angegeben werden. Zeilen, die mit &#34;#&#34; beginnen, werden nicht ausgewertet. Auch in den Datenzeilen können Kommentare eingefügt werden.&lt;/dd&gt;
&lt;dt&gt;-g&lt;/dt&gt;&lt;dd&gt;Erzeuge eine GPX-Trackdatei&lt;/dd&gt;
&lt;dt&gt;-p&lt;/dt&gt;&lt;dd&gt;Aktiviere die Ausgabe diverser Plausibilitätsprüfungen&lt;/dd&gt;
&lt;dt&gt;-s&lt;/dt&gt;&lt;dd&gt;Aktiviere Statistikausgaben auf STDOUT&lt;/dd&gt;
&lt;dt&gt;-w&lt;/dt&gt;&lt;dd&gt;Ausgabe von Statistikdaten und Plausibilitätshinweisen in eine HTML-Datei&lt;/dd&gt;
&lt;dt&gt;-o&lt;/dt&gt;&lt;dd&gt;Berücksichtigen der Fahrtrichtung (oneway, forward/backward).&lt;/dd&gt; 
&lt;/dl&gt;    
&lt;/li&gt;

&lt;li&gt;Der Name der GPX- und HTML-Datei wird aus dem Namen der Relation in der OSM-Datenbank gebildet. Existiert dieser nicht, wird die Relation-Id als Name verwendet. Bei Verwendung der Optionen &lt;code&gt;-f&lt;/code&gt; oder &lt;code&gt;-i&lt;/code&gt; wird der Dateiname aus dem Namen der Relationsliste bzw. der Osm-Datei gebildet. &lt;/i&gt;
&lt;/ul&gt;

&lt;strong&gt;Download&lt;/strong&gt;&lt;br&gt;
&lt;a href=&#39;https://blog.velocarte66.fr/files/filepicker/1/rel2gpx_v027.tgz&#39;  &gt;rel2gpx_v027.tgz&lt;/a&gt;
&lt;a href=&#39;https://blog.velocarte66.fr/files/filepicker/1/rel2gpx_v026.tgz&#39;  &gt;rel2gpx_v026.tgz&lt;/a&gt;


&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
