Vektorkarten aus MP-Files

Garmin fenix 7X und epix Gen 2 im Test

Der Schwerpunkt dieses Tests und Vergleichs der Garmin Fenix 7X Solar und Garmin Epix Gen 2 liegt auf den Sensoren wie Höhenmesser, Positionsbestimmung und Herzfrequenz. Was unterscheidet die beiden GPS-Outdoor-Smartwatches? Und wie gut ist die Taschenlampe der Fenix 7X für den Outdoorbereich? Hier geht es zum Test der Outdoor-Smartwatches ...
  • Hallo allerseits,

    ich habe mich einige Zeit mit CGPSL beschäftigt, aus MP-Files halbwegs professionelle Vektorkarten zu erstellen. Als Sourcefile deshalb das MP-Format, da es für semiprofessionelle Kartenbastler quasi ein defacto-Standard geworden ist. Es ginge auch SHP, aber muss ja nicht sein.

    Die Hauptkarte in einem GPS-Navigator ist für mich immer eine Vektorkarte. Warum:

    - Schlankeres Kartenbild, zeigt nur relevante Kartenelemente und ist so für das Auge schneller und leichter erfassbar. Auch durch einen kurzen Blick auf das Display sieht man alles, was notwendig ist.
    - Kartenelemente sind suchbar. Es kann sehr einfach nach Städten und geographischen Punkten gesucht werden.

    Rasterkarten sind daher (für mich) nur dann sinnvoll, wenn mehr Information benötigt wird, oder wenn es die Situation erfordert. Deshalb ist es für mich sinnvoller, die Rasterkarte nur bei Bedarf zuzuschalten. Und um CGPS für mich verwendbar zu machen, ist die Vektorkarte in diesem System unerlässlich.


    Vektorkarten in CompeGPS Land mit MP-File als Source

    Als Layers werden die einzelnen Elementtypen bezeichnet.
    Als Zoom Levels werden die einzelnen Levels der Karte bezeichnet.

    Die Datei layers_mp.dat ist für die Darstellung von Elementen einer Vektorkarte im MP-Format verantwortlich. Aus ihr wird die Zuordnung eines Kartenelementes zu einem Typ durchgeführt. Diese Datei muss verpflichtend da sein, sonst können keine Kartenelemente angezeigt werden. Zusätzlich sind Anzeigeparameter für die Elemente hinterlegt. Das heisst, diese Datei legt das Aussehen für Elemente aus MP-Files fest; und zwar ausschliesslich für Karten im MP-Format.

    Jede Datenzeile dieser layers_mp.dat sieht folgendermassen aus:

    layerid, layer type, layer name, icon, border color, inner color, width, line style, fill texture

    Line style Parameter (die Nummerierung ist äquivalent der angezeigten Reihenfolge in den Line-Properties):
    0 - Solid
    1 - Dash
    2 - Dot
    3 - Dashdot
    4 - Dashdotdot
    5 - Null
    6 - Double
    7 - Double Fat
    8 - Double Alternate
    9 - Rail
    10 - Double Rail
    11 - Line Wall
    12 - ZigZag
    13 - arrow-32
    14 - wheel_arrow-32
    15 - arrow_ball-32

    Icon Parameter bei Points (POI):
    Das Icon wird als Text (z. B. Summit) angegeben.
    Border Color ist dabei die Farbe des Labels.

    In den Properties wird bei Icon die Sammlung "garmin" im Pull-Down Menü angezeigt. Beim Einlesen des MP-Files wird allerdings das Icon aus der Sammlung "compegps" angezeigt. Gibt es das Icon aber in der Sammlung "compegps" nicht, wird es aus der Sammlung "garmin" oder "default" genommen. Es ist mir aber trotzdem nicht klar, wo festgelegt wird, von welcher Sammlung die Icons genommen werden. Auf jeden Fall ist es NICHT jene Sammlung, die in den Options für Wegpunktsymbole angegeben ist. Es gibt zwar noch bei den Karten-Properties die Einstellung des "POI icons file", aber das hat in der Praxis nicht zusammengepasst.

    Zoomverhalten

    In den Properties der einzelnen Layer kann das Zoomverhalten eingestellt werden:
    Near Zoom Einstellung: Beim Hinauszoomen verschwindet das Element ab einem eingestellten Zoom-Level
    Far Zoom Einstellung: Beim Hinauszoomen erscheint das Element ab einem eingestellten Zoom-Level. Zuvor ist es nicht sichtbar, wenn weit hineingezoomt.

    Allerdings beeinflusst diese Einstellung in keiner Weise eine Zuordnung zu Levels.


    Fehler, Bugs, offene Probleme

    • Compe hat das Wesen einer Vektorkarte nicht durchschaut. Es zeichnet Linien unter Polygonen, Punkte unter Polygonen. Wie soll man die da sehen?
    • Im Datenbaum links werden die unterschiedlichen Layer aufgelistet. Allerdings in wirrer Reihenfolge. Wenigstens alphabetisch wäre schon toll, denn sonst sucht man sich die Augen wund (beim ca. 100 Layern).
    • Es gibt keine Festlegung, wenn 2 Polygone übereinander sind, wie die Zeichenreihenfolge auszusehen hat (z. B. ein zugrundeliegendes Polygon und ein kleineres darüber).
    • Fehlerhafte Polygondarstellung, auch bei in sich geschlossenen Polygonen, welche keine "Inseln" haben. Dies tritt eigentlich nur auf, so wie CGPSL will. Sprich, man öffnet die Karte, es werden Polygone falsch dargestellt. Man schliesst und öffnet erneut, dann passt es. Das nächste Mal wieder nicht. Willkürliches Verhalten ohne, dass irgendetwas geändert wurde.

    Speicher in Compe-Format

    Speichert man eine MP-Karte direkt als MPVF, werden die Icons auf eine andere Sammlung geändert. Gibt es ein Icon in der nun neuen Sammlung nicht, hat der Punkt eben kein Icon. Dies ist NUR im Datenbaum ersichtlich, denn: Es wird von der Karte so gut wie nichts angezeigt, 99% der Elemente fehlen. Ich denke, man kann eine MP-Karte nicht direkt als MPVF speichern.

    Man muss die Karte zuerst als MPV speichern, bevor man sie als MPVF speichern kann.

    Zoomeinstellungen, die in der MPV gemacht werden, gehen beim Speichern als MPFV verloren. Es wird ein Zoom angezeigt, wobei alle Elemente "über einen Kamm geschoren werden". Dies ist auch logisch, da alle Elemente im Level 0 sind.

    Einstellungen/Änderungen im Level lassen sich nur für jedes Element einzeln machen. Es gibt keine Mehrfachauswahl (z. B. nach Layer). Bei mehreren 10.000 Elementen in der Karte - viel Spass. Dies wird über Polyline Properties gemacht. Ein Polygon oder POI Properties gibt es nicht.

    Weiters ist mir noch aufgefallen, dass Compe Polylines und Polygons mischen. Sprich, man kann eine Polyline erstellen als Polygon und umgekehrt. Wahrscheinlich ist das auch eine Ursache für die Falschdarstellung von Polygonen aus MP-Files.

    Man kann mit CompeGPS Land auch Polygone und Polylines erstellen. Interessant dabei ist, dass, wenn die Funktion aktiviert wird, der erste Punkt automatisch irgendwo auf die Karte gesetzt wird. Ob man will oder nicht. Ich denke mal, das dürfte ein Bug sein.

    ------------

    So, ich hoffe, ich habe meine bisherigen Erkenntnisse verständlich dargelegt. Dass ich keine Vektorkarte ala Garmin erwarten darf, ist mir klar. Das schlichte Layout kann man mal hinnehmen. Allerdings sollte grundlegende Dinge funktionieren. Solange die Elemente nicht richtig dargestellt werden (Polygone und die Anordnung von Polygonen/Polylinien/Punkten), braucht man mit CGPSL nicht weiterarbeiten.

    Und wenn Compe einigermassen intelligent wäre, würden sie sich Stan ins Boot holen und die Vektorschiene auf Vordermann bringen.

    lg, Paul

    PS: Anbei noch ein Screenshot von einem Flusspolygon, welches mal richtig - mal falsch dargestellt wird.

  • Renderengine

    Die Basis jeder Vektorkartenverarbeitung ist die Renderengine. Sie macht nur mal die korrekte Darstellung der Karte. Abgesehen von den schon bekannten Missständen habe ich festgestellt, dass die Renderengine auch bei einfachen Polygonen falsch arbeitet.

    Siehe begefügte Screenshots, wo mehrere Polygone ersichtlich sind. Dabei werden zwei eigenständige Polygone (im Screenshot MapSource) von CGPSL zu einem Polygon verschmolzen. Eine Erklärung dazu habe ich nicht, warum das so ist. Ich denke mal, dass die Renderengine sehr schlampig zusammengestöpselt wurde.

    Aber, und jetzt kommt das groteske: Hin und wieder funktioniert die richtige Darstellung, da wird dann "richtiger" gerendert (zwar noch immer schlampig gezeichnet, aber richtig). Das ist bei einem Programm, wo der Code ja immer gleich abläuft, wirklich sonderbar.

    lg, Paul

    PS: Ich werde vielleicht hin und wieder ein bischen weiterexperimentieren. Aber für mich wars das im Grossen und Ganzen jetzt. Da die Basis - eine gute Renderengine - noch nicht in CGPSL vorhanden ist, ist ein Weiterarbeiten nicht möglich.

  • Ist es nicht schade um die Zeit, welche man für Compe vergeudet.
    Den Spaniern ist das einfach 2 Nummern zu groß.
    Mit Stan wäre das ne Kleinigkeit gewesen und schon längst perfekt umgesetzt.

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • Hallo Paul,


    für alle bei denen der Schwerpunkt auf der Vektorkartendarstellung liegt, bietet Garmin derzeit das bessere System.
    CompeGPS steht da erst am Anfang.


    - layers_mp.dat, types.dbf
    die sind mit der 7.3.8.* durch die \CompeGPS\plugins\Garmin\LayersGarminPlugin.xml ersetzt.


    - POI icons
    werden in den Karteneigenschaften festgelegt.
    Der Import muss als MPV gespeichert werden. Dann werden die Icons aus der in den Karteneigenschaften definierten Datei genommen.
    Soll dies schon beim Import erfolgen ist das Garmin.zip entsprechend zu erweitern.


    -Zoom / Level
    Die Objekte werden/sind Objektebenen(layern) zugeordnet
    Jedes Objekt hat seine eigenen Einstellungen bzgl. des Zoomverhaltens/ZoomLevel
    Layer ist also nicht = GarminLevel
    Objekte vers. Layer können also das selbe Zoomverhalten zeigen.


    -Fehler, Bugs, offene Probleme
    + Draworder
    Das hat in keinster Weise etwas damit zutun das dies seitens CompeGPS nicht verstanden wird, wie du spekulierst, sondern schlichtweg an der fehlerhaften Umsetzung.
    Derzeit scheint es immer noch am sichersten die Objekte in der gewünschten Anzeigereihenfolge zu importieren d.h. sie müssen in der MP-Datei in dieser Reihenfolge vorliegen.
    Ray hat mal ein Perl-Tool geschrieben um eine vorhandene MP-Datei entsprechend zu reoganisieren.
    +willkürliches Verhalten bei der Darstellung von Polygonen
    Das kann ich so nicht nachvollziehen.
    Probleme gibt es def. bei der Darstellung von Polygonen bei denen eine Linie verwendet wird um z.B. sowohl einen See als auch eine darin befindliche Insel darzustellen.
    Ob das generell so glücklich ist sei dahingestellt, sollte imo aber unabhängig davon korrekt dargestellt werden.


    -Speicher in Compe-Format
    + MP-Datei lassen sich auch direkt als MPVF speichern
    + die von mir in den Karteneigenschaften gewählte Symboldatei wird dann auch gespeichert
    + es ist nicht zwingend notwendig zuerst ein MPV zu speichern
    + Die Zoomeinstellungen(far,near zoom) gehen nicht verloren beim speichern von MPV zu MPVF.
    * Hier ist es aber in der Tat so das es kleine Unterschiede bei der Anzeige von MPV + MPVF gibt. Trotz gleicher Einstellung werden werden Objekte geringfügig früher/später
    * angezeigt/ausgeblendet je nachdem ob MPV oder MPVF angezeigt wird. Das 99% der Elemente nicht zu sehen seien kann ich nicht bestätigen.
    * auch fallen geringfügige Unterschiede z.B. in der Liniendicke auf( bei gleicher Definition der Dicken)
    + Änderung Einstellungen der Objekttypen(layer)
    Ich habe Schwierigkeiten dir zu folgen. Meinst du den Editor?
    Im Datenbaum über die Eigenschaften des jeweiligen Layers kann ich doch die Änderungen vornehmen. Diese betreffen dann alle Objektelemente diese Layers.
    Es können auch mehrere Layer markiert werden und eine Änderung gemacht werden. Diese wird für alle Layer durchgeführt. Dafür brauche ich nicht den Editor zu öffnen.
    + Properties/Eigenschaften
    Diesen Bereich gibt es für alle Objekttypen POI, Polylines, Polygone
    Keine Ahnung warum du die nicht auch für Polygone und POI hast.
    + Polylines/Polygone mischen?
    Sorry das verstehe ich nicht. Letzlich ist ein Polygon auch nichts anderes als eine geschlossene Linie.
    Die Zugehörigkeit wird ja über die Zuordnung zum Objekttyp erreicht.
    + Zufälliger erster Punkt eines Polygons
    soweit ich das sehe ist es immer entweder bei Aufruf via Kontextmen da wo ich gerade mit RMT hingeklickt habe bzw. der letzte Punkt im Hauptfenster der angeklickt wurde.


    Es gibt auf jeden Fall noch einiges zu fixen und zu verbessern.
    Zumindest sieht es jetzt so aus als könnte ich mit der 7.4 für zumindest meine Belange ausreichende Vektoroverlays gestalten.


    [Nachtrag]
    CLAY CustomLayer(file)
    Sind alle Anpassungen/Konfigurationen bzgl. der Layer wie z.B. Zoomlevel, Iconzuordnung, Liniendicke gemacht worden, so kann dies auch in eine separate Datei dem CLAY-File exportiert werden(Kontextmenu von "Ebenen").
    Dies kann dann
    1. dazu benutzt werden um Änderungen nur temporär vorzunehmen.
    So wird KARTE.MPVF bei vorhandener KARTE.CLAY mit den dort hinterlegten Werten angezeigt.
    2. Die importierten Daten durch Import eines CLAY-files zu konfigurieren.
    Normalerweise wird dies ja in mit \CompeGPS\plugins\Garmin\LayersGarminPlugin.xml oder ein selbst erstelltes XML( und dann in den Optionen auswählbar)gemacht.
    Man ist da also recht flexibel.
    (ein Wechsel des XML im Betrieb macht derzeit einen Neustart notwendig. Bug ist reportet)

  • Hallo Gert,

    danke Dir für die vielen Infos. Ich werde die in Ruhe abarbeiten und in meinen Workflow einfliesen lassen.

    Eine LayersGarminPlugin.xml habe ich in meinem Compe-Verzeichnis noch nicht, nur eine LayersOSMPlugin.xml. Wahrscheinlich ist die Garminversion davon nur in der letzten Beta drinnen. Ich warte da eben auf die 7.4er Version.

    Was das Rendern angeht, so bin ich mit der Darstellung, die mal fehlerhaft ist, mal nicht, und mal dauerhaft, nicht zufrieden. Meine Screenshots zeigen das ja, dass da was nicht stimmt. Bei dem diesmal angehängten werden Polygone, die nicht "compe-konform", sehr wohl aber mp-konform sind, garnicht dargestellt. Aber wie auch immer, mal auf die neue Version warten.

    Was das Grundverständis von Compe für Vektorkarten angeht, da halte ich an meiner Meinung fest: Wenn eine Draworder fehlerhaft oder garnicht umgesetzt wurde, weil einfach ein Vorhandensein von Parametern fehlt, heisst das für mich auch, die "Vektorphilosophie" nicht verstanden zu haben. Ist eben so. Denn eine Drawoder-Abhandlung gehört einfach dazu.

    Nebenbei sollte eine Drawreihenfolge von Polygon - Polyline - Point mal grundsätzlich da sein. Aber die fehlt ja eben auch.

    Aber gut nun, warten wir mal auf die 7.4er, dann werd ich weiterexperimentieren. So hin und wieder kommen mir neue Ideen :D.

    Was mir auch aufgefallen ist: Für MP, MPV und MPVF gelten unterschiedliche Regeln. Ich denke, aus diesem Grund ist es besser, die MP einzulesen, und dann als MPV in CGPSL weiter zu verarbeiten. Und zwar ausschliesslich als MPV. Falls ich mich irre, einfach sagen.

    So, irgendwie nimmt das, was eigentlich Hobby ist, mehr Zeit in Anspruch als ein regulärer Job. Naja, in diesem Sinne ....

    Paul

  • Hallo Paul,


    - die LayersGarminPlugin.xml ist erst mit der akt. Beta 7.3.8.H drin.
    - bei diesem Screenshotbeispiel handelt es sich vermutlich um solche Polygone wo sich Punkte/Linien überlagern.
    Dies habe ich bereits als Bug reportet.


    - Ein System zur Draworderfestlegung z.B. per Parameter am Layer habe ich auch schon angesprochen.
    Derzeit geht es anscheinend erstmal nur über die Importreihenfolge.

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • Hi Paul,


    - Zeichnung der Polygons
    zwischenzeitlich ist mir zumindest ein Beispiel eines Polygons untergekommen wo sich einzelne Linien nicht überdecken(Insel in See-Variante) sondern das Polygon nur vereinfacht dargestellt wird. dh. einzelne Punkte einfach weggelassen werden


    - Sortierung im Datenbaum
    erfolgt afaik nach Reihenfolge der Layer im LayersGarminPlugin.xml

  • Hallo Gert,


    danke noch mal für die Infos. Ich werd das ganze beizeiten in ein Word.doc zusammenfassen und dann mit der 7.4er Version weiterarbeiten. Der Tag bräuchte 48 Stunden .... :(


    lg, Paul

    WILDGOOSE Geo Services - Specialist for Vietnam

  • Hallo nochmals,


    was ich allerdings noch nicht durchschaut habe, ist das mit dem Zoomeinstellungen oder Levels.


    Ich habe im importierten MP-File 4 default Levels angegeben, wobei alle Elemente im Level 0 sind. Ist klar. Ein MPV File hat auch Levels. Ein MPVF File allerdings nicht. Braucht der keine Levels? Oder wird das komplette Zoomverhalten nur über die Far Zoom / Near Zoom - Einstellungen festgelegt? Das würde erklären, warum das MPVF keine Levels mehr hat.


    Allerdings: Ist für einige Elemente (Layers) ein "always visible" eingestellt und die Karte wird als MPVF gespeichert, so stimmt das "always visible" nicht. Ganze Karte verschwindet beim grössten Zoomwert, der für einen Layer vergeben wurde.


    Z. B. Wurde für Layer A "always visible" eingestellt, für Layer B "100m/px" und für C "50m/px", so passt es für B und C, der Layer A verschwindet aber gleichzeitig mit B.


    lg, Paul

    WILDGOOSE Geo Services - Specialist for Vietnam

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • Oder wird das komplette Zoomverhalten nur über die Far Zoom / Near Zoom - Einstellungen festgelegt?


    Die ZoomLevels-Reiter welche man im Datenbaum nach einem Import hat
    sind bis auf Level0 überflüssig da keine Information über den Sinn verfügbar ist, eine Wirkung nicht erkennbar ist und im Level0 erstmal alle Objekte enthalten sind. Ich habe da einiges ausprobiert aber nichts brauchbares herausgefunden.
    Für den Moment würde ich sagen, Ja, das Zoomverhalten wird nur über die Werte near/far gesteuert.


    Allerdings: Ist für einige Elemente (Layers) ein "always visible" eingestellt und die Karte wird als MPVF gespeichert, so stimmt das "always visible" nicht. Ganze Karte verschwindet beim grössten Zoomwert, der für einen Layer vergeben wurde.


    Ja, sobald offensichtlich ein von "always visible" abweichender Wert vorkommt wird der höchste Wert als max. Zoomwert genommen.


    Z. B. Wurde für Layer A "always visible" eingestellt, für Layer B "100m/px" und für C "50m/px", so passt es für B und C, der Layer A verschwindet aber gleichzeitig mit B.


    In der Krassheit ist es mir nicht aufgefallen, allerdings ist mir auch schon aufgefallen das wohl "dicht" beieinander liegende Layer unerwartet gemeinsam ausgeblendet werden.
    Bei MPV ist das Verhalten da besser(näher am eingestellten Wert) als bei MPVF.

  • Hallo Gert,

    was würd ich ohne Dich tun. So langsam kommt Logik in die Sache. Wäre doch gelacht, wenn ich keine gute Compekarte basteln könnte.

    Ja, sobald offensichtlich ein von "always visible" abweichender Wert vorkommt wird der höchste Wert als max. Zoomwert genommen.



    Ah gut, ich dachte schon, ich wäre blind. Und war ich auch. Es gibt noch eine Near/Far Zoom Einstellung über die ganze Karte. Da wird dieser "max. Zoomwert" automatisch eingetragen. Das kann man aber wieder ändern auf "always visible", und dann funktioniert es wie gewollt.

    Ich denke, jetzt hab ich mal einen Grundstock an Infos, mit dem man arbeiten kann. Fehlt nur noch die 7.4er.

    nochmals danke und lg,
    Paul

    WILDGOOSE Geo Services - Specialist for Vietnam