... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Route konvertieren aus CMAPecs
#1
Es wäre schön, wenn der RouteConverter auch Routen aus dem Seekartenprogramm CMAPecs konvertieren könnte Smile. Das hat schon jemand versucht unter www.sailsafely.com/cmap_gps.htm , aber diese Software ist über den Betastandard nicht hinausgekommen und funktioniert nicht richtig Sad.
Reply
#2
Die Software von sailsafey.com lasse ich lieber nicht auf meinen Rechner los ;-)

Wie sieht das Format der Routen von CMAPecs denn aus? Schick mal Beispiele.
Wo finde ich die Webseite von CMAPecs? Wieviele Leute nutzen das Programm?
--
Christian
Reply
#3
CMAPecs ist eine unter Fahrtenseglern verbreitete Software mit weltweiter Kartenabdeckung. Über Google gibt es dazu eine Menge Einträge. Ich schicke Dir im Anhang per email eine kleine Datei mit einer Route zu. Vielleicht ist es ja ganz einfach, diese in gängige Formate zu konvertieren.

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

Lothar
Reply
#4
Die Email scheint nicht angekommen zu sein.
--
Christian
Reply
#5
Ich hab die email jetzt nochmal gesandt an 'support<at>routeconverter.de'

-----------------------------
Lothar
Reply
#6
Angekommen. Leider ist das CMAPecs-Format eines dieser nur mit einer Dokumentation entschlüsselbaren Binärformate:

Code:
00000000h: 3A 01 01 00 00 07 00 00 00 43 4D 52 4F 55 54 45 ; :........CMROUTE
00000010h: 02 5B 06 00 00 00 54 52 6F 75 74 65 01 00 00 00 ; .[....TRoute....
00000020h: 0A 00 00 00 63 6F 74 65 20 64 61 7A 75 72 02 00 ; ....cote dazur..
00000030h: 00 00 00 00 00 00 11 00 00 00 12 00 00 00 02 5B ; ...............[
00000040h: 09 00 00 00 54 57 61 79 50 6F 69 6E 74 01 00 00 ; ....TWayPoint...
00000050h: 00 00 00 00 00 0A 00 00 00 20 34 33 20 30 31 2E ; ......... 43 01.
00000060h: 34 38 4E 0A 00 00 00 20 20 36 20 31 30 2E 30 39 ; 48N....  6 10.09
00000070h: 45 00 00 00 00 01 00 00 00 00 00 00 00 5D 02 5B ; E............].[
00000080h: 09 00 00 00 54 57 61 79 50 6F 69 6E 74 01 00 00 ; ....TWayPoint...
00000090h: 00 00 00 00 00 0A 00 00 00 20 34 33 20 30 39 2E ; ......... 43 09.
000000a0h: 33 39 4E 0A 00 00 00 20 20 36 20 33 39 2E 31 39 ; 39N....  6 39.19
000000b0h: 45 00 00 00 00 01 00 00 00 00 00 00 00 5D 02 5B ; E............].[
000000c0h: 09 00 00 00 54 57 61 79 50 6F 69 6E 74 01 00 00 ; ....TWayPoint...
000000d0h: 00 00 00 00 00 0A 00 00 00 20 34 33 20 31 31 2E ; ......... 43 11.
000000e0h: 39 33 4E 0A 00 00 00 20 20 36 20 34 32 2E 34 39 ; 93N....  6 42.49
000000f0h: 45 00 00 00 00 01 00 00 00 00 00 00 00 5D 02 5B ; E............].[
00000100h: 09 00 00 00 54 57 61 79 50 6F 69 6E 74 01 00 00 ; ....TWayPoint...
00000110h: 00 00 00 00 00 0A 00 00 00 20 34 33 20 31 37    ; ......... 43 17

Hat jemand Dokumentation dafür?
--
Christian
Reply
#7
ich würde auch gerne Routen aus CMAP4 auslesen und konvertieren. Ich würde auch ein Java-Progrämmchen basteln, das meine Routen ausliest und in einem einfachen ASCII CSV-file ablegt. Könnt Ihr für den Output ein Format vorschlagen, das der Konverter dann auch verstehen wird?
Ich würde die Konvertieren aus CMAP mittels "brute force" machen, also ohne die exakte Kodierung zu kennen. Aber es sieht so aus, als könnte man die Koordinaten leicht auslesen.
Reply
#8
(01.04.2009, 15:35)mhaug Wrote: ich würde auch gerne Routen aus CMAP4 auslesen und konvertieren. Ich würde auch ein Java-Progrämmchen basteln, das meine Routen ausliest und in einem einfachen ASCII CSV-file ablegt. Könnt Ihr für den Output ein Format vorschlagen, das der Konverter dann auch verstehen wird?

Zwei Varianten kann ich mir da vorstellen
  1. direkt als Java-Objekte, d.h. als NavigationFormat, das eine BaseRoute mit BaseNavigationPosition herauswirft
  2. GPX so wie es die gpsbabel-basierten Formate machen

Der erste Ansatz ist m.E. deutlich weniger Aufwand für Dich und das Ergebnis kann eines der 40 oder mehr Formate sein, die RouteConverter gerade schreiben kann. Details, wie Du von dem bestehenden optimal profitieren kannst, erkläre ich Dir gerne interaktiv per Skype oder Telefon.

(01.04.2009, 15:35)mhaug Wrote: Ich würde die Konvertieren aus CMAP mittels "brute force" machen, also ohne die exakte Kodierung zu kennen. Aber es sieht so aus, als könnte man die Koordinaten leicht auslesen.

"brute force" hieße für Dich: Du interpretierst das Format nicht vollständig sondern machst Annahmen, wo Koordinaten und Wegpunkte stehen?
--
Christian
Reply
#9
(01.04.2009, 15:47)routeconverter Wrote:
(01.04.2009, 15:35)mhaug Wrote: ich würde auch gerne Routen aus CMAP4 auslesen und konvertieren. Ich würde auch ein Java-Progrämmchen basteln, das meine Routen ausliest und in einem einfachen ASCII CSV-file ablegt. Könnt Ihr für den Output ein Format vorschlagen, das der Konverter dann auch verstehen wird?

Zwei Varianten kann ich mir da vorstellen
  1. direkt als Java-Objekte, d.h. als NavigationFormat, das eine BaseRoute mit BaseNavigationPosition herauswirft
  2. GPX so wie es die gpsbabel-basierten Formate machen

Der erste Ansatz ist m.E. deutlich weniger Aufwand für Dich und das Ergebnis kann eines der 40 oder mehr Formate sein, die RouteConverter gerade schreiben kann. Details, wie Du von dem bestehenden optimal profitieren kannst, erkläre ich Dir gerne interaktiv per Skype oder Telefon.

(01.04.2009, 15:35)mhaug Wrote: Ich würde die Konvertieren aus CMAP mittels "brute force" machen, also ohne die exakte Kodierung zu kennen. Aber es sieht so aus, als könnte man die Koordinaten leicht auslesen.

"brute force" hieße für Dich: Du interpretierst das Format nicht vollständig sondern machst Annahmen, wo Koordinaten und Wegpunkte stehen?

(29.04.2009, 18:36)mhaug Wrote:
(01.04.2009, 15:47)routeconverter Wrote:
(01.04.2009, 15:35)mhaug Wrote: ich würde auch gerne Routen aus CMAP4 auslesen und konvertieren. Ich würde auch ein Java-Progrämmchen basteln, das meine Routen ausliest und in einem einfachen ASCII CSV-file ablegt. Könnt Ihr für den Output ein Format vorschlagen, das der Konverter dann auch verstehen wird?

Zwei Varianten kann ich mir da vorstellen
  1. direkt als Java-Objekte, d.h. als NavigationFormat, das eine BaseRoute mit BaseNavigationPosition herauswirft
  2. GPX so wie es die gpsbabel-basierten Formate machen

Der erste Ansatz ist m.E. deutlich weniger Aufwand für Dich und das Ergebnis kann eines der 40 oder mehr Formate sein, die RouteConverter gerade schreiben kann. Details, wie Du von dem bestehenden optimal profitieren kannst, erkläre ich Dir gerne interaktiv per Skype oder Telefon.

(01.04.2009, 15:35)mhaug Wrote: Ich würde die Konvertieren aus CMAP mittels "brute force" machen, also ohne die exakte Kodierung zu kennen. Aber es sieht so aus, als könnte man die Koordinaten leicht auslesen.

"brute force" hieße für Dich: Du interpretierst das Format nicht vollständig sondern machst Annahmen, wo Koordinaten und Wegpunkte stehen?

Hallo, sorry, dass ich jetzt erst antworte! Ich habe nicht kapiert, wie dieses Forum funktioniert und auf eine Nachricht gewartet. Jetzt hab ich doch mal nachgesehen, weil ich meine email-Ordner aufräume, und Deine Antwort gefunden.

Zunächst: "ja" Brute force sollte heißen, ich kann die Namen und Koordinaten identifizieren und muss den Rest dazwischen ignorieren. Ich glaube aber, dass dabei nichts verloren geht, was wichtig wäre.

Deinem link zur java-Doku bin ich gefolgt. Da müsste ich mich durchbeissen. gibts vielleicht ein abgestripptes Beispiel-programm, das Routen und Waypoints wegschreibt?

Ich hab leider wenig Zeit, mich darum zu kümmern, würde aber schon gerne meine in CMap erfassten Routen "retten". Wenn ich ein funktionesfähiges Progrämmchen hätte, würdest Du es in den RouteConverter integrieren?

Guten Abend, Michael
Reply
#10
(29.04.2009, 18:36)mhaug Wrote: Deinem link zur java-Doku bin ich gefolgt. Da müsste ich mich durchbeissen. gibts vielleicht ein abgestripptes Beispiel-programm, das Routen und Waypoints wegschreibt?

Hallo Michael,

starte mit RouteConverterCmdLine bzw einem Schipsel daraus:

Code:
private void convert(File source, NavigationFormat format, File target) throws IOException {
        NavigationFileParser parser = new NavigationFileParser();
        if (!parser.read(source)) {
            log.severe("Could not read source '" + source.getAbsolutePath() + "'");
            logFormatNames(NavigationFormats.getReadFormatsSortedByName());
            System.exit(20);
        }

        if (format.isSupportsMultipleRoutes()) {
            parser.write(parser.getAllRoutes(), (MultipleRoutesFormat) format, target);
        } else {
            parser.write(parser.getTheRoute(), format, false, false, true, target);
        }
    }

Da muß man sich nicht durchbeißen, oder?

(29.04.2009, 18:36)mhaug Wrote: Ich hab leider wenig Zeit, mich darum zu kümmern, würde aber schon gerne meine in CMap erfassten Routen "retten". Wenn ich ein funktionesfähiges Progrämmchen hätte, würdest Du es in den RouteConverter integrieren?

Klar, wenn es nicht für mich bedeutet, es mühsam umzuschreiben, so daß es in RouteConverter paßt - dann wäre die Arbeit, die Du sparst, bei mir gelandet ;-) Darum will ich Dich ja auf den Weg bringen und Dir dabei helfen, am Anfang sich auf das bestehende API einzulassen, damit es danach einfacher zu integrieren ist. Und: ziemlich viel Infrastruktur wie Berechnungsfunktionen, Abstraktionen für verschiedene Dateiformattypen, Tests ist bereits vorhanden. Das solltest Du m.E. ausnutzen.
--
Christian
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)