Karten-Daten verringern

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.

http://wiki.openstreetmap.org/wiki/OsmAndMapCreator mag ein Einstieg sein.

Nein ist es nicht. Dieses Programm ist dumm. Es übernimmt jeden Baum und Parkbank. Der Datenanteil, den das Programm filtert, scheint gering zu sein. Man muss also mit osmfilter dran. Und das haben die Osmand-Leute gemacht.

Das war meines Erachtens ein dezenter Hinweis, dass du dir selbstverständlich deine eigenen OsmAnd-Karten erzeugen kannst - mehr nicht.
Eine Aussage darüber, dass das OsmAndMapCreator alles alleine kann, kann ich im Post nicht erkennen.