Karten-Daten verringern

Also bei meinen ersten Versuchen hatte ich das auch so gemacht. Leider wurde dann immer zu viel behalten. Das ist aber auch schon Monate her.

–out-count hatte ich immer zur Kontrolle genommen.

osmfilter --parameter-file=autobahn.parm -o=deutschland1.osm deutschland.osm
Es kann sein, dass ich am Anfang die Formate und Endungen nicht ordentlich benutzt habe. Ich achte darauf nun.
Hier noch mal frisch gefiltert: 672MB als o5m

Nachtrag:
Du hast recht, ohne Drop nur 2 MB größer, also 674MB.

Sehr gut!

Hmmm… Bist du sicher, dass das Format .o5m ist? In deinem Kommando steht “-o=deutschland1.osm”, also “.osm”. Das wäre natürlich einiges größer als “.o5m”.
Ob es .o5m oder .osm ist, kannst du leicht prüfen, wenn du die Datei mit einem normalen Editor öffnest. Wenn sie direkt lesbar ist, dann ist es “.osm”, also das Platz verschwendende Format.
Brauchst natürlich keinen Editor verwenden, geht auch mit Kommandos wie “head”, um z.B. die ersten 10 Zeilen anzuzeigen (Linux).

Der war nur der Aufruf zum Filtern, weiter unten war wirklich ein o5m.

Ich hab mir das germany-latest noch mal gezogen, ausgepackt und mit drop author/version als o5m gespeichert; als Grundlage für die Tests:
3.086.806.563 germany-latest.o5m

Danach habe ich diesen Filter genommen und auch wieder ald o5m gespeichert:

-v

--keep=
highway=motorway*
highway=trunk*
highway=primary*
highway=secondary*
highway=tertiary*
highway=unclassified*
highway=residential*
highway=service
highway=living_street
highway=track
highway=path
highway=road
addr=
waterway=river
waterway=canal
waterway=dam
name=

--drop-author
--drop-version

1.162.112.967 germany1.o5m

Und für Navit umgewandelt:
590.496.046 germany.bin

Die Karte ist routingfähig. Es werden zwar nicht alle PLZ angezeigt, aber er routet.
Komischerweise steht halb Deutschland unter Wasser, alles unterhalb von Berlin :smiley:

Du hast recht sicher einen Multipolygon-See aufgedröselt, klar, dass der dann ausläuft.

Via drop-tags (wenn ich richtig verstehe, dass das tags dropt…) Sollte da aber noch einiges grösser 2MB zu töten sein:
Paar Beispiele:
Horse, TMC:irgendwas, boat, fixme, note usw. usf.
Einfach mal mit josm in nem 20+20km Gebiet alle highway holen, STRG+A und dann schauen, was da für Daten"müll" dran klebt. Grad geschaut, ich bekomme hier auf ne kleine Fläche 254 Tags, wovon beim Groben drüberschauen knapp 50% für bspw nen Autonavi überflüssig sind.

Kann man sich eins Deiner Ergebnisse ma irgendwo runterladen?

Nein, ich hab diese Datei nicht online.

Für’s Autofahren braucht man aber mindestens noch die Abbiegebeschränkungen:
type=restriction

Die Adressdaten verstecken sich hinter diesen Tags:
addr:*=
(Kann genau so angegeben werden und meint “addr:street”, “addr:housenumber”, “addr:city” usw.)

Das Taggingschema bei den Adressen setzt allerdings voraus, dass auch die administrativen Grenzen enthalten sind:
type=boundary

und außerdem:
Anhand obiger Filterliste gehe ich davon aus, dass Flächen nicht benötigt werden. Mit “name=” holt man sich aber auch alle benamten Seen, Gebäude etc… und zwar ohne die Relation, zu der sie gegebenenfalls gehören. Dann ist weder inner noch outer definiert. Entweder man bringt alle betreffenden Relationen mit:
type=multipolygon

…oder man löscht alle nicht benötigten, eventuell auftretenden Mehrfachtags:
–drop-tags=“landuse= natural=”

oder man filtert alle gewünschten POI-Kategorien unter der Bedingung, dass ein Name angegeben ist (das war doch die Intention bei “name=”?):
( place= or shop= or amenity= or tourism= ) and name=
Achtung: Die Leerzeichen an den Klammern sind wichtig, damit sie nicht als Bestandteil von Tag bzw. Value interpretiert werden.

Gruß
Mario

Mario: verstehe ich Dich richtig, dass --keep=
highway=motorway*
Mir eine Linie baut, die nur diesen Tag hat? Also sämtliche anderen Tags dieser Linie wegschmeisst?

Nein, die anderen Tags bleiben natürlich erhalten. Deswegen können unerwünschte Tags mittels --drop-tags entfernt werden.
Nur die Linie könnte man vielleicht erhalten mittels: --keep=“highway=motorway” --drop-tags=“highway!=”. (Für den Fall du möchtest sowas anwenden.)

Es ging mir eigentlich drum, ob ich hier Unsinn geschrieben habe und wollte das bestätigt/widerlegt haben. Was hiermit passiert ist.
(Anwenden würde ich sowas schon gern mal, aber is mir zu hoch und meine Hardware auch beschränkt)

Das war kein Unsinn. Ich tippe auf einen nicht geschlossenen Weg, welcher Teil einer Multipolygonrelation ist.

Vielleicht eine kleine Erklärung: Wege sind in Relationen enthalten. Teilweise sind die Tags an den Polygonen an inner und/oder outer oder ein Umriss besteht aus mehreren in der Relation zusammengefassten Wegen, von denen man aufgrund des Tagfilters nicht alle übernimmt. Bei den Straßen dürfte es das nicht geben, bei waterway=river aber schon, z.B. wenn sie Teil einer Grenzrelation sind. Oder eben bei riverbank als Multipolygon, weil Gebüsch-Inseln enthalten sind. Ich weiß nicht, wie sich Osmand bei “kaputten” Polygonen verhält, jedenfalls sollte ein sinnvoller Filter gut durchdacht sein. (Dazu gehört z.B. auch die Erkenntnis, dass Abbiegerelationen nicht mit den Straßen mitkommen können, sondern extra gefiltert werden müssen. Die Kreuzung referenziert ja nicht die Abbiege-Relation, sondern die Relation referenziert die Abschnitte der Kreuzung. Das kann man leider nicht visuell überprüfen.)

Wie würde eine verbesserte Version meiner Filterregeln aussehen?

Inwiefern? Bezogen auf deinen ausgelaufenen See recht wahrscheinlich mit keep natural=water.

Alternativ mit bisschen Handarbeit rausfinden, wo das genau ausläuft und dort die Tags zusammensuchen.

Eigentlich geht es ja nicht darum, die Karte zu zeichnen, sondern zu Verkleinern.

Hallo akk,

warum willst du das Resultat überhaupt über die Rohdaten verringern? Lässt sich OsmAndMapCreate nicht so konfigurieren, dass es nur gewünschte Elemente in die Karte aufnimmt? Dann wäre es am Besten, alles aus den Rohdaten ungefiltert zu übernehmen um keine Informationen (Abbiegerestriktionen, Multipolygonränder…) zu verlieren. Die Kartengröße ergibt sich dann durch die selbstbestimmten Elemente.

Wenn man aber OsmAndMapCreate nicht manipulieren kann oder du es nicht willst, ist eine Reduzierung der Daten, mit denen man OsmAndMapCreate füttert, nicht bis herunter zu den angezeigten Elementen möglich - zusätzliche Informationen müssen mit aufgenommen werden. So kommen mit den highways nicht automatisch die Abbiegerestriktionen mit, jedoch die Tags wie barrier=xxx an referenzierten Nodes, Polygone sind nicht immer geschlossen oder ausgeschnitten, wenn sie Teil einer Multipolygonrelation sind, Adressen an site-Relationen werden nicht übernommen, da diese Tags nicht am Gebäude oder Adress-Node, sondern an der Relation stehen usw…

Hast du Post #67 gelesen?

Bei OsmAndMapCreate lässt sich nicht viel einstellen. POI an/aus, Adressen an/aus.

#67 habe ich gelesen.

Ich sehe gerade, Osmand bietet jetzt eine pure Strassekarte von Deutschlad mit 430 MB an. Könnte man sich da die Filterregeln klauen :smiley:

Anscheinend gibt es diese Karte nicht mehr, oder?

Vielleicht hat jemand nun einen Filtersatz für Deutschland erstellt?

Mein OsmAnd bietet für jede Region eine Standardkarte und eine reine Straßenkarte an, die man nach Bedarf runterladen kann. Wie die POIs da gefiltert werden, weiß ich nicht. Adressrouting sollte ja auch in der reinen Straßenkarte irnkwie gehen, Tankstellen findet er damit auch :slight_smile:

–ks

Du hast Recht. Ich hatte schon lange nicht mehr dort geguckt. Die Straßenkarten sind ja wirklich klein.
Ich habe mal mitgesnifft, die Karten liegen hier:
http://download.osmand.net/road-indexes/

Alle Bundeslandkarten davon sind gezippt in Summe ca 1,1 GB groß, ausgepackt dann etwa 1,6 GB.
Vielleicht kann man im Netz lesen, wie sie die Karten erzeugt haben.