Beiträge von Delago

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 ...

    Hi!
    Mal schauen, ob ich das richtig gemacht habe. Unten findet Ihr die Testversion. Getestet habe ich das ganze mit dieser Beispiel-Hypermap:


    [Blockierte Grafik: http://www.werner-kohl.de/gps/Autozoom1.jpg]


    Es gibt wieder die 5 Alpenkarten gleicher Auflösung, dann eine Alpenkarte etwas geringerer Auflösung und die hochausgelöste Bayern TOP10, dazwischen noch eine ecw, in deren Kalibrierung ich nicht schauen kann. Das ganze ist absichtlich ein bisschen durcheinander gemischt.


    Wenn ich auf den neuen Button "Autozoom-Test" klicke, werden zunächst alle Karten ohne bekannte Kalibrierung "aus dem Weg geräumt", d.h. ans Ende der Liste geschoben. Dann führe ich die Vorkalibrierung durch, d.h.
    - MinZoomLevel = 0.5*NA
    - MaxZoomLevel = 3*NA
    NA: natürliche Auflösung, also Zoom 100%.
    Anschließend sortiere ich die Einträge nach aufsteigendem MinZoomLevel.


    Das sieht dann so aus (zur besseren Sichtbarkeit aller MinZoomLevel habe ich die TOP10 manuell in die leere 2. Zeile geschoben):


    [Blockierte Grafik: http://www.werner-kohl.de/gps/Autozoom2.jpg]


    Diesen Zwischenschritt könnt Ihr im Programm gar nicht sehen; den habe ich nur zur besseren Verständlichkeit eingeschoben.


    Im letzten Schritt werden die MaxZoomLevels so angepasst, dass ihnen der nächsthöhere MinZoomLevel der Folgezeile zugewiesen wird, falls dieser mindestens 50% größer ist als der MinZoomLevel der untersuchten Zeile (die 50% habe ich willkürlich gewählt; da kann man auch was anderes hinschreiben).


    Das fertige Ergebnis sieht dann so aus:


    [Blockierte Grafik: http://www.werner-kohl.de/gps/Autozoom3.jpg]


    Der MaxZoomLevel 15.3 der Amap.rmap blieb unverändert auf dem Vorkalibrierungswert stehen, da es keinen weiteren zuweisbaren MinZoomLevel mehr gibt.


    Bitte führt selbst eigene Tests aus. Wie beurteilt Ihr das Ergebnis?


    Gruß
    Werner

    Achtung: Obsolete Version!

    ist aus meiner Sicht einen Versuch wert. Aber denk dran, daß du noch Zeit genug zum Geldverdienen findest ;)


    Hallo Hans,
    dann mache ich das mal probeweise. Ich lass die beiden existierenden Buttons erstmal unangetastet und spendiere einen neuen. Dann sehen wir weiter.


    Manchmal (oder immer?) machen Hobbys mehr Spaß als die schnöde tägliche Arbeit. ;)

    Hallo Werner,
    wenn dann am Ende des Tages noch etwas Zeit übrig ist ...
    Ich nutze TwoNav auf einem HTC mit einer Auflösung von 800x480.
    Ggfs. könnte die Zoomlevel-Auswahl etwas universeller ausgelegt werden ? Mir würde z.B. eine Voreinstellung in einer ini-Datei reichen.


    Hallo Joe,
    falls die aktuelle Diskussion zur Lösung führt, ist eine Unterscheidung nach Geräteauflösung nicht mehr nötig. Diese hatte ich eingeführt unter der Annahme, dass bei der Wahl von MaxZoomLevel als aktueller Zoom die gesamte Karte im Display erscheint. Nach obigem Algorithmus entfällt das und wir haben zukünftig nur noch einen Button. MinZoomLevel hängt auch in der jetzigen Umsetzung nicht von der Displayauflösung ab.


    Schau'n wir mal...


    Gruß
    Werner

    Hallo Hans und alle,
    das ist schon ein bisschen vertrackt. Aber vielleicht kriegen wir ja einen halbwegs funktionierenden Algorithmus hin. Vermutlich wird man immer manuell nachbearbeiten müssen. Aber zumindest die Größenordnung der automatischen Skalierung sollte passen.


    Wenn ich Deine Erkenntnisse anwende, könnte man in etwa so vorgehen:


    1. Bestimmung der "natürlichen Auflösung" = 100% ("NA").
    --> MinZoomLevel = 0,5*NA
    --> MaxZoomLevel = 3*NA (erste Näherung)
    Damit haben wir bereits eine Voreinstellung für den Fall, dass es keine Abstufungen von MinZoomLevel gibt.


    2. Sortieren der Einträge nach MinZoomLevel


    3. Schleife über die Einträge:
    Suchen nach dem nächsten Eintrag mit signifikant höherem MinZoomLevel (was ist signifikant?). Dieser Wert wird als MaxZoomLevel in den aktuellen Eintrag eingetragen.


    Soll ich diese Vorgehensweise mal testweise einbauen und dann sehen wir weiter?


    Gruß
    Werner

    wenn in der ersten Zeile steht: CompeGPS MAP File
    dann klappt das Öffnen des Files (Werner hat es richtig erkannt). - ist aber falsch projiziert (Hans hat es richtig erkannt).
    [..]
    Womit extrahiert ihr den "Header am Fileende" bei grossen Dateien?


    Hallo freeday,
    Danke für die Info!
    Den "Header am Fileende" kannst Du mit der gestrigen Version von IMPgenerator extrahieren. Bis knapp 4 GB hatte ich das verifiziert.

    Gruß
    Werner

    wie wär's, wenn du den MaxZoomLevel einer Karte auf den MinZoomLevel der nächsten Karte setzt? Ist natürlich nur solange sinnvoll, wie der Anwender seine Karten in der Reihenfolge des Maßstabs durchtoggeln möchte.


    Hallo Hans,
    das wäre möglich. Guter Vorschlag!
    Aber was ist, wenn es mehrere Karten mit gleichem gewünschten Zoomlevel gibt, z.B. wenn mehrere Kacheln aus der gleichen Grundkarte erzeugt werden, die nebeneinander liegen? In Peters Beispiel ist das so.

    Es könnte natürlich sein, dass man gar keinen Automatismus findet, der MaxZoomLevel immer vernünftig berechnet. Möglicherweise muss man bei diesem Parameter immer anschließend Hand anlegen.

    Schwierig, das ganze!

    Welche ZoomLevel stellt man ein, wenn man das rein manuell macht? Welche Kartenkonstellationen gibt es? Das sind doch wohl v.a. diese:
    1. Nebeneinander liegende gleichzeitig anzuzeigende Kacheln mit gleichem Zoomleveln (Peters Beispiel).
    2. Übereinander liegende Karten unterschiedlicher Auflösung, die nie gleichzeitig angezeigt werden (Vorschlag von Hans).
    3. Mischung aus beidem.

    Peter, Frage an Dich: Was war der Grund für den Wert "6" der MaxZoomLevel bei Deiner manuellen Einstellung? Kam das daher, dass die Karte bei der Zoomstufe 33% (MinZoomLevel bei 100% war 2) noch gut ablesbar war? Könnte man daraus ableiten, dass MaxZoomLevel z.B. 3x (oder ein anderer Faktor) so groß sein sollte wie MinZoomLevel?

    Gruß
    Werner

    Hallo Hans,
    da bin ich mir nicht sicher, zumindest wenn die Karte direkt (also nicht als Hypermap) angezeigt wird. Immerhin stehen diese Kalibrierparameter direkt in der rmap.
    Bei meinen gestrigen Versuchen hatte ich auch mehrfach die Einstellung "automatic" in den rmaps. Meine Anzeigeprobleme waren aber gelöst, als ich die besagte 1. Zeile einfügte.
    Ich lasse mich gerne eines Besseren belehren. Aber ich bin gespannt auf freedays Test.

    Gruß
    Werner


    Hallo freeday,
    ich glaube, die Fehlermeldung ist irreführend. Das Problem liegt vermutlich daran, dass Du die imp-Datei mit der Zeile "<Header>" beginnen lässt. Setze mal als 1. Zeile "CompeGPS MAP File". Das steht nämlich auch in der rmap - aber ganz am Anfang. Kalibrier-imps brauchen das auch. Im IMPgenerator hatte ich hier auch zuerst dieses Problem.

    Gruß
    Werner

    Hallo Leute,
    ich habe eine neue IMPgenerator-Version hochgeladen und bitte Euch, das Programm ein bisschen zu testen. Ich habe schon ein bisschen zuviel Zeit investiert und Ihr könnt mir helfen, den weiteren Aufwand zu minimieren.
    Ich hoffe, dass ich bei der Programmierung der letzten Tage keine Fehler eingebaut habe. Garantieren kann ich es jedoch nicht.

    [Blockierte Grafik: http://www.werner-kohl.de/gps/IMPgenerator_2010-05-03.jpg]

    Das ist neu:

    1. Deutsche Umlaute sowie das "ß" werden unterstützt.


    2. Hypermaps lassen sich in folgenden Varianten ausgeben:
    - ohne Pfad (für TwoNav und evtl. CGPSL)
    - mit relativem Pfad (für TwoNav und CGPSL)
    - mit absolutem Pfad (für CGPSL; hier kann man die Hypermap beliebig auf dem Rechner verschieben).


    3. Die Programmoberfläche wurde ein wenig aufgeräumt und die Buttons besser beschriftet. Die Auf-/Ab-Tasten sind jetzt etwas kompakter verteilt. Überflüssige Buttons wurden entfernt.


    4. Die Auf-/Ab-Tasten wirken auch auf Aktivierschalter, MinZoomLevel und MaxZoomLevel.


    5. imp-Dateien, die per "Auswahl"-Button ausgewählt wurden, werden zurückgewiesen, falls sie Hypermaps sind. Mit verschachtelten Hypermaps kommt CGPSL nicht zurecht. Außerdem wird dieser Test auch beim Laden einer Hypermap (Button "imp einlesen") auf alle imp-Komponenten innerhalb dieser Hypermap angewandt.


    6. Über den Button "Kalibrierung rmap --> imp" werden imp-Kalibrierdateien aus den Informationen am Ende aller gewählten rmap-Karten erstellt. Dabei wird aus dem Namen der jeweiligen rmap eine Kalibrierdatei mit der Endung ".imp" gebildet. Ich habe diverse Tests mit kleineren und größeren rmaps (bis knapp 4 GB ) durchgeführt, die alle erfolgreich waren. Vielleicht macht Ihr auch ein paar Tests.
    Ich hatte übrigens vor kurzem einige der rmaps umbenannt. Die Kalibrierdaten enthielten natürlich noch die alten Dateinamen. In diesem Fall fand CGPSL die rmap nicht, als ich die generierte imp öffnete. Deshalb sucht IMPgenerator jetzt nach dem Eintrag "bitmap=" und ersetzt den folgenden Namen durch den Namen der gerade untersuchten rmap. Dann stimmt alles wieder.


    7. Über die beiden Buttons "Zoomlevel-Schätzwerte bestimmen für Sportiva/Aventura bzw. für diesen PC" werden aus den Informationen der gewählten imp-Kalibrierdateien sowie der rmap-Karten die Parameter MinZoomLevel und MaxZoomLevel abgeschätzt und in die entsprechenden Editierfelder eingetragen. Diese Werte sind Schätzwerte und sollten als Ausgangswerte für eigene Anpassungen verstanden werden. Da die Kriterien für beide Schätzwerte durchaus diskussionswürdig sind, beschreibe ich sie im folgenden und bitte um Meinungen/Kommentare.

    IMPgenerator analysiert die Kalibrierungspunkte in der imp-/rmap-Datei (Pixelbereich und Längengradbereich bzw. Rechtswertbereich bei UTM) und ermittelt daraus beide Grenzen:
    - MinZoomLevel ist die Stufe, bei der die Karte 1:1 am Bildschirm angezeigt wird, d.h. beim Zoom 100%. Ein Kartenpixel entspricht also einem Bildschirmpixel. MinZoomLevel hängt nicht von den Displayabmessungen des Geräts ab.
    - MaxZoomlevel ist die Stufe, bei der die Karte soweit verkleinert dargestellt wird, dass sie als Ganzes am Bildschirm zu sehen ist. Dabei spielt die Displayauflösung des Bildschirms eine Rolle. Zur Auswahl steht die horizontale Bildschirmauflösung von 240 Pixeln bei Sportiva/Aventura sowie die Bildschirmauflösung des verwendeten PC (zur Anzeige in CGPSL; diese wird automatisch berechnet). Bei letzterer Wahl nehme ich an, dass 80% der Bildschirmbreite in CGPSL zur Kartenanzeige genutzt werden. Bei einer horizontalen Bildschirmauflösung von 1280 Pixel errechnet dann IMPgenerator eine wirksame Auflösung von 1024 Pixel.

    Ich gebe mal ein Beispiel:
    Die Karte hat eine Breite von 1,50235° (entsprechend 114955 m bei einer geogr. Breite von ~46.5°) bzw. 33833 Pixel (die Werte entnehme ich dem Kalibrierabschnitt der Datei).
    Daraus ermittle ich:
    MinZoomLevel = (114955 / 33833) m/Pixel = 3,4 m/Pixel
    PC --> MaxZoomLevel = (114955 / 1024) m/Pixel = 112,3 m/Pixel
    Sportiva --> MaxZoomLevel = (114955 / 240) m/Pixel = 479 m/Pixel
    Die Meridiankonvergenz vernachlässige ich bei dieser Betrachtung, sonst wird das zu kompliziert. Auch mache ich keine Analyse der Nord-Süd-Ausdehnung der Karte.

    Wie beurteilt Ihr beide Kriterien?


    Übrigens glaube ich, einen Bug in CGPSL bei der Verwendung von MinZoomLevel entdeckt zu haben:
    Wenn ich eine Karte direkt anzeige - entweder die rmap selbst oder über die dazugehörige imp-Kalibrierungsdatei (nicht Hypermap!), dann stimmt die 100%-Anzeige mit meinem Rechenwert gut überein.
    Wenn ich aber diese Karte in eine Hypermap einbinde (auch wenn es nur diese eine Karte darin gibt), dann zeigt CGPSL für den Zoom 100% eine ganz andere Auflösung in m/Pixel an (bei meinen Tests kam ich auf ca. den 3 bis 4-fachen Wert; das kann variieren). Hier widerspricht sich CGPSL selbst. Könnt Ihr dieses Fehlverhalten auch beobachten?

    Bei dem ermittelten Wert für MaxZoomLevel erwarte ich, dass die Karte beim Hereinzoomen dann erscheint, wenn sie gerade komplett in der Kartenanzeige dargestellt wird. Das Verhalten von CGPSL bei diesem Parameter passt manchmal mit dem von IMPgenerator ermittelten MaxZoomLevel zusammen, in anderen Fällen gibt es deutliche Abweichungen. Dieses unterschiedliche Verhalten von CGPSL habe ich nicht verstanden. Ob es ein Bug von Compe ist, weiß ich nicht. Für die Richtigkeit von IMPgenerator kann ich auch nicht garantieren. Ich bin aber ziemlich sicher, dass ich hier keinen Umsetzungsfehler gemacht habe.
    Vielleicht führt Ihr auch ein paar Tests durch.

    Diese Auto-Zoomlevel sind natürlich nur ein (hoffentlich guter) Schätzwert für den Zoombereich, in dem die jeweilige Karte angezeigt werden soll. Ihr solltet diese Parameter noch verfeinern, damit alle Karten aufeinander abgestimmt sind. Die automatischen Analysen finden immer isoliert - also ohne den Kontext der anderen Karten - bei jeder einzelnen Karte statt.

    Alle Tests musste ich mit CGPSL auf dem PC machen. In TwoNav ging das nicht, da die Symbian-Version Hypermaps noch nicht unterstützt. Compe scheint übrigens bemüht zu sein, Hypermaps auch auf Symbian-Handys zu ermöglichen. Am Freitag bekam ich eine Betaversion zum Testen; das hatte aber noch nicht funktioniert.
    [Demnächst werde ich auch mit dem Sportiva testen können. Bestellt ist das Gerät schon.]

    Die Dokumentation habe ich übrigens aus Zeitmangel noch nicht überarbeitet. Deshalb liegt hier nur das gezippte exe-File bei.

    Falls es Probleme/Fragen gibt, meldet Euch.

    Gruß
    Werner


    Achtung: Obsolete Version!

    Das hätte ich lieber sein lassen.
    Jetzt krieg ich bei jedem Programmstart die Meldung "Error reading plugin: Compeplugin_TTQV.dll in Load library 126..."

    Weiß jemand, wie man das korrigiert?

    Gruß
    Werner

    Aber jetzt habe ich mal eine dumme Frage:
    In so einer rmap steht diese Kalibrierung:

    <Calibration>
    P0=0.00000000,0.00000000,32T,768939.88370580,5314251.88070943
    P1=17468.62413859,23977.33954470,32T,812606.07673680,5254315.89972907
    P2=17468.62413859,0.00000000,32T,812606.07638793,5314251.88096361
    </Calibration>

    Die ersten beiden Parameter beschreiben die Position in der Bitmap - also die Pixel. Wieso können das nicht-ganzzahlige Werte sein? Ich habe das so umschifft, dass ich die jeweilige Zahl nach dem Einlesen gerundet habe. Aber ich würde das gerne verstehen.

    Gibt es solche krummen Werte auch bei imp-Kalibrierungen? Hier ist mir sowas noch nicht untergekommen.

    Danke und Gruß
    Werner

    Offenbar haben (hatten) auch andere Programmierer dieses Problem:
    http://www.delphi-forum.de/top…B+bzw+gt+4GB_98497,0.html

    Das schaue ich heute abend näher an.

    [EDIT]
    Nee - nicht heute abend. Der Tipp "Viel besser ist aber die Benutzung von TFilestream.Position. Einfach Position einen neuen Wert zuweisen, dann read aufrufen - fertig." ist wirklich die Lösung. Jetzt klappt es auch mit großen rmaps.

    Ich finde gerade das Kopfschüttel-Icon nicht.
    [/EDIT]

    Gruß
    Werner

    Hallo Ray,
    ich schreibe in Delphi.
    Natürlich ist mir klar, dass LongInt bei 2 GB Schluss macht. Der unsigned Typ ist Cardinal und würde bis 4 GB gehen. Das habe ich probiert und auch den Vorschlaghammer int64. Meine FileStream-Seek-Methode kommt jenseits der 2 GB damit nicht klar und die File-Position steht nach dem Befehl auf 0.

    Allerdings habe ich mich erst gestern abend (nach einem langen Tag) mit der rmap-Kalibrierung beschäftigt und war hundemüde. Muss heute abend in Ruhe darüber nachdenken.

    Das Fragment sieht prinzipiell (ohne Exception-Handling, ...) so aus:

    fs := TFileStream.Create(Datei, fmOpenRead);
    FilePos := fs.Size - Ausschnitt;
    SetLength(Buffer,Ausschnitt+1);
    fs.Seek(FilePos,soFromBeginning);
    fs.Read(buffer[0],Ausschnitt);
    fs.Free;

    "Ausschnitt" hatte ich testweise auf 2000 gesetzt, was genug Platz für die Kalibrierinformation sein dürfte. Danach bearbeite ich "buffer" weiter.
    Wenn das funktioniert, programmiere ich das Positionieren noch ein bisschen sauberer.

    Gruß
    Werner

    Hallo Hans und Anton

    mit einem Hex-Editor ist das eher mühselig, mit einem Texteditor kannst du die Zeilen 1:1 rauskopieren und als imp-Datei verpacken.


    Das geht aber offenbar nur, wenn die rmap nicht zu groß ist. Mein Textpad öffnet diese Dateien nur dann, wenn sie kleiner als 1 GB sind. Bei größeren Dateien meint er, dass "ein voller Datenträger gemeldet" sei.

    Mit meinem IMPgenerator stehe ich auch gerade hier und weiß noch nicht weiter. Die Kalibrier-Analyse für das Abschätzen von MinZoomLevel und MaxZoomLevel klappt für imp-Dateien und für rmaps eigentlich ganz gut. Bei rmap-Dateien scheitere ich an z.Z. an Größen >= 2 GB. Da klappt das File-Positionieren kurz vor's Dateiende nicht. Mal schau'n, wie's weitergeht...

    Schade, dass diese Info nicht am Anfang steht.

    Gruß
    Werner

    Wird es wie bei eTrex die Tracks direkt in der Form YYYYMMDD.gpx mitschreiben? Falls ja, ist das Teil sowas von gekauft.


    Vermutlich schon. Was aber offenbar - im Gegensatz zum 60CSx und zum 76CSx - auch geht, ist das Lesen von GPX-Dateien:

    "Der GPSMAP 78sc unterstützt GPX-Dateien für das Geocaching zum Herunterladen von Geocaches und anderen Informationen direkt auf das Gerät."