[Talk-de] Entwicklung eines Navi für OSM Daten

hannes hannes222 at online.de
Mi Okt 19 17:51:32 UTC 2011


Aus dem Thema:
Re: [Talk-de] Mehr OpenStreetMap Softwareentwicklung und    
die?Engineering WG

Am 17.10.2011 16:26, schrieb Sven Geggus:
> Nils Faerber<nils.faerber at kernelconcepts.de>  wrote:
>
>> Habe nochmal etwas weiter geguckt - leider ist es nach dem Release 0.3
>> von Monav reichlich still geworden. Seit April 2011 keine Updates mehr
>> im Code - schade eigentlich, die Routing-Funktion war schon brachial
>> schnell.
> Die Routingfunktion ist in einem separaten daemon implementiert, der z.B.
> auch von Marble verwendet wird.
>
> Prinzipiell sollte es daher möglich sein für Android und Konsorten native
> frontends zu schreiben.
>
> Gruss
>
> Sven
>
Ich hab mal ein neues Thema angefangen weil im alten Thema über 
verschiedene Dinge diskutiert wurde und wir Kai sein Thema geklaut 
haben. Tschuldigung Kai!

Weiter oben im alten Thema wurde das Problem mit den hohen 
Einstiegshürden aufgezeigt, das sehe ich genau so. Die Einarbeitungszeit 
um sich in die Gedanken eines anderen einzuarbeiten ist einfach zu lang.
Es ist doch schade, da macht sich jemand an die Arbeit und schreibt  
z.B. ein Navi, da geht dann mehr Zeit rein als gedacht und die Arbeit 
wird eingestellt. Die bis dahin geleisteten Mühen sind verloren, weil es 
zu aufwändig für andere ist sich einzuarbeiten.
Ich kann mir vorstellen das es etliche Leute wie mich gibt, die gern an 
einem Programm mitarbeiten würden aber unter zeitlicher Begrenzung. Ich 
denke an langfristig 5 Std. pro Woche, in der Anfangsphase sicher etwas 
mehr. Damit so jemand nützlich sein kann müsste ein Projekt

*** in möglichst viele abgeschlossene Module aufgetrennt sein, mit 
dokumentierter Schnittstelle. Geht das überhaupt? Na, wenn nicht, das 
Umdokumentieren nicht vergessen.

*** für Neulinge dokumentiert sein. Ich meine grundsätzliche Dinge 
sollten erklärt werden.
Beispiel:
Ich habe mich mal mit einem Router auf OSM-Daten beschäftigt:

typedef struct _Cross {
     struct _Way *a[MAXWAYPERCROSS];
     gfloat lon,lat;
     gint64 id;
     guchar flag;
} CrossT;

typedef struct _Way  {
     guchar flag;
     gchar type;
     GList *glp;  //g list pointer
     gint anznd;
     guint64 id;
     //gfloat length;
     CrossT *from, *to;
//    gchar name[100];
//    gchar ref[100];
     gchar *name;
//    gchar *ref;
//    struct _koords {gint64 nd; gfloat lon, lat;} k [MAXND];
     gint64 nd[MAXND];
} WayT;

Alles klar? Wohl kaum. Dabei sind das die wichtigsten Strukturen.
/*
Der Router arbeitet auf einer Karte die aus Wegen besteht, diese haben 
eine Länge, einen Namen, eine Geschwindigkeitsbegrenzung etc. Die Wege 
sind am Anfang und am Ende an Kreuzungen angeschlossen. Die Kreuzungen 
enthalten Zeiger auf die angeschlossenen Straßen/Straßensegmente(Way).
*/
Jetzt ist es klarer - vermute ich. Wenn man dann noch den 
Standartalgorithmus zum routen kennt ist es fast klar wie das Programm 
aussieht.

*** die alten Mitarbeiter im Projekt sollten für Neulinge Arbeiten 
definieren, beschreiben und die Einstiegspunkte aufzeigen.
Das dient alles dazu einem Interessierten den Einstieg zu erleichtern 
und zu motivieren dabei zu bleiben.

Kann das funktionieren? Keine Ahnung! Aber ich würde es so versuchen.

Wie ist es, wollen wir versuchen ein Navi herzustellen? Hat jemand Lust 
mitzumachen?
Wie wollen wir starten? Fangen wir von vorne an und arbeiten Teile von 
monav oder gosmore ein oder bauen wir auf monav auf oder...


Gruß
Hannes







Mehr Informationen über die Mailingliste Talk-de