Neu: QMapTool

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 ...
  • Heute ist mal wieder Release-Tag. Bei QMapShack gab es wie üblich viele kleine Neuerungen, Verbesserungen und Fixes. Wer es genau wissen will, liest die Ankündigung auf der Mailing Liste, bzw das Changelog.


    Wer noch nicht den etwas faden und in den Bergen inhaltsleeren Vektorkarten auf OSM Basis komplett erlegen ist, bzw für sein bevorzugtes Gebiet mit fehlenden qualitativ hochwertigen Rasterkarten hadert, den wird vielleicht mein neuestes Programm gefallen: QMapTool


    Das ergänzt QMapShack um die Funktion, die bisher nicht von QLandkarte GT nach QMapShack portiert wurde. Das Referenzieren von gescannten Rasterkarten. Sicherlich eine aussterbende Kunst. Aber es gibt noch genügend Winkel in den Alpen, für die es gute Papierkarten gibt, aber leider keine brauchbare digitale Version. Deswegen sitze ich so ein bis zweimal im Jahr vorm PC und verteile ca 650 Referenzpunkte pro Karte auf dem Kartengitter. Ein scheiß Job, bei dem man froh ist, wenn das Tool mithilft.


    Deswegen auch der Aufwand QMapTool zu erstellen. Damit kann man:


    • Zu einer gescannten Karte Übersichtsebenen erstellen, damit diese zig MB großen Boliden überhaupt in ordentlicher Geschwindigkeit angezeigt werden können.
    • Die Karte freistellen, d.h. den für das GPS überflüssigen Rand entfernen. Das geht übrigens auch mit schon referenzierten Dateien.
    • Referenzpunkte setzen. Mit dem internen Gitterwerkzeug auch entlang eines Gitters. Die Karte darf auch verschiedenen Gitter haben, z.B. UTM32 und UTM33.


    Soweit bisher der Stand. Geplant ist noch das Umwandeln von 32Bit RGBA in eine einheitliche 8Bit Farbpalette und das Zusammenfügen von mehreren Dateien. Und natürlich das Aufbereiten der Karten für das GPS Gerät.


    Im Großen und Ganzen ist QMapTool ein Frontend zu den GDAL Tools. Wer mit der Kommandozeile fremdelt und wem QGis dann doch zu abgedreht ist, wird vielleicht mit QMapTool glücklich.


    Brauchbar ist das Ganze jetzt schon. Mir gelingt es einen Rohscann innerhalb von 30-45 Minuten in eine freigestellte, referenziert Karte umzuwandeln. Zum Vergleich: Mit Gimp / QLandkarte GT habe ich dafür immer fast 2 Stunden benötigt. Und der Prozess war fehleranfällig, weil leicht der falsche Referenzpunkt verschoben wurde. Dann hieß es nochmal von vorne anfangen. Geht jetzt deutlich besser.


    Die Software ist noch jung. Deswegen sind sicherlich noch einigen Bugs mit dabei. Auch bildet die Funktion aktuelle exakt meine Vorgehensweise ab. Jemand anderes braucht vielleicht noch das eine oder andere zusätzliche Feature. Wie immer bei OpenSource sind hilfreiche Beiträge immer willkommen. Abstruse Wunschlisten eher nicht.


    Das Ganze läuft natürlich auch wieder unter Linux, Windows und OS X. Den Source Code findet man hier:


    https://bitbucket.org/maproom/qmaptool


    Der Windowsinstaller von QMapShack V 1.10.0 beinhaltet auch QMapTool V 1.0.0. Den kann man am üblichen Platz herunterladen:


    https://bitbucket.org/maproom/qmapshack/downloads/


    Ich hoffe das in den nächsten Stunden/Tagen auch der Installer für OS X verfügbar ist. Hoffentlich auch mit QMapTool.


    Zum Schluss noch 2 Screenshots, die eine fertig referenzierte Karte und eine freigestellte Karte zeigen.

  • Hier noch ein Screenshot vom Gitterwerkzeug. Damit kann man 4 Punkte (die orangefarbenen in der Mitte) auf einem Gitter definieren. Das Tool berechnet alle weiteren Punkte im ausgewählten Bereich. Diese liegen natürlich nicht genau auf dem Gitter, sondern knapp daneben. Der Job ist dann, jeden dieser Punkte in Handarbeit auf den jeweiligen Gitterpunkt zu verschieben. Und damit den lokalen Fehler, den GDAL herausrechnen soll, zu definieren. Klingt aufwändig, geht aber mit der "Auto-Move" Funktion überraschend flott von der Hand. Ich hatte schon in Erwägung gezogen dafür KI zu bemühen. Da die aber auch für jeden Punkt kontrollieren und anlernen muss, gewinnt man nichts.

  • genau das was ich gesucht habe. Vielen Dank für deinen Arbeit.
    Ja, es gibt noch immer Papierkarten mit aktueller und hervorragender Qualität. Eine davon wollte ich mit deinem Tool georeferenzieren und bin schon im ersten Schritt gestolpert: :p
    Die Anzeige der tiff-Datei hat Fehler. Bevor ich weitermache zwei Fragen dazu:[INDENT](i) Sollen auch Anwender konkrete Issues auf bitbucket dokumentieren? Oder ist das eher für Entwickler gedacht und Anwender sollen eher hier posten?
    (ii) Meine Papierkarte hat kein Raster. Wie ist da die Idee zum Referenzieren?
    [/INDENT]LG Robert

  • 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!
    Alternativ sehr gerne auch per Paypal spenden.
    Vielen, vielen Dank ...
  • (i) Dafür ist der Issue Tracker da und steht jedem mit einem Bitbucket Login zur Verfügung. Ein Login kann jeder bekommen.


    (ii) Die Koordinaten von bekannten Punkten aus QMapShack in die Zwischenablage kopieren (rechte Maustaste auf der Karte) und in QMapTool einem Referenzpunkt zuordnen. Es müssen mindestens 3 Punkte sein. Idealer Weise über die Karte verteilt.


    Jetzt stellt sich natürlich die Frage, was ein guter Punkt ist. Schwierig. Punkte aus OSM Karten sind in der Regel nicht genau, weil diese auch nur mit einem Verbraucher GPS aufgezeichnet wurden. Punkte in offiziellen Karten können aber auch sehr stark abweichen. Zum einen weil ja alle Straßen, etc generalisiert sind. Zum anderen weil auch der Staat nicht jeden sch... Weg super genau vermisst.


    Auf offiziellen Karten sind die genauesten Punkte in der Regel die Kreuzungen zwischen Bahnlinien und Straßen. Warum? Ganz einfach, hier geht es um Besitzverhältnisse und die sind sehr genau erfasst. Damit stehen, zu mindestens theoretisch, sehr genaue Daten zur Verfügung.

  • Danke für den Tipp. So ging das Referenzieren gut und schnell. Auch das Einbinden der Karte in QMapShack gelang. Allerdings wird sie bei mir erst sichtbar, wenn ich weit hinein zoome. Ansonsten seh ich nur den Rahmen.


    Habe es dann mit Overlays in QMapTool versucht. Da versteh ich aber das System nicht. Warum sind in allen 3 Arbeitsschritten - Add Overview; Cut Map; und Reference Map - die Unterteilungen :2 bis :64 wählbar???


    LG Robert

  • Wenn GDAL die Dateien bearbeitet, werden nur die echten Daten verarbeitet. Die Übersichtsebenen bleiben außen vor. Damit hat das Ergebnis keine Übersichtsebenen. Deswegen kann man bei jedem Tool in QMapTool optional die Ebenen gleich neu erstellen lassen.

  • 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!
    Alternativ sehr gerne auch per Paypal spenden.
    Vielen, vielen Dank ...
  • moin,


    nun wollte ich auch mal das neue qmaptool checken...


    klappt aber nicht. hier eine kopie der letzten meldungen:
    [ 95%] Built target qmt_rgb2pct_automoc
    [ 96%] Building CXX object tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/main.cpp.o
    In file included from /home/holger/QMapTool/tools/qmt_rgb2pct/main.cpp:19:0:
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.h:33:23: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11
    virtual ~CApp() = default;
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.h:42:22: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
    qint32 ncolors = 0;
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/main.cpp: In function ‘int main(int, char**)’:
    /home/holger/QMapTool/tools/qmt_rgb2pct/main.cpp:35:23: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
    parser.addOptions({
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/main.cpp:39:6: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
    });
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/main.cpp:39:6: error: no matching function for call to ‘QCommandLineParser::addOptions(<brace-enclosed initializer list>)’
    In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QtCore:126:0,
    from /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.h:22,
    from /home/holger/QMapTool/tools/qmt_rgb2pct/main.cpp:19:
    /usr/include/x86_64-linux-gnu/qt5/QtCore/qcommandlineparser.h:67:10: note: candidate: bool QCommandLineParser::addOptions(const QList<QCommandLineOption>&)
    bool addOptions(const QList<QCommandLineOption> &options);
    ^
    /usr/include/x86_64-linux-gnu/qt5/QtCore/qcommandlineparser.h:67:10: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const QList<QCommandLineOption>&’
    tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/build.make:65: die Regel für Ziel „tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/main.cpp.o“ scheiterte
    make[2]: *** [tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/main.cpp.o] Fehler 1
    CMakeFiles/Makefile2:206: die Regel für Ziel „tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/all“ scheiterte
    make[1]: *** [tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/all] Fehler 2
    Makefile:149: die Regel für Ziel „all“ scheiterte
    make: *** [all] Fehler 2



    für mich auf dem ersten und zweiten blick alles recht "kryptisch".
    hat hier jemand irgendwelche ideen/vorschläge was und wie ich da etwas beheben kann?


    die neueste qms-version läuft übrigens (nach einer etwas längeren update-pause) ohne probleme!

  • Hallo,
    bekomme genau die selbe Fehlermeldung, aufgetaucht am 3.1.18 nach hg pull und hg update.
    Verwendet wird ein Linux Mint 18.2 das kompilieren von QMap klappte aber schon mehrmals. QMS kompilieren geht problemlos.


    Danke noch mal für die zwei tollen Programme.
    Gruß

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap

  • 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!
    Alternativ sehr gerne auch per Paypal spenden.
    Vielen, vielen Dank ...
  • ok... läuft also auch bei mir. ich werde dann mal in "ruhe" testen...


    nur fürs protokoll, beim compilieren gab es bei mir noch einige -warnmeldungen- die sagen mir natürlich nichts.
    ich kann auch nicht deuten, ob es irgendetwas relevantes ist...
    ...ober ob es nur meiner hardware und xubuntu geschuldet ist.


    hier die meldungen:
    [ 97%] Building CXX object tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/CApp.cpp.o
    In file included from /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp:22:0:
    /usr/include/gdal/gdal_priv.h:935:20: warning: ‘virtual CPLErr GDALAllValidMaskBand::IReadBlock(int, int, void*)’ can be marked override [-Wsuggest-override]
    virtual CPLErr IReadBlock( int, int, void * );
    ^
    /usr/include/gdal/gdal_priv.h:941:29: warning: ‘virtual GDALRasterBand* GDALAllValidMaskBand::GetMaskBand()’ can be marked override [-Wsuggest-override]
    virtual GDALRasterBand *GetMaskBand();
    ^
    /usr/include/gdal/gdal_priv.h:942:29: warning: ‘virtual int GDALAllValidMaskBand::GetMaskFlags()’ can be marked override [-Wsuggest-override]
    virtual int GetMaskFlags();
    ^
    /usr/include/gdal/gdal_priv.h:955:20: warning: ‘virtual CPLErr GDALNoDataMaskBand::IReadBlock(int, int, void*)’ can be marked override [-Wsuggest-override]
    virtual CPLErr IReadBlock( int, int, void * );
    ^
    /usr/include/gdal/gdal_priv.h:956:20: warning: ‘virtual CPLErr GDALNoDataMaskBand::IRasterIO(GDALRWFlag, int, int, int, int, void*, int, int, GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg*)’ can be marked override [-Wsuggest-override]
    virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
    ^
    /usr/include/gdal/gdal_priv.h:974:20: warning: ‘virtual CPLErr GDALNoDataValuesMaskBand::IReadBlock(int, int, void*)’ can be marked override [-Wsuggest-override]
    virtual CPLErr IReadBlock( int, int, void * );
    ^
    /usr/include/gdal/gdal_priv.h:991:20: warning: ‘virtual CPLErr GDALRescaledAlphaBand::IReadBlock(int, int, void*)’ can be marked override [-Wsuggest-override]
    virtual CPLErr IReadBlock( int, int, void * );
    ^
    /usr/include/gdal/gdal_priv.h:992:20: warning: ‘virtual CPLErr GDALRescaledAlphaBand::IRasterIO(GDALRWFlag, int, int, int, int, void*, int, int, GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg*)’ can be marked override [-Wsuggest-override]
    virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
    ^
    /usr/include/gdal/gdal_priv.h:1042:25: warning: ‘virtual CPLErr GDALDriver::SetMetadataItem(const char*, const char*, const char*)’ can be marked override [-Wsuggest-override]
    virtual CPLErr SetMetadataItem( const char * pszName,
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp: In static member function ‘static GDALColorTable* CApp::createColorTable(qint32, const QString&, GDALDataset*)’:
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp:85:83: warning: format not a string literal and no format arguments [-Wformat-security]
    printf(tr("Calculate optimal color table from source file\n").toUtf8());
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp: In static member function ‘static void CApp::saveColorTable(GDALColorTable*, QString&)’:
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp:150:69: warning: format not a string literal and no format arguments [-Wformat-security]
    printf(tr("Save color table to: %1\n").arg(sctFilename).toUtf8());
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp: In static member function ‘static void CApp::ditherMap(GDALDataset*, const QString&, GDALColorTable*)’:
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp:197:66: warning: format not a string literal and no format arguments [-Wformat-security]
    printf(tr("Dither source file to target file\n").toUtf8());
    ^
    /home/holger/QMapTool/tools/qmt_rgb2pct/CApp.cpp:223:84: warning: format not a string literal and no format arguments [-Wformat-security]
    printf(tr("Apply alpha channel as no data value to target file\n").toUtf8());
    ^
    [ 98%] Building CXX object tools/qmt_rgb2pct/CMakeFiles/qmt_rgb2pct.dir/qmt_rgb2pct_automoc.cpp.o
    [100%] Linking CXX executable ../../bin/qmt_rgb2pct

  • Hallo
    hab noch mal von vorn angefangen aber es läuft nur bis 97%.


    Wie gesagt ist ein Linux Mint, unter Debian Testing geht alles problemlos. Hab ich auch gerade getestet.

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap

  • 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!
    Alternativ sehr gerne auch per Paypal spenden.
    Vielen, vielen Dank ...
  • Danke für die schnelle Hilfe!
    Funzt *****
    Geht jetzt wieder unter Linux Mint.
    Spuckte zwar einige Warnungen bei 97% aus, hat aber nicht wie vorher abgebrochen.
    Und ja Mint nutzt noch die GDAL 1.11 und bei Debian Testing ist eine 2.2 vorhanden.
    Also noch mal Danke.
    Gruß

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap