ZitatOriginal von B.K.
@pstefan,
Deiner Argumentation kann ich so nicht folgen.
Da die Europakarte ja auch auf dem PPC läuft, ist diese Karte ja bereits entsprechend organisiert.
Da muß dann nicht mehr viel gesucht und verbunden werden, das liegt bereits alles vor. Es muß nur noch geklärt werden, ob die Sätze zu dem ausgewählten Bereich gehören.
Es müssen diese Sätze aber nicht nur rausgenommen werden, weil sonst bekommst du nur eine Liste aller Sätze und da hast du eine echt miese Performance. (O(n))
Navigon hat daher im Kartenformat 127 Sätze (Strassen, POIs, Gebiete,..) zu einem Block von jeweils 2048 Bytes zusammengefügt, jeden Block mit einem Koordinatenrechteck verknüpft, in dem sich die Sätze koordinatenmässig befinden, und das ganze in einen Baum gehängt. Damit die Suchperformance für jeden Satz optimal ist, muss dieser Baum ausgewogen sein, dh. alle Äste sollten eine annähernd gleiche Tiefe (od. Höhe - wie ma's sieht) haben. Wäre das nicht der Fall, würde ein Ausschnitt der Karte extrem schnell geladen sein und an einer anderen Stelle würde man lange warten.
D.h. der zusammengestellte Baum muss dahingehend opimiert werden. Bei kleinen Bäumen ist das nicht so ein großes Problem. Aber wenn du einige 100.000 Sätze hast, kann das schon länger benötigen, auch bei 1 GB Hauptspeicher. Zusätzlich muss man auch noch drauf schauen, dass jeder dieser Blöcke mit 127 Elementen gefüllt ist, da sonst der Speicherplatz unnötig verschwendet wird, z.B. wennst nur 3 Einträge hast, werden trotzdem 2048 Byte reserviert.
Man könnte wahrscheinlich schon etwas Zeit sparen, wenn man die Karte blockweise exportiert, aber da die Blöcke nicht alle gleich groß sind, würde an den Ränder immer unterschiedlich exportiert werden und da gibt's dann sicher wieder wen, dem das nicht passt.
Fehler macht jeder mal, auch die Mitarbeiter von Navigon. Und die sind mit Sicherheit nicht schlecht, der Aufbau des Kartenmaterials is nämlich ganz schön gut auf Perfomance und Speicherplatzoptimierung durchdacht. Und wer noch immer über die Programmierer schimpfen will, soll mal selbst seinem Taschenrechner das Navigieren beibringen!!!
@B.K. hast du mal während des Exports geschaut, wieviel Speicher MapExport belegt? würd mich interessieren ob er bei 1 GB den vollen Hauptspeicher ausnutzt.
lg
Stefan