Hallo!

Als Autor von libosmscout antworte ich mal.

On Tue, 2011-10-11 at 10:27 +0200, Nils Faerber wrote:
1. Effiziente lokale Datenspeicherung und für eine effiziente und
schnelle lokale Abfrage.
[...]

Ja.

2. Effizienter und "state-of-the-art" lokaler Map Renderer.
[...]

Bei einem Renderer, der eine Map in der Größenordnung <200ms liefert, ist die Qualität der Map immer ein Kompromiss. Zugegeben sind die Datenstrukturen und Datenqualität von OSM auch nicht immer hilfreich (aber das macht es ja nur aufregener ;-)). Mein Bestreben ist es eine gute Qualität abzuliefern bei sinnvoller Performance. Ggf. sind erweiterte Funktionalitäten, an/abschaltbar zu gestalten. Ich versuche auch eine hohe Flexibilität bzgl. der Optik der Map zu ermöglichen, aber Performance erzwingt hier eben bestimmte Kompromisse.

Oh - sollte soetwas wider Erwarten doch bereits existieren, und ich habe
mich danach schon wund gegoogled, nehme ich sachdienliche Hinweise sehr
gerne entgegen!
Aus lauter Verzweiflung habe ich mir jetzt schon ein Garmin Nüvi in der
Bucht geschossen, damit ich wenigstens ansatzweise OSM Karten für
Navigation verwenden kann, aber das kann ja echt nicht die Lösung sein...

Hast du dir libosmscout [1] schon angesehen? Eingesetzt wird das z.B.
schon in MoNav [2], zusammen mit dem extrem schnellen MoNav routing
daemon.

Es hat zwar Überlegungen gegeben, libosmscout für das Map-Rendering in Monav zu integrieren, dies ist aber noch nicht geschehen. Der aktuell verwendete Renderer ist ein anderer. Von den Screenshots her ist meinem persönlichen Empfinden nach libosmscout "schicker", aber so etwas ist immer Geschmackssache.

Recht sicher, aber mal sehen, was war das nochmal...

[1] https://wiki.openstreetmap.org/wiki/Libosmscout
[2] http://monav.openstreetmap.de/

Ah, ja, richtig, hatte ich!
Das ist in der Tat einer der vielversprechenderen Ansätze, gefiel mir
ganz gut, war nur etwas frickelig ans Laufen zu bekommen (also außerhalb
von Monav.

Sollte es Probleme geben, sollte man mich kontaktieren. Noch besser ist die Verwendung der entsprechenden Mailingliste.

Teile davon könnte man sicherlich extrahieren und für den von mir
skizzierten Zweck verwenden - oder vielleicht gleich das ganze OSMScout?
Dann wäre es nur noch eine Frage, die Software zu verallgemeinern, damit
sie breit eingesetzt werden kann. Also gute Trennung von Renderer,
Kartendaten und Routing, damit ggf. auch mal eine der Komponenten gegen
eine andere getauscht werden könnte.

libosmscout ist so modular designed (die Implementierung ist da sicherlich noch nicht perfekt), dass der Import, der Zugriff auf Daten sowie das Rendering auf gemeinsamen Datenstrukturen aufbauen. Es sollte aber möglich sein, einen Import zu schreiben, der z.B. nicht auf *.osm oder *.osm.pbf Dateien aufbaut, so lange die Daten den grundlegenden OSM Strukturen entsprechen. Ebenso sollte die Schnittstelle der Datenbank (Zugriff auf die beim Import generierten Dateien) auch durch eine andere Implementierung ersetzbar sein. Schließlich greift der Renderer nicht direkt auf die Datenbank zu, so dass prinzipiell auch Daten aus einem Online-Zugriff in den Renderer gesteckt werden können. Integration von Routing ist aktuell eher provisorisch würde aber entsprechend implementiert.

Das letzte mal als ich mir das angesehen hatte, war der Renderer noch
stark eingeschränkt, d.h. es gab kein richtiges sinnvolles API, um von
einer Applikation aus den Renderer als Widget einzubinden und zu
beeinflussen (Center-Koordinate setzen, Rotation etc.).
Alles machbar, keine Frage! Müßte man nur den libosmscout Author mal
fragen und ggf. zusammenarbeiten.

Feedback/Anwender Herzlich willkommen :-)

Aktuell arbeitet der Renderer mit verschiedenen Backends (in verschiedenen Stadien). Das cairo Backend ist am fortgeschrittesten, gefolgt von einem libagg und Qt Backend. Es gibt auch Anfänge für ein SVG Backend. Neue Backends zu schreiben ist relativ unaufwändig.

Eine Abstraktion über das eigentlich "ich rendere in ein Canvas" in Richtung "Widget" ist aber sehr schwierig. Ein Gtk Widget (Gtk 2 oder Gtk 3?) und ein Qt Widget (oder doch besser zur Verwendung in QML und Co.?) unterscheiden sich schon sehr, unterschiedliche APIs für Multithreading aber auch unterschiedliche Anforderungen eines Clients (Monav hätte gerne Tiles, die Beispielprogramme rendern immer den sichtbaren Auschnitt) erzeugen beliebig viele Varianten von Widgets - die dann doch nicht passen. Die Personen, die libosmscout zum Laufen und integriert bekommen haben, hatten Aufwand in T Bereich Tage. Für jemanden, der Mal "eben schnell" ein vollständiges Programm im Kontext Routing,POI etc... schrieben will, ist dies der geringste Aufwand und meiner Meinung nach sollte das kein Hinderungsgrund sein. Tatsächlich habe ich bereits angeboten, entsprechende Widgets zu integrieren, dann aber als Library "on-Top" der bestehenden libraries.

Rotation ist in libosmcout aktuell die Aufgabe das Anwenders beim Ansteuern des Backends. Die meisten Backends (Cairo, Qt, libagg) bieten an, entsprechende Koordinatentransformation transparent durchzuführen. Eine entsprechende Tranformation in den Renderer selbst zu integrieren wäre aber auch kein Problem.

Aber vielen Dank für den Tip da nochmal zu gucken!
Die Screenshots von Monav sehen verflixt gut aus, ich bin begeistert! Da
hat sich doch Einiges getan, seitdem ich das letzte mal geschaut hatte.
Werde ich mir gleich auf einem N900 instalieren *freu* :)

Das ist (noch nicht?) libosmscout.

Doch nach wie vor denke ich, daß die OSM Community auch Infrastruktur
für Entwickler fördern sollte - also eben Bausteine fördern, die von
Applikationsentwicklern einfach benutzt werden können, um interessante
Applikationen zu (er-)schaffen. Libosmscout ist da schon sehr weit vorne!

Das höre ich gerne :-)

Entsprechende Gedanken waren der Hintergrund der Entwicklung. Mein persönliches Ziel war es nie, eine eigene Navigationssoftware zu schreiben sondern anderes dies zu ermöglichen. Auch mit mittlerweile günstigen Datenflatrates gibt es genug Situationen, wo Offline Rendering eine gute Alternative ist (Ausland, bei schlechter Abdeckung, im Fall von Katastrophen).

Wie auch mehrmals in der Vergangenheit hier noch mal der Aufruf: Wer Interesse hat, sollte Kontakt aufnehmen es gibt für verschiedenste Bereich Möglichkeiten der Mithilfe. Selbst reines (negatives) Feedback ist hilfreich.

--
Gruß...
   Tim

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Reply via email to