Änderungen in Openstreetmap als RSS-Feed tracken

Man kann Änderungen am OSM-Datenbestand in einem bestimmten Bereich (Bounding-Box) als RSS-Feed tracken. Die Möglichkeit ist prinzipiell seit der API-Version 0.6 eingebaut.

Die URL dazu hat die Form:

http://www.openstreetmap.org/history/feed?bbox=minimaleLänge,minBreite,maxLänge,maxBreite

Die Informationen zur Bounding-Box bekommt man z.B. bequem über JOSM,
indem man dort im Menü "Daten herunterladen" in der Karte (Reiter "Interaktive Karte") einen Bereich mit der Maus
aufzieht und anschließend die Angaben aus dem Reiter "Koordinaten"
kopiert. Für den Raum Filderstadt ergibt sich z.B. dann folgende URL:

http://www.openstreetmap.org/history/feed?bbox=9.169464111328125,48.63699253883372,9.262847900390625,48.698665366862954

Üblicherweise wird man diese URL dann einem Feed-Reader geben. Es gibt aber auch die Möglichkeit sich die Änderungen in HTML dargestellen zu lassen:

http://www.openstreetmap.org/browse?bbox=9.169464111328125,48.63699253883372,9.262847900390625,48.698665366862954

Intern wird bei einem Aufruf der URL aus Performance-Gründen lediglich die Bounding-Box-Information der Changesets verglichen. Leider wird nicht geschaut, ob es in der übergebenen Bounding-Box tatsächlich Änderungen gegeben hat. Als Effekt werden selbst in kleinen Kartenausschnitten recht viele Änderungen von globalem Ausmaß angezeigt.

Zu der Thematik gab es schon Diskussionen auf der Entwickler-Mailingliste. Ergebnis ist auf jeden Fall, daß das Feature so nicht in der API umgesetzt wird. Man könnte wahrscheinlich mit geringem Aufwand mit einem Skript in einem zweiten Schritt die einzelnen Ways und Nodes der zurückgelieferten Changesets überprüfen, ob sie tatsächlich in der Bounding-Box liegen.

Die andere Möglichkeit ist, sich bei ITO für das Tool OSM-Mapper zu registrieren (proprietär, aber immerhin kostenfrei). Dort kann man über eine Slippy-Map einen Bereich definieren. Über den View "OSM-Session" erscheint dann eine farblich kodierte Liste der letzten Änderungen. Einen Link zum entsprechenden RSS-Feed erscheint, wenn man den Menüpunkt ausgewählt hat.

Den Feed kann man dann problemlos in seinem Feed-Reader importieren, zum Abrufen des Feeds muß man auch nicht eingeloggt sein. Die Feed-URL hat die Form:

http://www.itoworld.com/product/osm/feed?area=userId:areaId&show=sessions&token=irgenein16ByteHexString&user=userId

"userId" ist eine numerische Id, die man beim Anmelden zugewiesen bekommt. "areaId" ist eine Referenz auf eine BoundingBox, man muß also die BoundingBox zuerst explizit hinterlegen, bevor sie abgefragt werden kann. Das Token scheint ein Zufallswert zu sein, der für jede Area eines Users vergeben wird. Die URL ist also durchaus personalisiert und man sollte es sich überlegen, ob man sie veröffentlichen will. Wer weiss, was man mit den Angaben wie Session-Tokens und userId noch so alles anstellen kann.

In dem RSS-Feed sind auch Links enthalten auf den Kartenausschnitt. Leider zeigen die Links auf das OSM-Mapper-Tool statt auf die öffentlich zugängliche OSM-Seite, sodaß man sich, um die Änderungen schnell anzusehen doch wieder zuvor auf ITO anmelden muß. Die Daten werden übrigens unverschlüsselt übertragen, eine SSL-Verbindung kam nicht zustande. Also wieder ein zusätzliches Passwort merken…

Insgesamt keine wirklich bequeme Lösung für die Aufgabe "Zeige mir letzten die Änderungen in meinem (Heimat-)Bereich". Trotz Performance-Bedenken, sollte man überlegen so eine Möglichkeit zentral und ohne Anmeldung auf openstreemap.org zur Verfügung zu stellen.

Update 2010-09-14:

Es gibt mittlerweile noch eine weitere Möglichkeit, den owl_viewer von matt. Hat leider keine links zur OSM-History im OSM-Feed. Ansonsten sieht das auf den ersten Blick ganz brauchbar aus.

2 thoughts on “Änderungen in Openstreetmap als RSS-Feed tracken”

Comments are closed.