Fehler am Bodensee

Nunja…wenn sich zwei Flächen überlagern, dann sollte ein Renderer das auch so darstellen können. In diesem Fall dann den einen See über den anderen See malen. Wenn der Renderer versucht, schlau zu sein und er dadurch andere Dinge fehlerhaft darstellt, die egtl. kein Problem darstellen (geschlossenene Fläche darstellen), dann läuft beim Renderer etwas falsch.

Das die Art udn Weise des Taggens nicht der Realität entspricht (Seegrenze) ist eine andere Sache. Aber dazu findet man ja recht viel input im Tegernsee-Faden.

Ich würde es richtig gut finden, wenn Renderer alles Falsche überhaupt nicht darstellen und in eine Fehlerliste reinschreiben würden. Die Karte würde zwar einige Zeit grauenhaft aussehen, aber die Qualität der Datenbank würde sehr schnell wachsen.

frohes Mappen
Weide

Ich kann versichern, dass splitter und mkgmap vollständige und richtig getaggte Multipolygone, die dieselben Element verwenden, auch richtig verarbeitet. Sollte dies nicht der Fall sein, bitte mit Beispiel auf der mkgmap-dev Liste posten.
splitter sollte nicht mit --keep-complete=false gestartet werden (–keep-complete=true ist default).

WanMil




4 Bilder, welche einen weiteren Problembereich aufzeigen: Es ist der Segelhafen Raschewski in Überlingen (47.7684° N, 9.1454° O).
Bild 1 zeigt die Daten in josm
Bild 2 ist eine karte, erzeugt aus dem Download aus josm etwa der Bereich von Bild 1 als *.osm Datei.
Die Karte scheint in Ordnung
Bild 3 ist der Auszug aus der Deutschlandkarte (Daten von Geofabrik am 15.7 im Format osm.pbf, gerendert mit Splitter r306 und mkgmap 2656, mit polygonfile germany.poly
Bild 4 dasselbe wie Bild 3, jedoch ohne Polygonfile.
Bild 2 und Bild 3 sind mit den exakt gleichen Einstellungen gerendert.
Es scheint so, als ob es da “Fernwirkungen” von Bodenseepolygonen oder/und Grenzpolygonen gibt???
Ich bin da überfordert.
(Ich möchte nicht meckern, denn ich bewundere die komplexen Programme welche hier in einem Gemeinschaftsprogramm erstellt werden. Aber ich meine, das Aufzeigen verbleibender kritischer Stellen könnte helfen, die Programme noch perfekter zu machen)
(Falls Rückfragen: ich bin zwei Tage auf Reisen ohne PC dabei)

Interessante Screenshots - und lustige “Fernwirkung”, hehe. Das sieht doch definitiv so aus, dass im geofabrik-Extrakt einfach die See-Kontur nicht komplett drin ist, also das südliche Ufer fehlt. Und wenn eine Fläche nicht ringsrum geschlossen ist, sondern der Renderer nur Linien mit Lücke kriegt, dann weiß er halt nicht: auf welcher Seite liegt denn nun die Fläche (das Wasser), nördlich oder südlich??
Und in irgendeinem Thread, wo es um MPs ging, wurde ja von erfahreneren Leuten gesagt, dass geofabrik an der Kartengrenze wirklich keine MPs vervollständigt.

Mit meiner sehr begrenzten Erfahrung würd ich normalerweise sagen, dass Flächen immer dann am sichersten funktionieren, wenn die Aussenkontur nur 1 Linie am Stück ist, aber dazu ist der See wohl etwas groß. Man könnte ihn auch in 2 Hälften aufteilen (Überlinger See und Obersee bietet sich an), beide mit natural=water, beide mit jeweils geschlossener 1-Linien-Kontur außenrum und die gemeinsame Grenze halt doppelt übereinander.
Nur stellt sich dann wieder ein anderes Problem, nämlich wieviele Renderer dann die 3 Namen Bodensee, Überlinger See, Obersee noch passend darstellen könnten und wie? Mit “Bodensee” als Super-Relation? Mit BS nur als Node? Mit zusätzlicher, grober Innenfläche über ganzen See der nur Name BS und place=locality kriegt?

Aber speziell im Fall von geofabrik kenn ich mich halt gar nicht aus und hab Zweifel, ob am Obersee überhaupt irgendwas helfen kann, ob die an der Kartengrenze womöglich sogar Linien mittendrin kappen? Dann wär mit solchen Aufteilungen nur der Überlinger See ‘gerettet’, der kpl. im Auszug drin liegt.
Die Ideallösung wär ja, wenn geofabrik bei der Erstellung von Kartenauszügen durchgeschnittenen Flächen eine neue Aussenlinie entlang der Kartengrenze spendieren und die automatisch der Fläche zuordnen könnten. Aber ist ja bestimmt schon 100x vorgeschlagen worden und vielleicht nicht so einfach zu programmieren, keine Ahnung.

Mit den Extrakten ist es halt so, wie bereits gesagt wurde, dass diese an den Grenzen nicht vollständig sind. Daten, die nicht vorhanden sind können auch nicht gerendert werden. Es ist daher auch nichts neues, dass man sich das nächst größere Extrakt besorgt. Da in den meisten Fällen das Datenvolumen dann recht hoch ist, nutzen viele Diff-Dateien (Dateien die nur die Änderungen in jeweiligen Zeitraum enthalten) um dieses Extrakt aktuell zu halten.

In deinem konkreten Fall müsstest du dir europe.osm.pbf herunterladen und lässt splitter mit deinem polygon und keep-complete auf europe.osm.pbf los. Das europe.osm.pbf kannst du dann bspw. mit osmupdate aktualisieren.

Noch eine Randbemerkung: Das Format o5m ist etwas effektiver (schneller und weniger RAM-Verbrauch) als pbf, braucht dafür aber mehr Speicherplatz auf der Festplatte. Das muss man letztlich selber abwägen.

Das kann vieles erklären, aber offensichtlich nicht alles, denn um ein “nördlich von oder südlich von” unterscheiden zu können, muss ein “von” da sein, und das finde ich nicht immer: Wenn man im 4. Bild die untere Begrenzung der “Arche” nach links und rechts verlängert, kann man eine genau horizontale Linie, an welcher die Land und See Darstellungen wechselt sehen (in der Gesamtansicht der karte verläuft diese Linie bis zum anderen Seeufer). Wenn ich nun in josm schaue, an welchem Objekt dieser Wechsel stattfindet, finde ich gar nichts!! Keine Linie von West nach Ost, nicht mal Punkte an den Enden dieser Linie, welche ich mit der Linie in Zusammenhang bringen könnte. Wenn mir josm nicht irgendwelche Objekte verschweigt, muss diese Linie also beim Rendern von alleine entstehen. Man kann dies dann einen Artefakt nennen.
@aighes: Danke für die Hinweise. Ich habe aber selbst kein Problem, denn ich arbeite in dieser Gegend mit der Alpenkarte, welche diese Erscheinungen nicht zeigt. Zu meiner Motivation: Siehe den letzten Absatz meines letzten Beitrags.

Musst dir mal testweise Merkaartor installieren und ein bisschen die Bildausschnitte am Monitor rumschieben, da sieht man mit jeder Bewegung sofort, wie solche Geisterlinien kreuz und quer “on the fly” entstehen, wenn eine gesplittete Flächenkontur nicht komplett im Ausschnitt zu sehen ist :wink: Da versucht der Renderer halt zu raten und die zwei äußersten noch bekannten Punkte mit einer geraden Linie zu “schließen”.
Auch bei Android-mapsforge-Karten gibt es einen ähnlichen Effekt, wenn eine gesplittete Flächenberandung während der Kartenkonvertierung irgendwelche internen Tilegrenzen überschritten hatte. Dort sind es dann meistens nur die Randbereiche, und die Flächen tendieren nicht zu verschwinden sondern zu wuchern, überdecken gern mal halbe Dörfer mit Wald oder so.
Bei ringförmig geschlossenen 1-Linien-Aussenkonturen haben diese Renderer dagegen nie Probleme.

Nochmal zum Bodensee an sich:
Da es gestern wieder brandneue Offline-Karten für mein Handy gab, hab ich gleich mal geguckt, ob der See jetzt wieder blau ist - und yes! :slight_smile: Dann nochmal etwas am Ufer entlanggeguckt, und dank halbtransparenter Wasserdarstellung fielen mir bei Immenstadt zwei so seltsame türkisblaue Flecken auf, mitten im Wasser:

http://www.openstreetmap.org/?lat=47.66395&lon=9.38715&zoom=17&layers=M

Auf mapnik sieht man die gar nicht, aber ein Gegencheck im Editor ergab: das sind zwei Unterwasser-Wäldchen! :sunglasses: Dachte zuerst, die müsste man vielleicht noch als Inseln ausschneiden, aber dann festgestellt, dass die ja schon seit zwei Wochen in der See-Relation drin sind.
Allerdings nur in der vom “Obersee”, nicht vom “Bodensee”. Der Obersee hat ja zur Zeit kein eigenes Wasser, weil das MP lediglich für den Namen zuständig ist. Wahrscheinlich müssten sie stattdessen in das MP vom Bodensee?

Ich würde sie in beide packen.

http://www.panoramio.com/photo/17180117?source=wapi&referrer=kh.google.com

Der Name allein nützt nichts, es muss auch noch irgendein Objekt angegeben werden z.B. place=locality.

Für einen Renderer ist die erste Frage “Was soll da hin gemalt werden?”, davon abhängig wird dann die richtige Art der Namensplazierung, Farbe, Schriftart, … ermittelt. Wenn da jetzt kein Objekt steht, also nichts gemalt werden soll, dann gibt es auch keine Kriterien wie der Name da hin soll und es kann gut passieren, dass er garnicht auftaucht.

Weide