A
Anonymous
Guest
Hallo zusammen,
für eine mobile Anwendung möchte ich Landkarten als Vektordaten speichern. Nachdem die Karten doch recht umfangreich sein können, suche ich nach einer Möglichkeit, die Daten so zu speichern, dass beim Darstellen eines Kartenausschnittes die Daten schnell gefunden werden können.
Zum Thema habe ich mir auch schon viele Gedanken gemacht und dabei mal Vor- und Nachteile aufgeschrieben:
1. Die Darstellung soll wie bei gängigen Navi funktionieren:
* kleiner Zoom -> grosser Kartenausschnitt -> wenige Details (Küsten, polit. Grenzen, Autobahnen, größere Städte)
* größerer Zoom -> kleinerer Kartenausschnitt -> mehr Details (gleiche Details wie bei kleinerem Zoom, zusätzlich jedoch kleinere Strassen, evtl. Rad- und Wanderwege, Stromleitungen, etc.)
Damit ergibt sich der Effekt, dass Daten redundant gespeichert werden. Bspw. finden sich Autobahnen dann in den Daten für alle Zoomstufen
2. Um diese Redundanzen zu vermeiden, enthält eine Zoomstufe nur die Daten, die im Vergleich zur nächst geringeren neu hinzugekommen sind. Zum Zeichnen der Karten werden die Zoomstufen dann von der geringsten bis zur aktuellen durchlaufen und die Daten dargestellt.
3. Eine Karte besteht aus mehreren Ebenen. Jede Ebene enthält bestimmte Karteninformationen. So werden Wälder und Gewässer in einer Ebene gespeichert, Strassen in einer neuen, Rad- und Wanderwege in einer weiteren Ebene. Damit lassen sich unerwünschte Kartendaten leicht ausblenden.
Anregungen und Kritiken zu diesen Punkten sind ausdrücklich erwünscht!
Meine Frage zielt jedoch auf etwas anderes ab: Damit nun nicht immer alle Daten durchlaufen werden müssen, möchte ich neben den Ebenen und Zoomstufen noch die Karte in einzelne Ausschnitte, ähnlich den Tiles von OpenStreetMap, aufteilen. Es gibt einen Kartenausschnitt für einen niedrigen Zoom. Für die nächste Zoomstufe wird der Kartenausschnitt unterteilt (bei OSM in Breite und Höhe geteilt). Damit werden die Kartenausschnitte mit zunehmendem Zoom kleiner. Die Folge: Autobahnen würden dann nur in einem großen Ausschnitt (z. B. mit 200 x 200 km) mit niedrigem Zoom gespeichert (-> Vermeidung redundater Daten). Zum Zeichnen eines Ausschnitts von 100m x 100m müssen damit aber die Autobahndaten des großen Ausschnitts durchlaufen werden.
Hat hier jemand einen besseren Vorschlag? Wie ist das bei den "großen" System von Garmin, Navigon, etc. gelöst?
Ich hoffe, ich konnte meine Überlegungen halbwegs verständlich rüberbringen und möchte mich schon jetzt für jede Anregung / Kritik / Antwort bedanken.
VG,
Markus
für eine mobile Anwendung möchte ich Landkarten als Vektordaten speichern. Nachdem die Karten doch recht umfangreich sein können, suche ich nach einer Möglichkeit, die Daten so zu speichern, dass beim Darstellen eines Kartenausschnittes die Daten schnell gefunden werden können.
Zum Thema habe ich mir auch schon viele Gedanken gemacht und dabei mal Vor- und Nachteile aufgeschrieben:
1. Die Darstellung soll wie bei gängigen Navi funktionieren:
* kleiner Zoom -> grosser Kartenausschnitt -> wenige Details (Küsten, polit. Grenzen, Autobahnen, größere Städte)
* größerer Zoom -> kleinerer Kartenausschnitt -> mehr Details (gleiche Details wie bei kleinerem Zoom, zusätzlich jedoch kleinere Strassen, evtl. Rad- und Wanderwege, Stromleitungen, etc.)
Damit ergibt sich der Effekt, dass Daten redundant gespeichert werden. Bspw. finden sich Autobahnen dann in den Daten für alle Zoomstufen
2. Um diese Redundanzen zu vermeiden, enthält eine Zoomstufe nur die Daten, die im Vergleich zur nächst geringeren neu hinzugekommen sind. Zum Zeichnen der Karten werden die Zoomstufen dann von der geringsten bis zur aktuellen durchlaufen und die Daten dargestellt.
3. Eine Karte besteht aus mehreren Ebenen. Jede Ebene enthält bestimmte Karteninformationen. So werden Wälder und Gewässer in einer Ebene gespeichert, Strassen in einer neuen, Rad- und Wanderwege in einer weiteren Ebene. Damit lassen sich unerwünschte Kartendaten leicht ausblenden.
Anregungen und Kritiken zu diesen Punkten sind ausdrücklich erwünscht!
Meine Frage zielt jedoch auf etwas anderes ab: Damit nun nicht immer alle Daten durchlaufen werden müssen, möchte ich neben den Ebenen und Zoomstufen noch die Karte in einzelne Ausschnitte, ähnlich den Tiles von OpenStreetMap, aufteilen. Es gibt einen Kartenausschnitt für einen niedrigen Zoom. Für die nächste Zoomstufe wird der Kartenausschnitt unterteilt (bei OSM in Breite und Höhe geteilt). Damit werden die Kartenausschnitte mit zunehmendem Zoom kleiner. Die Folge: Autobahnen würden dann nur in einem großen Ausschnitt (z. B. mit 200 x 200 km) mit niedrigem Zoom gespeichert (-> Vermeidung redundater Daten). Zum Zeichnen eines Ausschnitts von 100m x 100m müssen damit aber die Autobahndaten des großen Ausschnitts durchlaufen werden.
Hat hier jemand einen besseren Vorschlag? Wie ist das bei den "großen" System von Garmin, Navigon, etc. gelöst?
Ich hoffe, ich konnte meine Überlegungen halbwegs verständlich rüberbringen und möchte mich schon jetzt für jede Anregung / Kritik / Antwort bedanken.
VG,
Markus