User:Oli-Wan/OSB2Notes

From OpenStreetMap Wiki
Jump to navigation Jump to search

(Sorry if you found this page following a link from an English-language page on the Wiki. The text below is currently available in German only; also the program documented here is a bit DE-centric. In essence, it's about a little program I wrote to simplify transferring OpenStreetBugs to Notes. You can find the link to the source code below. Until I find the time to translate the documentation properly, let me emphasize just one single aspect: The program is not meant for large-scale use. If at all, transfer only the OSBs in your own region (town, city or whatever -- but not much more) after you have checked that most of them are still useful.)

Ich habe ein kleines Programm zur Übertragung von OpenStreetBugs zu OSM Notes geschrieben; der Quellcode ist hier unter GPL verfügbar.

Notes ist in die OSM-Website integriert und soll OpenStreetBugs ablösen. Eine komplette Übertragung der Einträge aus OSB ist nicht vorgesehen; mein Tool soll dabei helfen, dies lokal zu erledigen, sofern es von den jeweiligen Mappern gewünscht wird.

Achtung: Das Programm ist nicht zum großflächigen Einsatz bestimmt. Sein Zweck ist, einem Mapper die Übertragung der OpenStreetBugs in seiner jeweiligen Umgebung zu ermöglichen, falls er diese für sinnvoll hält. Bei Uralteinträgen, diffusen oder völlig unverständlichen Meldungen dürfte es besser sein, sie mit OpenStreetBugs sterben zu lassen (oder gleich zu schließen), statt solche Altlasten auch in Notes für die nächsten Jahre zu behalten. Ein Mapper sollte eine Übertragung nur vornehmen in einem Gebiet, wo er den Nutzen der vorhandenen OSBs beurteilen kann (z.B. die eigene Stadt, ggf. auch noch auf Landkreisebene). Von einer Anwendung auf wesentlich größerer Skala bitte ich abzusehen.

Kompilierung unter GNU/Linux-artigen Systemen mit make (g++ sollte vorhanden sein); zum Kompilieren und Linken werden die Bibliotheken curl, boost_regex und boost_program_options (Laufzeitbibliotheken plus Header, d.h. Development-Pakete) sowie die Headerbibliothek Boost Lexical Cast benötigt (eine Boost-Komplettinstallation bietet sich an). Ob und wie die Kompilierung unter anderen Betriebssystemen oder gar M$ Windows funktioniert, entzieht sich meiner Kenntnis.

Anwendung: Im einfachsten Fall ./osbimport (ausführbare Datei im aktuellen Verzeichnis angenommen) ausführen; anschließend fragt das Programm zunächst nach den Koordinaten eines Rechtecks, innerhalb dessen die Übertragung erfolgen soll. Diese Koordinaten können mit der Kommandozeilenoption --bbox left,bottom,right,top direkt angegeben werden. Sodann werden die OSBs in diesem Rechteck heruntergeladen und der Nutzer für jeden einzelnen OSB gefragt, was damit geschehen soll: übertragen (yes), nicht übertragen (no) oder schließen (close) ohne zu übertragen. Die Kommandozeilenoption --force unterdrückt diese Nachfrage und überträgt alle OSBs im Rechteck. Sie ist mit Vorsicht oder am besten gar nicht zu benutzen.

Die neu angelegten Notes werden mit dem Präfix "aus OpenStreetBugs übertragen:" versehen. Die Sprache (Standard: Deutsch) kann im Prinzip per Kommandozeilenoption --lang xx geändert werden; bisher ist aber nur Deutsch implementiert. Bei Erweiterungsbedarf bitte melden.

Es besteht die Möglichkeit, die gelesenen OSBs mit --filter auf eine Zeichenkette zu filtern. Typischer Anwendungsfall ist das Filtern auf den eigenen Usernamen (--filter username), um (mit geringem Beifang) nur selbst erstellte oder selbst kommentierte OSBs zu übertragen. Um nur Bugs mit Aktivität in einem bestimmten Jahr, etwa 2013 zu übertragen, bietet sich --filter 2013- an. Mehrere --filter-Optionen können nicht kombiniert werden. (Sollte ernsthafter Bedarf hiernach bestehen, bitte melden.) Wenn nicht zusätzlich --force angegeben wird, fragt das Programm auch mit Filteroption vor jeder Übertragung beim Nutzer nach.

Randnotiz: die Anmeldung beim OSM-Server, um die aus OSB erzeugten Notes unter dem eigenen OSM-Account anzulegen, funktioniert noch nicht. Die entsprechenden Optionen sind wirkungslos.