Hier werde ich Infos zu PTextReorg sammeln.
Standard-Aufruf:
PTextReorg.pl hessen_*.mp
Da werden die Dateien
hessen_OSM.mp, hessen_others.mp, hessen_Custom.mp und hessen_Marina.mp erzeugt.
Damit sich keine Verwechlung mit den Ursprungsdateien ergibt, empfehle ich den Ausgabename der MP-Files zu ändern:
PTextReorg.pl -d Hessen hessen_*.mp
Das erzeugt die Dateien
Hessen_OSM.mp, Hessen_others.mp, Hessen_Custom.mp und Hessen_Marina.mp erzeugt.
WICHTIG: PTextReorg.pl überschreibt keine bestehenden Dateien, sondern hängt die Daten an.
Also wenn man PTextReorg.pl mehrmals hintereinander laufen lässt, umbedingt die vorher erzeugten Dateien löschen.
Bsp.:
PTextReorg.pl -D Austria austria_*.mp
Da werden die Dateien
Austria_OSM.mp, Austria_others.mp, Austria_Custom.mp und Austria_Marina.mp erzeugt.
Falls man PTextReorg.pl danach nochmals laufen lässt, werden die Daten an diese Dateien angehängt.
Also Austria_OSM.mp, Austria_others.mp, Austria_Custom.mp und Austria_Marina.mp umbedingt vor einen neuen Lauf löschen!
Encoding:
Weiter oben schrieb ich schon man sollte osm2mp.pl immer mit --nocodepage aufrufen.
das führt dazu das osm2mp.pl den Text in Unicode von OSM unverändert lässt.
Zur Zeit liest CompeGPSLand MP-Files aber im lokalen Encoding des Windows-Systems.
Für Zentral- und Westeuropa ist das meist CP-1252.
PTextReorg.pl liest daher default-mässig in utf8 und schreibt dann in cp1252-Encoding.
Einige Unicode-Zeichen lassen sich nicht abbilden, das führt zu Fehlermeldungen, damit muss man mit leben oder eine passendes Encoding wählen.
Die Lage wird besser, sobald CompeGPS Land beim Import auf utf8 (Unicode) umgestellt wird.
Wer MP's in einen anderen Encoding hat oder dessen Windows anders eingestellt hat, kann das Encoding fürs Lesen und Schreiben einstellen.
PTextReorg.pl -i cp1251 -o cp1250 bulgaria.mp
Hier wird mit CP1251 gelsen und mit CP1250 geschrieben.
Man darf naþürlich auch nur das Import-(Export-)Encoding setzen.
PTextReorg.pl -i cp1251 bulgaria.mp
In diesen Fall wird mit cp1251 gelesen, für das Export wird das Default-Encoding cp1252 verwendet.
-i setzt das Import-Encoding (dafault ist utf8)
-o setzt das Export-Encoding (dafault ist cp1252)
Falls man das Standard-Maping nicht anpassen oder verwenden will, kann man eine andere Konfiurationsdatei angeben:
PTextReorg.pl -c justMTBMaping.def -d A_MTB austria_*.mp
Konfiguration (maping.def):
Die Datei maping.def sollte man sich anschauen, in den ersten paar Zeilen steht eine Kurzbeschreibung.
Das erkläre ich im Detail später.
####################################################
# configuration file of PTextReorg.pl
####################################################
[SUBSTITUTION]
# use Perl regular expressions for substitutions
# set all Data Levels to Level 0, that's necessary for Import to CompeGPS Land
# for other Software comment this line out
s/Data\d+=/Data0=/
# remove blanks between coordinate data pairs,
# necessary for Import to CompeGPS Land, no harm for others
s/\)\,\s+\(/\),\(/g
####################################################
[SPLIT]
# this types will be separated in single files
# [POLYLINE][POLYGON][POI] define the object typ
#
# <.*> define a group, which will be written to the same files
# A group can include [POLYLINE],[POLYGON] and/or [POI]
# A group shall be closed with a </.*>!
# Types outside of a group will be exported separately
#
# It's also possible to merge a set of Polish Map Files to one file!
#
#########
# 0x12, Cycleway -> Typ, Name of the Type (Don't miss the comma!)
# 0x5D00-0x5D3F, Daymark,Green Squar -> Range of types, which have the same name
# 0x1901,0x1B01, Fog Horn -> Type 0x1901 is mapped to 0x1B01
# 0x5D00-0x5D3F,0x5D00, Daymark,Green Square -> The Types 0x5D00-0x5D3F mapped to 0x5D00
Alles anzeigen
Unter [SUBSTITUTION] im File maping.def können text Substitutionen vorgenommen werden.
Ich verwende dabei die Perl-Syntax.
s/Data\d+=/Data0=/ setzt alle Daten auf Level 0.
s/\)\,\s+\(/\),\(/g entfernt Leerzeichen zwischen Koordinatenpaare.
Beide Substitionen sind für den Import in Land notwendig.
Achja, Kommentare beginnen immer mit einer Raute/Hash (#)
Es gehen nur ganzzeilige Kommentare.
So schreibt man einen einzelnen Typ.
0x12, Cycleway -> Typ, Name of the Type (Don't miss the comma!)
So kann man ganze Bereiche angeben:
0x5D00-0x5D3F, Daymark, Green Square
0x1901,0x1B01, Fog Horn -> Typ 0x1901 wird auf 0x1B01 abgebildet
0x5D00-0x5D3F,0x5D00, Daymark,Green Square -> Die Typen 0x5D00-0x5D3F werden alle auf den Typ 0x5D00 abgebildet
Mit [POI], [POYLINE] und [POLYGON] definiert man die Typ-Art.
Eine Typ-Art wird solange verwendet, bis man explizit auf eine andere andere umschaltet.
[POLYLINE]
<Trail>
0x16, Trail
[POI]
0x6412, Trail
</Trail>
Gruppen werden durch <...> und </...> geklammert.
Elemente eine Gruppe werden in ein gleichnamige Datei geschrieben.
Diese Gruppe enthält eine Linien-Typ und einen POI-Typ.
Elemente ausserhalb einer Gruppe werde in ein separates File geschrieben.
Wie man sieht, kann man Typ-Arten jederzeit umschalten. Egal ob in einer Gruppe oder Gruppen übergreifend.
Man sollte nur aufpassen das man nicht den Überblick verliert.
Typen, die einen nicht interessieren sollte man in eine gemeinsame Gruppe packen und dann einfach ignorieren.
Wie man sieht kann man durch entsprechende Anpassung der Maping-Konfiguration MP-Files zusammenführen, thematisch auftrennen und Typen verbiegen um z.B. alle Subtypen von Restaurants auf einen gemeinsamen Typ abzubilden.
Ray