You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#1 2013-06-24 19:17:53
- christiank61
- Member
- From: 3500 Krems/Austria
- Registered: 2011-12-18
- Posts: 89
- Website
Boarder poly über Ost/West-Grenze (Russland/Alaska)
Hallo,
Ich versuche eben den letzten Teil von Russland (Chutoka) zu rendern und scheitere an einem verrückten Problem.
Das Border-Poly geht über die OSt/West Grenze (+/- 180°) und das resultierende File sieht so aus
Poly
Chukotka
1
177.647381 60.037021
169.753146 62.237653
158.011980 65.537569
156.247880 67.511917
162.982328 71.567666
179.777527 72.277157
-179.132413 72.374985
-171.602969 69.971774
-166.245482 66.021995
-170.227398 58.859590
-179.132413 54.025129
177.719758 60.073159
END
ENDGPX
<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd" version="1.0" creator="QuoVadis 6.0.9.15" xmlns="http://www.topografix.com/GPX/1/0">
<name>qv6</name>
<trk>
<name>Chukotka</name>
<trkseg>
<trkpt lat="60.0370205841391" lon="177.647380828857">
<ele>0.02</ele>
<time>2013-06-24T16:41:19.254Z</time>
</trkpt>
<trkpt lat="62.2376526905995" lon="169.75314617157">
<ele>0.02</ele>
<time>2013-06-24T16:41:21.266Z</time>
</trkpt>
<trkpt lat="65.5375693528749" lon="158.011980056763">
<ele>0.02</ele>
<time>2013-06-24T16:41:29.3Z</time>
</trkpt>
<trkpt lat="67.5119172071399" lon="156.247880458832">
<ele>0.02</ele>
<time>2013-06-24T16:41:32.03Z</time>
</trkpt>
<trkpt lat="71.5676657784401" lon="162.98232793808">
<ele>0.02</ele>
<time>2013-06-24T16:41:39.986Z</time>
</trkpt>
<trkpt lat="72.2771567236869" lon="179.777526855469">
<ele>0.02</ele>
<time>2013-06-24T16:41:43.496Z</time>
</trkpt>
<trkpt lat="72.3749853171223" lon="-179.132412672043">
<ele>0.02</ele>
<time>2013-06-24T16:41:58.238Z</time>
</trkpt>
<trkpt lat="69.9717743296275" lon="-171.602969169617">
<ele>0.02</ele>
<time>2013-06-24T16:42:01.748Z</time>
</trkpt>
<trkpt lat="66.0219948331531" lon="-166.245481967926">
<ele>0.02</ele>
<time>2013-06-24T16:42:04.946Z</time>
</trkpt>
<trkpt lat="58.8595897354416" lon="-170.227398276329">
<ele>0.02</ele>
<time>2013-06-24T16:42:09.002Z</time>
</trkpt>
<trkpt lat="54.0251293151814" lon="-179.132412672043">
<ele>0.02</ele>
<time>2013-06-24T16:42:12.122Z</time>
</trkpt>
<trkpt lat="60.0731593712082" lon="177.719757556915">
<ele>0.02</ele>
<time>2013-06-24T16:42:34.197Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>Sowahl Osmosis als auch Pyghtmap rendern nun sozusagen das "Negativ" des polys.
Öffnet mal dieses poly in Josm (mit aktivierten poly-plugin) oder auch das GPX, dann seht Ihr was ich meine.
Wie rendert man Karten die über die ost/west-Grenze laufen bzw. wie muss man das poly modifizieren um Osmosis zu einem korrekten Auschnitt zu überreden?
Besten Dank im Voraus
Christian
Christian
www.openandromaps.org
Offline
#2 2013-06-24 19:32:34
- reneman
- Member

- From: Mainz
- Registered: 2012-10-13
- Posts: 1,106
- Website
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Als nicht Programmierer wäre mein Ansatz: Rendere erst die eine Hälfte und dann die andere und setze es dann nebeneinander.
» Check the Monuments! «
Viele der als historic=monument erfassten Objekte sind in Wirklichkeit kein Monument. Sie wurden mangels passender Tags oder aus Unkenntnis als Monument erfaßt. Diese Karte CheckTheMonuments will bei der Korrektur unterstützen.
Offline
#3 2013-06-25 00:54:37
- seichter
- Member
- Registered: 2011-05-21
- Posts: 3,337
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Das ist vermutlich überall derselbe Programmier-/Entwurfsfehler:
Die Anzeige darf nicht an 180 bzw. -180 enden, sondern muss modulo 360 - 180 weitergeführt werden, d.h. am rechten Rand von Sibirien muss sich Alaska anschließen und umgekehrt.
Das Mapping dort ist ein einziger Krampf: In die Kreisgrenze z.B. wurden zwei gerade Stücke entlang Längengrad +/- 180 eingefügt, damit man geschlossenen Polygone erhält. Die beiden Hälften liegen um die ganze Erde getrennt am rechten und linken Rand der Darstellung.
Man muss entweder Koordinaten größer 180 / kleiner -180 zulassen und Modulo 360 umrechnen oder zulassen, dass die linke Begrenzung größer als die rechte ist. Die Zweideutigkeit kann man dadurch beseitigen, dass immer die kürzere Linie gewählt wird.
Google Maps macht es übrigens richtig ![]()
Offline
#4 2013-06-25 14:52:51
- Weide
- Member
- Registered: 2009-04-05
- Posts: 1,491
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Hi,
Das ist vermutlich überall derselbe Programmier-/Entwurfsfehler
Wenn ich den Äquator angebe: meine ich dann die Nordhalbkugel oder die Südhalbkugel?
Entweder endet die Welt bei ±180°/±90° und man kann ungerichtete Polygone als Flächenangabe benutzen oder die Welt ist rund und man kann es nicht. Das liegt in der Natur der Sache und kein Fehler von irgendjemand.
Weide
Offline
#5 2013-06-25 16:54:57
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Google Maps folgt Renemans Vorschlag und rendert von beiden Seiten. An der einen oder anderen Stelle sind die Unstimmigkeiten beim Zusammensetzen auch recht deutlich.
Da ja in unseren Daten alle Flächen an der Datumsgrenze geschlossen werden und alle Linien enden, bekommt man sowieso eine merkwürdige Kante quer durch das Bild, das kann man durch zweiseitiges Rendern nicht mehr hässlicher machen.
Grüße, Max
Offline
#6 2013-06-25 17:12:41
- reneman
- Member

- From: Mainz
- Registered: 2012-10-13
- Posts: 1,106
- Website
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Google Maps folgt Renemans Vorschlag und rendert von beiden Seiten. An der einen oder anderen Stelle sind die Unstimmigkeiten beim Zusammensetzen auch recht deutlich.
Da ja in unseren Daten alle Flächen an der Datumsgrenze geschlossen werden und alle Linien enden, bekommt man sowieso eine merkwürdige Kante quer durch das Bild, das kann man durch zweiseitiges Rendern nicht mehr hässlicher machen.
Das Google Maps Beispiel sieht mir danach aus, als würde man jeweils zwei Objekte rendern, ohne dabei die restlichen Nodes der anderen Hälfte zu berücksichtigen. Das führt dann dazu, dass zwischen beiden Flächen ein Leerraum entsteht. Ich würde jedoch spontan zwei Objekte mit allen Nodes rendern.
Daher aus dem ursprünglichen Beispiel:
177.647381 60.037021 169.753146 62.237653 158.011980 65.537569 156.247880 67.511917 162.982328 71.567666 179.777527 72.277157 -179.132413 72.374985 -171.602969 69.971774 -166.245482 66.021995 -170.227398 58.859590 -179.132413 54.025129 177.719758 60.073159
werden:
177.647381 60.037021
169.753146 62.237653
158.011980 65.537569
156.247880 67.511917
162.982328 71.567666
179.777527 72.277157
180 72.374985
180 69.971774
180 66.021995
180 58.859590
180 54.025129
177.719758 60.073159und:
-180 60.037021
-180 62.237653
-180 65.537569
-180 67.511917
-180 71.567666
-180 72.277157
-179.132413 72.374985
-171.602969 69.971774
-166.245482 66.021995
-170.227398 58.859590
-179.132413 54.025129
-180 60.073159(So in der Art), oder habe ich einen großen Denkfehler?
Last edited by reneman (2013-06-25 17:13:41)
» Check the Monuments! «
Viele der als historic=monument erfassten Objekte sind in Wirklichkeit kein Monument. Sie wurden mangels passender Tags oder aus Unkenntnis als Monument erfaßt. Diese Karte CheckTheMonuments will bei der Korrektur unterstützen.
Offline
#7 2013-06-25 17:43:29
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Das Google Maps Beispiel sieht mir danach aus, als würde man jeweils zwei Objekte rendern, ohne dabei die restlichen Nodes der anderen Hälfte zu berücksichtigen. Das führt dann dazu, dass zwischen beiden Flächen ein Leerraum entsteht. Ich würde jedoch spontan zwei Objekte mit allen Nodes rendern.
Wenn das der Renderer kann, wäre es gut. Ich hab allerdings fast nur schlechte Erfahrungen mit der Datumsgrenze gemacht. Mein Mapserver reagiert jedenfalls sehr zickig, wenn man seine Linien nicht an der Kartengrenze aufhören lässt und malt dann Flächen quer durchs Bild, statt am Kartenrand abzutrennen.
Sieht z.B. so aus, wenn man die Kartenmitte auf 180° legt und den Rand auf 0°:

(zur Verdeutlichung wurde Großbritannien rot eingefärbt, das jetzt auf beiden Seiten der Karte liegt, gefüllt wird der Zwischenraum, also alles ausser GB. Gelb ist Algerien)
Last edited by maxbe (2013-06-25 17:56:36)
Offline
#8 2013-06-25 18:54:49
- TEL0000
- Moderator
- From: Berlin
- Registered: 2008-06-11
- Posts: 968
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
(So in der Art), oder habe ich einen großen Denkfehler?
Im Prinzip richtig. Allerdings stimmt der Winkel der Linien nicht mehr, wenn du den Längengrad einfach auf 180 setzt.
Theoretisch wäre es besser den auf die korrekte Position über 180° hinaus zu setzen. Also -179° sind dann 181°.
Ich weiß allerdings nicht ob die Renderer mit Werten über 180 was anfangen können.
Last edited by TEL0000 (2013-06-25 19:00:00)
Offline
#9 2013-06-25 19:44:15
- seichter
- Member
- Registered: 2011-05-21
- Posts: 3,337
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Hi,
seichter wrote:Das ist vermutlich überall derselbe Programmier-/Entwurfsfehler
Wenn ich den Äquator angebe: meine ich dann die Nordhalbkugel oder die Südhalbkugel?
Weder noch, genauso wie die Zahl 0 weder positiv noch negativ ist. Abgesehen davon geht es hier um die Längen- und nicht die Breitengrade. Es ist nur gut, dass es an den Polen so kalt ist, sonst hätten wir noch viel größere Probleme.
Entweder endet die Welt bei ±180°/±90° und man kann ungerichtete Polygone als Flächenangabe benutzen oder die Welt ist rund und man kann es nicht. Das liegt in der Natur der Sache und kein Fehler von irgendjemand.
Weide
Darüber, ob das Verhalten bei 180° ein "Fehler" ist, will ich nicht streiten. Fakt ist, dass die auf OSM basierenden Tools und Karten, die ich kenne, dort eigentlich nicht zufriedenstellend sind.
Die Erdoberfläche ist endlich, aber unbegrenzt (ich falle nirgends über den Rand). Die Grenze +/-180 ist nur pragmatisch begründet. Die Kugelkoordinaten sind auch für Werte außerhalb definiert, sie können jedoch durch modulo auf eindeutige Punkte auf der Oberfläche abgebildet werden. Auch eine Linie (179,89)-(181,89) kann dargestellt werden und ist identisch mit (179,89)-(-179,89).
Bei Google Maps korrigiere ich mich: Dort wird auch nur mit dem +/- 180-Rechteck gearbeitet. Für die Ansicht wird nur das Rechteck links und rechts wiederholt. Die Gebiete um 180° hängen aber nicht logisch zusammen und sind auch getrennt bearbeitet worden, was man an halbierten Seen, Versatz in Straßen und ähnlichem sehen kann.
Die genutzten Algorithmen gehen offensichtlich von einer an den Rändern begrenzten Welt aus. Im Beispiel von maxbe wird das deutlich: Da in GB nicht wie in Sibirien alle Objekte bei 0° aufgeteilt wurden, kommt der Renderer völlig aus dem Tritt, da er nun Nodes zu beiden Seiten des Nullmeridians quer über den Rest der Welt zu verbinden versucht.
Als schwacher Trost bleibt nur, dass auch andere Systeme mit dem Modulo-Sprung so ihre Probleme haben: Die Datumsgrenze wurde nicht zufällig weitgehend auf den 180°-Meridian gelegt.
Offline
#10 2013-06-25 20:20:07
- Weide
- Member
- Registered: 2009-04-05
- Posts: 1,491
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Die Erdoberfläche ist endlich, aber unbegrenzt (ich falle nirgends über den Rand). Die Grenze +/-180 ist nur pragmatisch begründet. Die Kugelkoordinaten sind auch für Werte außerhalb definiert, sie können jedoch durch modulo auf eindeutige Punkte auf der Oberfläche abgebildet werden. Auch eine Linie (179,89)-(181,89) kann dargestellt werden und ist identisch mit (179,89)-(-179,89).
Ich glaube, ich bin dem was ich sagen wollte nicht durchgekommen. Ich versuchs nochmal:
Wir hättten natürlich die realistischere Kugelform anstelle der platten Fläche mit Rand nehmen können. Wenn wir das getan hätten, dann können wir Flächen nicht durch durch ungerichtete einfache Polygone angeben, da jede solche Linie auf einer Kugel zwei Flächen definiert und es kein Innen und Außen gibt (Der Äquator war nur ein Beispiel).
OSM hat sich dafür entschieden, Flächen über ungerichtete einfache Polygone angeben zu können. Damit war auch die Entscheidung für eine endliche Welt mit Rand gefallen.
Weide
Offline
#11 2013-06-25 20:50:04
- seichter
- Member
- Registered: 2011-05-21
- Posts: 3,337
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
OK, jetzt verstehe ich auch die Anmerkung mit den Polygonflächen. Bis auf die Großkreise (wie den Äquator) könnte man versuchen, innen und außen über die kleinere Fläche zu definieren. Bei großen Flächen und komplizierten Konturen wird das aber beliebig mühsam.
Gerichtete Polygone hätte man auch nehmen können, dann wäre innen und außen eindeutig definiert. Aber wenn man sich die Probleme ansieht, die die wenigen gerichteten Ways wie Kliffs und Küsten machen, ist das auch keine praktikable Alternative.
Seien wir nur froh, dass OSM nicht am Kap Deschnew entwickelt wurde und es in der Antarktis keine Städte gibt. Nicht umsonst hält die Merkatorprojektion einen Sicherheitsabstand zu den Polen ein.
Offline
#12 2013-06-25 21:07:25
- Oranger Assistent
- Member
- Registered: 2013-04-07
- Posts: 92
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Tach.
Wir hättten natürlich die realistischere Kugelform anstelle der platten Fläche mit Rand nehmen können. Wenn wir das getan hätten, dann können wir Flächen nicht durch durch ungerichtete einfache Polygone angeben, da jede solche Linie auf einer Kugel zwei Flächen definiert und es kein Innen und Außen gibt (Der Äquator war nur ein Beispiel).
OSM hat sich dafür entschieden, Flächen über ungerichtete einfache Polygone angeben zu können. Damit war auch die Entscheidung für eine endliche Welt mit Rand gefallen.
Wenn wir festlegen, dass OSM-Objekte in der Länge nur eine Ausdehnung von weniger als 180° haben dürfen (wobei die Datumsgrenze überschritten werden darf) und Flächen keinen der Pole enthalten dürfen, wird das Zeichnen sowohl von Linien als auch von Flächen wieder eindeutig bei relativ einfacher Mathematik. Bei weniger als 90° wird die Mathematik dazu vollends trivial.
Und das bei hinreichend geringer™ Beschränkung der Allgemeinheit.
Der Assistent
Offline
#13 2013-06-25 21:26:12
- Weide
- Member
- Registered: 2009-04-05
- Posts: 1,491
Re: Boarder poly über Ost/West-Grenze (Russland/Alaska)
Wenn wir festlegen, dass OSM-Objekte in der Länge nur eine Ausdehnung von weniger als 180° haben dürfen (wobei die Datumsgrenze überschritten werden darf) und Flächen keinen der Pole enthalten dürfen, wird das Zeichnen sowohl von Linien als auch von Flächen wieder eindeutig bei relativ einfacher Mathematik.
Seh ich ein. Das wäre die von seichter genannte Variante mit den kleineren Polygonen, aber etwas weiter eingeschränkt, so dass man die Flächen nicht ausrechnen muss.
Bei weniger als 90° wird die Mathematik dazu vollends trivial.
Da komm ich im Moment nicht drauf...ist aber ja auch schon spät.
Weide
Offline