Rechenzeit Kartenexport

  • Heute nacht schoß mir schlagartig eine Frage durch den Kopf!


    Es wurde doch berichtet, daß die komplette Europakarte navigierfähig sei. Warum dann um alles in der Welt braucht das Ausschneiden eines Rechtecks so lange? Das müsste doch "Sekundensache" sein demnach, oder? ?(

    Navigation mit Google Maps über Android Auto und AAWireless im Nissan Qashqai Akari Automatik. Zusätzlich ist POIbase NAVI ein treuer Beegleiter meiner Fahrten  ;)

  • Zitat

    Original von HSVMichi
    Es wurde doch berichtet, daß die komplette Europakarte navigierfähig sei.


    Zumindest bezüglich MN4 halte ich das immer noch für eine unbewiesene und vermutlich falsche Behauptung.


    Zitat


    Warum dann um alles in der Welt braucht das Ausschneiden eines Rechtecks so lange? Das müsste doch "Sekundensache" sein demnach, oder? ?(


    Möglicherweise stellst Du Dir eine elektronische Karte einfach als riesiges Bild einer Papierkarte vor!? Dann wäre es wirklich Sekundensache, einen Ausschnitt zu erstellen. Nur kann ein Programm mit einem Bild leider keine Routen errechnen.
    Im Detail weiß ich es auch nicht, wie die Karten wirklich aufgebaut sind, aber es muss sich wohl um eine Menge Datenbanken handeln, in denen alle möglichen Objekte, ihre Eigenschaften und Beziehungen untereinander enthalten sind. Diese Datenbanken müssen beim Erstellen eines Ausschnitts wohl komplett umgebaut werden. Dass das nicht trivial ist, wird ja schon daran deutlich, dass Navigon trotz jahrelanger Erfahrung dabei immer noch haarsträubende Fehler macht.


    Andererseits kann ich mir auch kaum vorstellen, dass der derzeitige Algorithmus auch nur annähernd perfekt geschwindigkeitsoptimiert ist...

  • Zitat

    Original von HSVMichi
    Heute nacht schoß mir schlagartig eine Frage durch den Kopf!


    Über was Du so nachts nachdenkst :D


    Ich glaube, dass das, was 944S2 bezüglich der Datenbanken sagt, ein Grund ist. Die andere Ursache liegt wahrscheinlich in den Kompressionsroutinen. Die Daten werden dekomprimiert, die Datenbanken neu berechnet und dann wieder komprimiert - und das dauert seine Zeit. Das kenne ich von anderen Datenbanksystemen - die sind ja meist so gebaut, dass sich die Datenbank bei jeder Änderung aufbläht und beim Löschen von Datensätzen nicht wirklich Platz freigegeben wird. Erst beim Reorganisieren / Verdichten / Komprimieren wird dann wirklich Platz freigegeben. Und dieser Vorgang dauert bei Datenbanken immer ewig.


    Gruß
    Zimmi

  • Danke schon mal für die logisch klingenden Antworten.


    Mir ging halt nicht in den Sinn - vorausgesetzt natürlich, die Europakarte ist so wie sie ist einsatzbereit - daß hier so wahnsinnige Berechnungen durchgeführt werden müssen.


    Ja, vermutlich mache ich den Fehler, das mit einem Bild zu vergleichen. Ich dachte nur, daß der Rechteck-Ausschmitt ja nicht total neu berechnet werden müsste, sondern daß man von der bereits berechneten Karte einen Teil nimmt....


    Ich glaube, ich nimm die nächsten Nächte lieber Schlafmittel :D

    Navigation mit Google Maps über Android Auto und AAWireless im Nissan Qashqai Akari Automatik. Zusätzlich ist POIbase NAVI ein treuer Beegleiter meiner Fahrten  ;)

  • Ich hab grad mal einen Mapexport laufen und mir mal angeschaut, was da so passiert - es werden eben wie üblich erst einmal temporäre Dateien aus den einzelnen Datenbankfiles erzeugt, dann wird das ganze neu indiziert und neu verknüpft.
    Wenn ich so gaaanz lange zurückdenke, an Zeiten, wo ich mich noch mit Datenbanken beschäftigt habe, gab es da zwei Ansatzmöglichkeiten.
    Man kann entweder alle Daten in ein Datenbankfile schreiben und (theoretisch) ohne Index-Files arbeiten. Dann geht zwar das Ändern der Datenbank schön schnell, aber die Suche nach einzelnen Datenbankfeldern dauert ewig - deshalb legt man Indexfiles an. Und um so mehr Datenbankfelder man für die Suche nutzen will, um so mehr Indexfiles gibt es dann - und bei jeder Komprimierung der Datenbank müssen halt alle Indexfiles neu erstellt werden, da eben gelöschte Einträge in den Datenbanken beim Löschen nicht wirklich gelöscht, sondern nur gekennzeichnet werden. Gelöscht werden sie erst beim Komprimieren / Verdichten und dann müssen eben die Indexfiles neu berechnet werden.
    Nun der zweite Ansatz: Wenn man - wie im ersten Beispiel - alle Daten in 1 Datenbank einträgt (Orte, Straßen, POI's, TMC-Daten usw.), wird die Datenbank sehr groß, extrem unübersichtlich und Änderungen der Datenbankstruktur werden sehr kompliziert und Suchoperationen dauern trotz Indexfiles sehr lange. Deshalb arbeitet man mit mehreren Datenfiles, die entsprechend verknüpft werden. Dies beschleunigt die Arbeitsgeschwindigkeit - und - bei notwendigen Änderungen können gleichzeitig mehrere Leute an den verschiedenen Files arbeiten. Der Nachteil ist aber, dass eben beim "Ausschneiden" aus solchen Datenbanken ziemlich komplizierte Routinen ablaufen müssen, um die Konsistenz der Datenbanken und der Verknüpfungen nach dem Ausschneiden wieder herzustellen.


    Weia, war jetzt etwas lang und theoretisch, aber vielleicht erspart Dir das Durchlesen ja das Schlafmittel :gap


    Zimmi