Mobile Atlas Creator - Lizenz- und Policyverstöße

OK, dann lass uns mal zusammenfassen:

  1. Postgres installieren.
  2. PostGIS-Erweiterung installieren
  3. OSM-Daten herunterladen
  4. OSM-Daten in PostGIS importieren (wie auch immer das geht)
  5. Apache herunterladen, installieren und konfigurieren
  6. mod_tile herunterladen, installieren und konfigurieren
  7. usw.

Merkst du etwas? Der durchschnittliche Nutzer ist spätestens nach Schritt 2 ausgestiegen. Nutzer erwarten, dass etwas einfach funktioniert. D.h. auspacken - ausführen - geht. 20 Seiten Konfigurationsanleitung lesen 5 sowie Programme installieren und konfigurieren kommt da gar nicht gut.

Ein erster Schritt wäre eine virtuelle Maschine auf Basis von Linux, in der wenigstens alles vorkonfiguriert von den OSM-Profis geliefert wird. Aber an so eine einfache Lösung scheint bisher noch niemand gedacht zu haben. Diese virtuelle Maschine könnte dann eine Web-GUI haben, über die man die osm/pbf-Daten uploaded und damit importieren kann. So in etwa sieht der maximale Aufwand vor, der einem fortgeschrittenem Nutzer zuzutrauen ist.

Du hast falsch verstanden was ich vorgeschlagen habe. PostgreSQL und Mapnik sollten vorkonfiguriert in die MOBAC-Distribution eingebaut werden. Natürlich kann man von keinem Nutzer verlangen daß er die einzeln konfiguriert. Einfach mit installieren und im Hintergrund anschmeißen. Apache und mod_tile sind übrigens nicht nötig. Du möchtest ja Bitmapkarten haben, nicht eine Webseite auf der diese angezeigt werden. Die Bitmaps die Mapnik erzeugt sind dierekt genau das was Du willst.

Das Ganze mit Hilfe einer kleinen virtuellen Maschine zu lösen auf der Linux läuft habe ich in Deinem anderen Thread auf SF.net vorgeschlagen. Wie Du siehst sind wir beide auf dieselbe Idee gekommen - vielleicht ist ja an der was dran? Übrigens wäre es auch in diesem Falle nicht nötig daß der Benutzer da irgendwie eingreift. MOBAC könnte die virtuelle Maschine vollständig im Hintergrund fernsteuern. Der Nutzer merkt nix.

All’ diese Lösungen bedeuten Mehraufwand Deinerseits. Das mag unfair klingen, ist es aber nicht. Im Moment ist es so daß MOBAC sich das Leben einfach macht und die OSM-Server die ganze Last der Kartengenerierung übernehmen. Dafür sind diese Server nicht ausgelegt und die Nutzungsbedingungen verbieten Massendownloads ausdrücklich (so ist es übrigens auch bei Google und anderen - auch diese werden wahrscheinlich irgendwann MOBAC sperren). Wenn MOBAC OSM-Karten haben will dann geht das nur in Einklang mit der OSM-Lizenz. Es gibt die OSM-Rohdaten im PBF-Format. Es gibt Werkzeuge die daraus Bimaps machen. Die Karte auf www.openstreetmap.org demonstriert wie das Ganze am Ende aussehen kann. Wer OSM in dieser Form in sein Programm einbauen will muß die Werkzeuge in die Hand nehmen und die Rohdaten verarbeiten. Alternative können Dienstleister wie Cloudmate diesen Schritt übernehmen, berechnen dafür aber Geld.

Du hast bei OSM immer noch viel mehr Möglichkeiten als etwa bei Google: Sobald Google merkt daß MOBAC gegen die Nutzungsbedingungen verstößt wird MOBAC blockiert und das war’s. Es gibt keine legalen Alternativen um an Google-Karten zu kommen. Bei OSM kannst Du Dir Deine Karten selber rendern. Das ist nicht nur erlaubt sondern explizit erwünscht.

Viele von uns OSMern würden sich sicherlich freuen wenn MOBAC PostGIS und Mapnik einbaut und demonstriert wie mustergültig sich ein Programm verhalten kann. Du wirst sicher auch Tips und Hilfestellung bekommen wenn Du beim Umsetzen dieser Ideen irgendwo steckenbleibst. Du kannst uns auf der Mailingliste oder im IRC besuchen wenn Du weitere Details komfortabler als hier im Forum besprechen möchtest.

Hallo Wyo

Vielleicht, weil das mit OSM-Kacheln noch rechtlich möglich wäre, bei Kacheln von anderen (kommerziellen) Anbietern aber sehr schnell die Anwälte auf den Plan rufen würde. Ob das von der Download-Seite her überhaupt Sinn machen würde, sprich Gebiete wirklich vielfach nachgefragt werden, vermag ich nicht einzuschätzen.

Im übrigen stimme ich plush zu, dass es sinnvoll wäre, nur die Rohdaten zu laden und die Tiles beim Anwender lokal zu rendern. Allerdings gibt es auch Möglichkeiten ohne Einsatz einer Postgis Datenbank so etwas zu erreichen. Man sehe sich nur mapgen.pl, Maperitive oder JOSM an. OK, ab einer gewissen Größe (spätesten ein Bundesland wie NRW) geht es mit einer Datenbank vermutlich einfacher.

Edbert (EvanE)

Auch Mapnik selber kann OSM-Rohdaten direkt als Eingabe verarbeiten.

Ob es einfacher ist sei dahingestellt. Aber von der Performanz her gibt es einfach keine Alternative. Mapnik kann nicht ganz NRW oder ganz Deutschland naiv in den Speicher laden und rendern. Da muß eine Datenbank bei der Selektion der relevanten Daten helfen.

lassen sich die OSM Tiles nicht vorab rendern und zentral zum Download anbieten? Wenn jeder MOBAC Nutzer sich die Rohdaten runterladen würde, wären die Anbieter der Server auch nicht gerade begeistert. Die kleinen Extrakte wie bspw DE gibts ja nur bei Geofabrik und Cloudmade. Ich weiß nicht ob die begeistert darüber wären, wenn 100 Leute im Monat sich bspw 841MB für DE laden. Und der Full Planet mit 15GB wäre doch etwas groß zum Runterladen und Verarbeiten.

Neben der reinen Menge an Tiles die so ein grossflaechiger download verursachen kann, sind vorallem die “highlevel zoom tiles” ein problem, da diese haeufig noch gar nicht auf dem Server vorhanden sind und somit erst gerendert werden muessen. Dies verursacht dann eine wesentlich hoehere last auf dem Server als wenn nur eine bereits gerenderte Kachel ausgeliefert werden muss. Es waere in sofern warscheinlich sinnvoll nicht zoom level 17 und 18 zum download anzubieten.

Das mindeste ist aber einen eindeutigen User-Agent string zu schicken, es auf 2 download threads zu beschraenken und die korrekte Atributierung zu geben, wie es in den Tile Usage Policy beschrieben ist ( http://wiki.openstreetmap.org/wiki/Tile_usage_policy )

Es waere aber das geschickteste mal mit den Sysadmins Kontakt aufzunehmen und zu schauen was man machen kann um die Server nicht zu ueberlasten. Grant Slater waere wohl der korrekte Anspruchpartner, oder Jon Burgess ( http://wiki.openstreetmap.org/wiki/Admins )

Das Problem ist das die OSMF nicht die noetigen finanziellen und Hardware Resourcen hat um gross angelegt Tile server bereit zu stellen. “Heavy tile users” wie MOBAC muessen also verstaerkt auf andere Resourcen zugreifen. Entweder durch das eigene Rendern, oder durch die Verwendung komerzieller Anbieter von OSM Kacheln.

Ich kenne die Details nicht, aber ich habe den Eindruck bekommen das die Mapquest-Open Kacheln (auf Basis von OSM) verhaeltnismaessig grosszuegige Bedingung haben, und da Mapquest ueber deutlich mehr Hardwareresourcen verfuegt, sollte die auch mit so etwas wie MOBAC zurecht kommen.

Das ist leider eine der anderen langzeit Baustellen, wie man dem Nutzer klar macht das OSM mehr als die Mapnik-Karte ist und das es gerade um die Vielfalt der moeglichen Nutzungen geht. Allerdings kann man auch nicht von denen erwarten das sie erst einmal ein Studium der OSM philosophy durchlaufen…

Die Daten in OSM ändern sich ja ständig. Man müßte also bestimmte Zeitpunkte festlegen, zu diesen Schnappschüsse machen und Tiles rendern. Anschließend müßte eine Infrastruktur geschaffen werden die diese verteilt, über Mirrors und per Torrent. Das ist ein riesiger Aufwand. Rohdaten werden bereits in Form von täglichen Schnappschüssen angeboten und auch die Mirrorstruktur steht bereit. Die ganze Arbeit haben OSM und Geofabrik also hier schon erledigt.

Doch, gerade dafür werden die Geofabrik-Extrakte ja bereits gemirrort. Jeder kann und soll sich die Daten herunterladen die er braucht.

Dann schau Dir mal an wie viel Bandbreite die Tiles verbraten. Das ist um ein Vielfaches mehr. Dazu kommt daß die allermeisten Tiles die etwa MOBAC anfordert niemals für andere Zwecke generiert worden wäre. Es sind also nicht nur Kosten für Bandbreite die hier anfallen sondern auch sehr viel Rechenaufwand auf dem Server der anderen OSM-Benutzern nichts bringt und nur MOBAC dient. Dafür ist www.openstreetmap.org wie gesagt nicht gedacht. Es ist nur eine interaktive Demo. Wer größere Kartenausschnitte will muß seine eigene Infrastruktur aufsetzen - er kann auf den Clients rendern oder so wie Cloudmate eigene Server aufstellen; das bleibt jedem selber überlassen. Ich persönlich denke Rendern auf den Clients wäre für MOBAC viel einfacher.

Das wusste ich nicht. Wieder was gelernt.

Ob einfacher oder ‘nur’ schneller sei mal dahingestellt. Ab einer gewissen Komplexität gibt es einen Schnitt, wo es ‘günstiger’ wird, mit einer Datenbank zu arbeiten.

Wenn man die Tiles schon generiert hat, könnte man als Add-On durchaus einen lokalen Web- und Tile-Server ergänzen. Dann kann man sich die selbst generierten Kacheln auch lokal ansehen. Für MOBAC ist das in der Tat nicht nötig, für andere Anwendungsfälle wie Offline-Nutzung der OSM-Karten kann das durchaus sinnvoll sein.

Edbert (EvanE)

Ich begrüße außerordentlich das es jetzt Bewegung gibt. Auch dein Interesse begrüße ich sehr. Das erstellen von Mapnikkacheln ist wirklich nicht sehr benutzerfreundlich. Jedenfalls im Moment.
Schauen wir uns doch mal die bisherigen Ergebnisse an. Viele User mit Smartphones haben ein Interesse an Kartenmaterial. Das ist sehr schön, denn so werden Fehler entdeckt und der ein oder andere wird sich weißer Flecken annehmen.
Welche Ansätze gibt es dafür bisher? MoBac Download vorgerechneter Kacheln. Das Kachelrechnen selber ist aber Prozessor intensiv. Das sollte Bestmöglich vermieden werden.
Die erste Möglichkeit wäre Rohdaten direkt auf dem Smartphone zu rendern. Ein solches Programm gibt es bereits bei Sourceforge und heißt GPSMID. Der Vorteil des selber rendern ist neben der Entlastung der Servers auch noch die Navigationsfähigkeit. Aber auch die 3D Vogelperspektive ist möglich. (neuste Version) Wenn man also diesen Ansatz verfolgt kann man schon mit Rohdaten alles haben. Es gibt auch eine Initiative welche so ein Konzept für .net umsetzen will.
Der zweite Ansatz wäre vorgefertigte Pakete zu erstellen und diese zum Download anzubieten. Nach diesem Verfahren funktioniert derzeit die openptmap.org Hier rechnet ein kleiner Rechner unentwegt und schiebt dann die fertigen Tiles auf den Server. Nachteil ist ganz klar das die kleinen Zoomstufen nur alle 9 Tage ausgetauscht werden. Ähnlich würde das mit den Paketen verlaufen. Da sich diese Pakete darüberhinaus immer ändern, ist der P2P ansatz nicht machbar.
Dritter Ansatz selber rendern. Hier gibt es unterschiedliche Möglichkeiten. Die einfachste wäre eine virtuelle Maschiene. Diese gibt es bereits: http://wiki.openstreetmap.org/wiki/DE:HowTo_minutely_hstore/VM Leider waren meine letzten Versuche mit aktueller virtualbox nicht erfolgreich. Eventuell eine ältere Version nehmen.
Die Maschine ist aber sehr groß. Alle 1,5 GB download ohne Daten.
Alternativ kann man natürlich auch die dazugehörige Anleitung abarbeiten.
Die zweite Möglichkeit, man installiert sich alle Programme die man braucht selber. Eine Anleitung für Mapnik unter Windows gibts hier: http://wiki.openstreetmap.org/wiki/User:Ajoessen Aber wie schon gesagt, da wird der User irgendwann der vielen Klickerei überdrüsig. Es muss also alles in einem Aufwasch erledigt werden und Einsatz bereit sein.
Dafür hat NOP den Mapcomposer erstellt. (http://composer.waldpfa.de/) Der übernimmt die Bedienung der einzelnen Comandozeilentools und greift obendrein noch auf die Planetfiles zurück. Nachteil hier: Er benutzt Maperativ und nicht Mapnik. Dafür bietet er aber den Stil der Reit und Wanderkarte, welche ebenfalls sehr beliebt ist und hat sogar Höhenlinien drin. Die Stiele lassen sich wie bei allen Renderen natürlich anpassen. Man muss sich nur die Zeit nehmen.
Welcher Weg jetzt der beste ist, kann man nicht abschließend sagen. Mir gefällt aber der Gedanke einer Datenbank aus zwei gründen sehr gut. Erstens es ist sparsam an Ressourcen, da nicht alles im Ram vorgehalten werden muss.
Zweitens gibt es die Möglichkeit über sogenannt Diffs (40MB pro Tag) die Änderungen der Welt einzuspeisen und so das Downloadvolumen drastisch zu senken. Dennoch bleibt man immer auf dem neusten Stand.
Ganz wichtige beim selber rendern wäre sicher noch eine Strategie um Teile die nicht geändert wurden nicht neu zu rechnen.

Also meiner Meinung nach ist ein Tile-Server auch für MOBAC notwendig. Wie sollen denn die Tiles sonst von Mapnik nach MOBAC kommen? Mapnik ist so weit ich das recherchiert habe ein C+±Programm und MOBAC ein Java-Programm. Mir fällt da nur Netzwerkkommunikation ein um die beiden Programme zu verbinden.

Mapnik hat einen C+±Kern, kann aber durchaus von anderen Sprachen aus ferngesteuert werden. Mapnik setzt traditionell auf Python als Skriptsprache. Aber auch von Java aus ließe sich das Rendern der gewünschten Bitmaps problemlos veranlassen.

Dann liefere deinen Nutzern doch eine Lösung, die “einfach funktioniert” aber bitte nicht auf Kosten der OSM-Tileserver!

Neben fertigen Lösungen wie z.B. http://dev.ifs.hsr.ch/redmine/projects/osminabox/wiki gibt es im OSM-Wiki ja auch Mapnik-Anleitungen zum selber bauen. Wenn man da nicht in alle MOBAC-Versionen einbauen möchte, dann doch zumindest in die für die Destoprechner bzw. stellt man das ganze als zusätzliches Serverbootimage bereit, welches über die MOBAC-GUI fernbedient wird. Da kann man sinnvollerweise dann auch gleich evtl. eine der klassiche (also nicht gerade Bittorrent, weil sich ja da die Files in den Torrents schlecht updaten lassen) angepaßte P2P-Software mit installieren, was es den Leuten mit schwachbrüstigeren Endgeräten auch ermöglichen würde, sich schon vorberechnete Tiles für einen bestimmten OSM-Extract bei jemand anderem abzuholen, wenn es seine erzeugten Tiles freigegeben hat.

Evtl. gibt es auch schon (Windows-)Portierungen, so daß man die benötigte Software auch mit einem Mobac-Mapnik-Installscript, den Benutzern fertig auf deren System zimmern kann, wenn sie keine VM oder ectra Hardware für das Serverimage haben sollten. Möglich ist da so einiges, nur will ja MOBAC den Leuten fertige Tiles ausliefern, also sollte es sich auch darum kümmern, diese zu ggf. erzeugen. Es ist ja nicht Sinn des OSM-Projektes, fertige Mapnikinstallationen für alle weltweit auftauchenden und gewünschten Anwendungsfälle zu bauen!

Hi,

Rohdaten (in Form von *.osm-Dateien) werden nicht aufs (JAVA-)handy geladen bei GPSMID (wenn ich das richtig verstanden habe ;), sondern durch Osm2GpsMid “vorkonfektioniert”.

Einen ähnlichen Weg geht mapsforge (für Android), dort werden per osmosis + plugin aus Rohdaten eine Map erzeugt und diese auf dem smartphone von einer App selbst gerendert.

Die Frage ist, ob man nicht von den “Länderextrakten & Tiles” ein wenig weggeht und hin zu z. B. 50 km x 50 km “Chunks/Kacheln” geht, die z. B. die Geofabrik bereitstellen könnte.
Dann bräuchte jemand in Freiburg nicht immer BaWü + komplett Frankreich laden (da er eh’ selten nach Marseilles kommt) sondern nur z. B. 4 x (50 km x 50 km) “Straßbourg und Umgebung”.
Die “chunks” könnten für den Enduser durch ein Proggies wie MOBAC anhand einer z. B. Europakarte ausgewählt werden (damit jener nicht selbst mit lat/lon hantieren muss) und MOBAC
übernimmt auch das “pre-rendering”.

Vorraussetzung ist natürlich: “chunkübergreifende” Suche sowie “chunkübergreifendes” Routing muss sitzen.

Ciao,
Frank

Hallo Frank

Habe mal in deinem Text, die Stelle markiert, in der das Problem steckt.

Ansonsten ist deine Überlegung 50x50 km2 Kacheln als Basis zu verwenden sicher eine gute Idee.
Über die Kachelgröße und ob Überlappung oder nicht, könnte man natürlich noch mal reden.
Ebenso ob nicht 1/2/…/5 Grad eine günstigere Einteilung wäre.

Edbert (EvanE)

Ja du hast recht. Die Daten werden vorbereitet. Ob es dabei über eine Filterung von Daten und Einteilung in Kacheln hinausgeht, weiß ich nicht. So sehr habe ich mich dann nicht mit dem Programm beschäftigt.

Natürlich ist es besser je weniger Daten man herunterladen muss. Allerdings ist eben bei Osmosisextrakten das Problem, dass getrennte Wege nicht einfach wieder zusammengesetzt werden können. Ob dieses Problem einfach gelöst werden kann ist jedoch fraglich.

Ich hab für mich als gangbaren Weg diese Lösung für Rasterkarten realisiert!!!

  • Download der Gewünschten OSM-Rohdaten von Geofabrik.

  • Mit dem Splitter schneid ich dann den Bereich (mit etwas Umrandung) aus.

  • Mit Maperative Render ich dann die Tiles nach meine gewünschten Regeln (Einzig schade ist das Maperative keine Flächen mit Muster füllt)

  • Mit dem USB-Webserver verweis ich dann auf die Tiles

  • Der MOBAC holt sich dann über den USB-Webserver die Tiles

Fertig ist die Rasterkarte

Gruß
Quasilotte

Warum nutzt der MOBAC nicht den OSM Layer von Bing? Dort dürfte eine Infrastruktur stehen die unserer haushoch überlegen ist. Oder die Tiles von MapQuest? Bis 4.000 Tiles pro Sekunde ist es denen laut Wiki egal, darüber sollte man mal Bescheid sagen.

Würde unsere Infrastruktur erst mal kräftig entlasten.

Sollten diese beiden alternativen Quellen nicht auch im Wiki stehen? Momentan wird recht unspezifisch auf die Liste der kommerziellen Anbieter gelinkt.

Stephan

Im Prinzip schon. Ich bezweifle aber, ob dann Multipolygone richtig umgesetzt werden. Insbesondere dann, wenn sie nicht komplett im Rohdatenausschnitt sind (z.B. große Waldpolygone mit Löchern).

Gruß,
ajoessen

Wenn MOBAC statt http:// auch file:/// versteht, braucht es keinen Webserver. Openlayers funktioniert auch so, wenn man die Tiles den Regeln entsprechend ablegt.

Gruß,
ajoessen

Gibt es dazu eine Wiki-Anleitung, die andere weniger geübte Leute benutzen könnten? Falls nicht, könntest du so eine Anleitung erstellen?

Wyo