Konvertieren von .GMF (.KAL + .PNG) zu OruxMaps (Sqlite) ?

  • Irgendwo hab ich auch gelesen das GMF's als Input gehen sollen!


    Allerdings kann ich mir Allegmeingültig nicht vorstellen!


    Die Inputformate haben alle die Standard-Tile als Grundlage - das gilt auch für Sqlite (Intern sind das 256*256 Pixel Tiles in der DB).


    MOBAC kann auch ZIP (mit Inhalt Standard-Tile) einlesen (Auch als Quadkey).
    Da GMF's eigentlich verkappte Zip's sind geht das auch - allerdings liegen in den GMF's nur selten als Standard-Tiles vor (meist als 1024*1024 Pixel-Karten).


    Ich lasse mich aber gerne von der Möglichkeit überzeugen !!!


    Gruß
    Silver

  • Die Inputformate haben alle die Standard-Tile als Grundlage - das gilt auch für Sqlite (Intern sind das 256*256 Pixel Tiles in der DB).

    Ich dachte auch es wäre einfacher, KAL-Daten auslesen und zusammen mit dem PNG in eine Oruxmaps sqlite DB packen. Aber da ist zu den einzelnen Kacheln anscheinend gar keine Kalibrierung vorgesehen. D.h. es berechnet sich aus der Kachelnummer und den Eck-Kalibrierungen, die im Begleit-XML stecken. Oder geht es auch anders?


    Zum Anschauen der Sqlite-Datenbanken ist übrigens der Browser hier ganz praktisch:


    http://sqlitebrowser.sourceforge.net/



    OsmAnd wäre eine Alternative für Rasterkarten, aber da steht auch etwas von 256x256 Kachelgröße.


    Tja, Glopus wird so schnell kein Android-Programm ersetzen können.
    Außerdem finde ich den GPS-Empfang im Navi deutlich besser als in den Smartphonegeräten. Die brauchen anscheinend Line-of-sight zum Satelliten. Mein Navi empfängt sogar noch im Haus genug Satelliten für einen Fix, 4m vom Fenster entfernt, also rein durch die Streukomponenten. Smartphones haben schon Probleme auf der Fensterbank. Ich dachte das liegt vor allem am hohen Prozessgewinn moderner GPS-Korrelationsbänke und nicht so sehr an den verschiedenen Patchantennen.

  • Hi


    falls es ums anschauen der SQLITE Datenenbank geht, gibt ein Plugin für den Firefox (SQLiteManager)


    MfG
    Achim



    Ps. Ich habe da mal was für mich gestrickt zum anschauen. Ist aber sehr BUGGY und wurd nicht weiterentwickelt, da ich auf Android umgestiegen bin. Dort stehen glaube ich auch die Eckkoordinaten drin.Daraus könnte man prinzipiell auch die OSM Tile konformen Kacheln generieren. txt Erweiterung entfernen!

  • Hi


    es gibt da aus meiner Sicht zwei (einfache?) Möglichkeiten je nachdem wie Wichtig einem die Sache ist:


    - Man generiert sich die SQLite Datenbank aus dem gmf File selbst oder legt sich die entsprechende Osm konforme Tilestruktur an. Diese Verarbeitet man mit MOBAC weiter. Man kann auch einigene SQLite Datenbanken wieder als Input für MOBAC nehmen. Ich habe damals beim Umstieg auf OSMAND darum gebeten dieses Datenbankformat mit aufzunehmen und habe dafür die Infos geliefert.


    - Die sauberste Lösung ist ein "Custom Map Pack" als Startpunkt "Custom atlas as map source / locally generated
    tiles" zu nehmen und für GMFs entsprechend umstricken. Mit dem "Rohgerüst" oder Patch bittet man dann den Autor von MOBAC mit einem "Feature Request", dass er das mit aufnimmt.


    Ich habe das zumindest mit dem OSMAND Outputformat und anderen Wünschen so gemacht und es wurde schnellstenst eingebaut ( http://sourceforge.net/tracker/index.php?func=detail&aid=3416892&group_id=238075&atid=1105497 )


    MfG
    Achim

  • Ich finde es toll, dass man hier von so vielen Spezialisten umgeben ist. Leider helfen einem Nicht-Programmierer die sicherlich gut gemeinten Ratschläge nur wenig weiter.


    Ich verfolge seit Monaten die Diskussionen um Glopus für Android, was ja offenbar gestorben ist (Ich denke übrigens nicht, dass das nur ein paar Nutzer wären. Was machen denn alle (Ex-) PDA-Nutzer? Mit OSM-Karten vorlieb nehmen?) und suche nach Lösungen, für eine Android App die mühsam erstellten Karten nutzbar zu machen. Dabei scheint sich alles um MOBAC zu drehen, OSMand und OruxMaps als App werden immer wieder gerne genannt.


    Gibt es nun eine Lösung Glopus-Karten nutzbar zu machen, die keine Programmierkenntnisse erfordert?


    Die Karten in 256x256 Kacheln umrechnen ist ja mit GMM möglich. Das scheint für MOBAC ja Voraussetzung zu sein. Aber wie geht es dann weiter?

  • Die Frage ist, was will man genau. OSM-Karten braucht man nicht zu konvertieren, weil es genügend Vektorkartenprogramme für Android gibt, wie z.B. OsmAnd. Im Android-Forum gibt es einige Ratschäge für Offroad-Kartenprogramme. Eins kann sogar Ozi-Karten lesen und ein Ozi gibt es auch für Android. Also, wenn es Ozi-Karten gibt, könnte man diese direkt nutzen.


    Es bleibt dann nur bei den Karten, die man für Glopus in so 1000x1000'er Kacheln zerstückelt hat. Aber da ist eine einzige Kachel noch keine richtige Karte. Typisch sind z.B. die 7000 topografischen 1:25000 Kacheln für Bayern-Süd. Die Quelle war aber eine Mercator-Projektion. Also muss jede Kachel eigens kalibriert werden. Im Oruxmaps-sqlite haben die Kacheln aber keine eigene Kalibrierung, sondern werden aus einer Gesamtkalibrierung per Indexwert errechnet. Das funktioniert so nicht mit der Mercatorprojektion. Also würde ich erstmal sagen, auf diese Art kann man es vergessen. Oder man nimmt eine Riesen-Ozikarte (ohne Kachelstückelung) für Android. Aber ob die beiden Programme das vertragen? Dann gibt's noch Kauflösungen wie die Medion-Rasterkarten-App. Es klingt aber so als werden die Kacheln dort einzeln abgerechnet, also dass man seine Topo-Karten-CD damit nicht nutzen könnte. Dann gibt's noch "MagicMaps", auch mit Android-Anbindung. Anscheinend kann man damit aber auch keine ganzen Karten auf Android mitnehmen, sondern nur kleinere Ausschnitte.


    Naja, für mich bleibt Glopus immer noch 1. Wahl bei Radtouren. Solange es die Navis noch gibt, und ihre Akkus durchhalten ...


    Einzigartig bei Glopus:
    - komplette topografische Rasterkarten eines Bundeslandes auf SD-Card für unterwegs mitnehmen
    - Einblendung von Linien und POI aus OpenStreetMap auf die Rasterkarte

  • Im Oruxmaps-sqlite haben die Kacheln aber keine eigene Kalibrierung, sondern werden aus einer Gesamtkalibrierung per Indexwert errechnet. Das funktioniert so nicht mit der Mercatorprojektion. Also würde ich erstmal sagen, auf diese Art kann man es vergessen.


    Das stimmt so nicht. Bei OruxMaps Offline-Karten stehen die Kalibrierungsinformationen in den *.otrk2.xml-Dateien. Hier werden diverse Projektionen und Referenzsysteme unterstützt (ähnlich wie bei anderen Programmen/Formaten). Die häufig bei topografischen Karten verwendete Transversale Merkator Projektion (mit entsprechenden Parametern) gehört natürlich dazu.


    Das Dumme bei Glopus .gmf-Dateien ist nur: in den .gmf-Dateien stehen gerade diese für eine Umwandlung benötigten Informationen nicht (mehr) drin... Sofern man diese weiß, könnte man sie natürlich manuell nachpflegen.


    Grüße
    Helge

  • Die Kacheln haben keine Kalibrierinformationen im sqlite. Das hatte ich mir schon angesehen, aus einem MOBAC-Export. Die Einträge in *.otrk2.xml sind mir bekannt. Doch da stehen nur die Eckkalibrierungen der Gesamtkarte drin, nicht der einzelnen Kacheln. Das geht solange gut, wie die Einzelkachel-Werte anhand der Indizes berechnet werden können. Bei einer regulären OSM-Kachelung geht das, im Allgemeinen aber nicht. Denn bei Glopus-GMF kann jede Kachel individuell kalibriert werden. Im GlopusMapMaker gibt es je nach Verfahren auch einen kleinen Schnittrand bzw. Überlappungsbereich. Das kann Oruxmaps nicht wissen. Die Chancen stehen schon besser beim Karten-Split einer Riesenkarte. Dann kommt es darauf an, ob Oruxmaps mit der Projektion über die Kachelgrenzen hinweg zurechtkommt.


    In GMF stehen zu jeder Kachel die Kalibrierpunkte einzeln drin. Was fehlt ist nur die Angabe der Projektion. Das könnte nachträglich ergänzt werden, weil ja i.d.R. alle Kacheln einer Karte die gleiche Projektion besitzen. Ich weiss nur nicht so recht, wie die Projektionsunterstützung in Glopus konkret aussieht, welche unterstützt werden. Man kann auch durchaus eine Lambert-Projektion mit WGS84-Koordinaten kalibrieren, wenn die entsprechenden Pixel/Karte-Kalibrierpunkte bekannt sind (d.h. die 4 RGM-Koordinaten müsste man für jede Kachel umrechnen).

  • Ich wandere seit Jahren mit mehreren eingescannten (Papier-) Wanderkarten aus dem Gebiet Belgien/Niederlande. Die OSM-Karten werden zwar immer besser und sehen auch viel professioneller aus, aber der Detailgehalt von den Papierkarten ist m.M. immer noch nicht erreicht. Außerdem sind auch die Farbmarkierungen der Wanderwege auf den Papierkarten enthalten. Daher würde ich die Karten sehr gerne auf Android mitnehmen, denn mein altes PDA macht so langsam schlapp.


    Die Karten sind teils A4 gescannt und an den Ecken nach Google Maps kalibriert. 2 Karten sind komplett gescannt, so etwa A2 - da merkt man schon eher Ungenauigkeiten. Es sind alles 1:25000 Karten.
    Von Projektion ist auf den Karten nichts vermerkt, ich habe sie einfach (ob richtig oder falsch) in GMM mit Einstellung geodetic in Kacheln zerlegt bzw. auch aneinandergehängt. Das hat bisher gut funktioniert.


    OruxMapsDesktop lässt in der Tat verschiedene Projektionen zu und bietet auch die Möglichkeit eigene Bilder zu kalibrieren - allerdings nur im OZI-Format oder per Hand. Nach langer Suche bin ich auf Cal4Map gestoßen, so dass zumindest die Kal-Daten von Glopus überhaupt nutzbar werden.



    OruxMapsDesktop nimmt auch die Kacheln, macht aber aus jeder eine eigene Karte und zeigt somit nicht die Gesamtkarte sondern zeigt nur 1 Kachel bis man diese verläßt. Die Komplett-A2-Scans (etwa 8200 x 12000 Pixel) werden mit Multilayer bereits nicht mehr verarbeitet, ohne geht's so eben noch.


    Beim Einblenden eines Tracks sieht man im Vergleich zur identischen Glopus-Darstellung schon Unterschiede. Durch Spielen mit der Projektion liefert "Flat Earth" scheinbar brauchbare Ergebnisse - das sieht im Vergleich Glopus und auch Google Maps schon sehr ähnlich (welcher Darstellung darf man überhaupt trauen...). Natürlich sind die Karten sowieso nicht perfekt kalibriert, weil die Google Maps Koordinaten mit Sicherheit auch nicht perfekt waren. Welche Projektion jetzt die Richtige wäre entzieht sich meiner Kenntnis.


    Wo ich überhaupt nicht weiter komme ist, aus den Teilkarten (gekachelt oder nicht) z.B.in OruxMaps eine Gesamtkarte zu generieren. Ein "Stitchen" der Karten halte ich für kaum durchführbar und - wie bereits erwähnt - werden sehr große Karten in einem Rutsch gar nicht mehr verarbeitet.


    Im Gegensatz dazu haben aber alle Programme wie OruxMaps, OsmAnd keine Probleme mit gekachelten Online-Karten wie Google Maps usw.. Warum funktioniert das mit den Kacheln nicht im Offline Modus?


  • Die Online-Karten verwenden eine spezielle Projektion (sphärische Merkator Projektion). Bei größeren Offline-Kartenausschnitten brauchst Du die Projektion (und Parameter dazu), sonst wird das nichts. Wenn Du Papierkarten hast, sollten auf den Karten Angaben zur Projektion stehen. Wenn nicht: jedes Land hat eigentlich einen Standard. Vielleicht helfen die Angaben bei:


    http://www.crs-geo.eu/nn_12439…nal__node.html?__nnn=true


    Wenn Du die Karten selbst eingesannt hast, kann es natürlich auch noch zu Verzerrungen durch den Scanvorgang gekommen sein.


    Grüße
    Helge

  • Ach stimmt, hatte ich vergessen: die Mercator ist mittlerweile fast überall Standard. Google Maps hatte 2005 von Rektangular auf Mercator umgestellt. OSM-Tileserver machen auch Mercator. Im Kleinen fällt das kaum auf (kleine Topokacheln), im Großen aber schon (Deutschland-Kacheln). Glopus basiert meines wissens auf Rectangular-Projektion, wobei mal interessant wäre wie genau der Support für die neuen Projektionsparameter im KAL aussieht, also was genau projeziert wird, Bilder, oder welche Koordinaten.


    Richtig, zu Mercator braucht man einen weiteren Parameter, den Zentralmeridian. Andererseits kann der auch über Kalibrierpunkte bestimmt werden, wenn es genug davon gibt. Eine Näherungslösung wäre auch denkbar, wenn man die Projektion überhaupt nicht kennt und eine Entzerrung anhand mehrerer Kalibrierpunkte approximiert (wovon dann günstigerweise auch einige in Kartenmitte liegen sollten).


    Ein Stitchen der Kacheln ist für Glopus nicht unbedingt nötig, wenn sie schön gleichmäßig als Matrix ohne Schnittränder und Lücken zusammenpassen. Dann könnten sie weiter in Glopus-taugliche kleinere Kacheln zerstückelt werden. Und mit einer gewissen Regularität dürfte es auch gehen, daraus ein Oruxmaps sqlite zu generieren, wie es auch MOBAC macht (also nur die Eckkalibrierung der Gesamtkarte angeben und die Zwischenwerte berechnen lassen).

  • Hallo,


    die Topographischen Karten der Landesvermessungsämter braucht man nicht von alten Glopus Tiles nach sqlite umzuwandeln, die kriegt man auch über andere Quellen (sogar legale) rein.


    Was mich beschäftigt, ist die Sammlung historischer Karten deren Blätter ich alle einzeln im GMM georeferenziert habe und als gmf files gespeichert, verglichen mit de typischen sqlite Dateien sehr kompakten Formaten (etwa 1/3 Dateigröße). Egal ob KDR, PGK86, verschiedene Hessenkarten von Lagis, historische TK25. Die Kalibrierung ist ein Kinderspiel, sobald man die Karten mal rechteckig zugeschnitten, in ein brauchbares Format gebracht und die oft lausigen Scan-Farben und -Kontraste korrigiert hat, was die Hauptarbeit ist. Deswegen möchte ich auf diese Karten auch zukünftig (Android Geräte die sqlite Dateien als Standard nutzen) ungern verzichten.


    Was aber wirklich gut wäre, wenn man den GMM dazu bekäme, auch Standard-WMTS Tiles auszugeben. Sogar wenn es nur Zoomstufe 14 oder 15 gäbe. Wenn man die einmal hat, bekäme man auch alles weitere hin (ggf. mit MOBAC)


    Vielleicht mag der Peter da noch mal was machen?


    Frohe Weihnachten...!


  • Wenn Du die Original-Scans (nicht aufgeteilt) inkl. korrekter Kalibrierungsdateien noch hast, kannst Du recht einfach z.B. mit GlobalMapper passende Tiles in sphärischer Merkator Projektion wie bei OSM erzeugen lassen. Wozu das Rad immer wieder neu erfinden?
    Grüße
    Helge