The state of campsite tagging in OSM

Back in 2019 when I started Open Camping Map a relevant part of my motivation to create this site was that this might help motivating mappers to improve the then very poor tagging state. Now about five years later I was wondering if this actually worked. So I extracted the development of campsite tagging of the last 10 years from Openstreetmap-data using Osmium and osm2pgsql.

So here are the results.

Looking at sites with insufficient tagging (mostly only a name tagged and nothing else) we have now only 47% compared to 70% 10 years ago (absolute number of campsites is roughly three times higher). So unfortunately still a lot of work to do with 81880 sites insufficiently tagged. If you wonder what I consider completely insufficient, well these are sites which are solely tagged tourism=camp_site without any further information at all. BTW, all completely insufficient sites are of course also insufficient sites.

Unfortunately we do not see an impact of the advent of Open Camping Map in January 2019. So did my map really not help improve tagging at all?

Well there is a bit of an impact, but frankly I would have hoped it would be bigger. The impact can be recognized on my second chart which shows the tags which I consider the most important ones.

News from Open Camping Map

Looking at https://opencampingmap.org one might get the impression that nothing has changed.

This is true as far as the general UI is concerned, however quite a lot has been changed behind the scenes.

BTW, I still would like to have prettier site icons. Probably somebody with better graphic skills than mine can help here!

So here is what has been changed behind the scenes:

In the past I was somewhat frustrated that search engines like Google did not find the link to a particular campsite on my map even if there was no better information somewhere else on the web.

Often search engines come up with mostly useless stuff like https://campingspots.info which is basically just a rip of locations from OpenStreetMap data tagged tourism=camp_site providing no further information.

That they did not find the more useful information on Open Camping Map has mostly technical reasons and is hopefully fixed now.

In the past a campsite description like https://opencampingmap.org/de/way/164951603 has been generated by pure Javascript in the users web browser so no way for a search engine to index this description as these usually can not select sites from interactive maps.

So what I did now is generating a static version of the campsite descriptions on the server side using the same code executed only inside the users web browser before. The result can be seen if Javascript is turned of in the browser. So finally this is something a search engine should now be able to index.

My backend is now running osm2pgsql (flex) instead of imposm and a clever setup allows for faster database updates. I also generate sitemaps for crawlers like Googlebot which should then be able to find and index all the campsites shown on the map.

More updates on Open Camping Map

While looking at current campsite tagging I came across a very common mistake which is nested campsite objects as shown on the map above.

The problem with such a tagging is that it is unclear for a data consumer like my map what this is supposed to mean if a node tagged tourism = camp_site resides inside a polygon also tagged tourism = camp_site.

For this reason this is now shown as a bug in Open Camping Map. Please do not nest such objects but use a polygon only and no additional node tagged tourism = camp_site. Unfortunately there are currently about 3000 campsites with such an inconsistent tagging!

However I did not only add more stuff to the bug view. I also added rendering for a few more amenities in Zoomlevel 19. These are sanitary_dump_station, water_point and drinking_water (the same icon is currently used for both).

Happy campsite mapping!

Die Dos and Don’ts der Fahrradbeleuchtung

In diesen Tagen kurz vor dem Höhepunkt der dunklen Jahreszeit hatte ich auf Twitter mal wieder eine Diskussion mit jemandem der blinkender Beleuchtung von Radfahrenden das Wort redete.

Gut dachte ich mir, dann schreibe ich doch mal auf was man als Radfahrender bei der Beleuchtung so alles falsch machen kann, denn das ist erstaunlich viel. Erstaunlich häufig findet man auf Twitter auch Menschen die nicht StVO konformer bzw. zumindest grenzwertiger Beleuchtung das Wort reden.

Die Dos

Bei Dunkelheit oder an dunklen Tagen sollte man sein Fahrrad nur mit Beleuchtung nutzen

Zusätzlich sollte man dezent reflektierende Kleidung tragen, die insbesondere dann sichtbarer macht, wenn man angestrahlt wird. Ein Beispiel sind Leuchtstreifen an der Jacke oder reflektierendes Garn.

Optional ist auch ein zusätzliches Fernlicht mit dem man entgegenkommende Autofahrer darauf hinweisen kann dass sie ihres noch eingeschaltet haben praktisch. Insbesondere, wenn man häufig auf Landstraßen unterwegs ist.

Die Don’ts

Selbstverständlich sollte man nie mit einem unbeleuchteten Rad herumfahren!

Diese Aussage ist wohl so ziemlich als Einzige relativ unumstritten. Beim Versuch sich und ihr Rad zu beleuchten schießen dann aber viele weit über das Ziel hinaus.

Völlig unverständlich finde ich zu hoch eingestellte LED-Scheinwerfer, deren Lichtstrahl nie auf den Boden trifft. Gerade auf dunklen Wegen blenden diese entgegenkommende Radfahrer häufig stark.

Deshalb den normalen Frontscheinwerfer immer so einstellen, dass er nach einigen Metern auf den Boden trifft!

Damit sieht man übrigens auch selbst mehr als mit einem geradeaus eingestellten Licht. Für das optional montierte Fernlicht gilt das natürlich nicht. In diesem Fall denke ich, dass das Problem meist nur aus Unkenntnis existiert.

Bei denjenigen, die jedoch zusätzlich ihren Körper, Rucksack oder Helm beleuchten muss man hingegen davon ausgehen das dies bewusst erfolgt und somit als unerwünschte Nebenwirkung andere Radfahrende belästigt oder gar gefährdet.

Die StVO verbietet aus guten Grund dauerhaft blinkende Beleuchtung von Fahrzeugen. Das gilt natürlich auch für Fahrräder. Diese ist Einsatzfahrzeugen vorbehalten unter anderem deshalb weil diese den Blick der Menschen besonders auf sich zieht.

Die Beleuchtung der Menschen selbst an Kleidung, Stirn, Helm oder Rucksack unterliegt hingegen nicht der StVO, hat aber natürlich die selben Auswirkungen auf andere Verkehrsteilnehmer wie die fest am Rad montierte.

Ein Workaround der deshalb häufig angewandt wird um sich als Radfahrender trotzdem mit (eigentlich von der StVO verbotener) blinkender Beleuchtung auszustatten.

Diese belästigt jedoch andere oder gefährdet diese im Extremfall sogar.

Deshalb halte ich es für ein Gebot der Fairness keine Blinklichter zu verwenden!

Auch wenn es individuell sicher stark unterschiedlich ist wie sehr man in seiner Wahrnehmung der Umgebung von Vorausfahrenden mit solcher Beleuchtung beeinträchtigt wird, der vermeintliche Zugewinn an eigener Sicherheit geht immer mit einem Verlust der Sicherheit anderer einher.

Auch Helm oder Stirnlampen haben wie ich finde im Radverkehr nichts verloren, denn sie blenden vor allem auf dunklen Wegen immer den Begegnungsverkehr und werden nahezu nie in ihrer harmlosen Form als zuschaltbares Fernlicht eingesetzt sondern brennen dauerhaft.

Langer Rede kurzer Sinn, ich stehe zusätzlicher Beleuchtung, die nicht am Rad selbst montiert ist sehr kritisch gegenüber. Im Einzelfall kann ein zusätzliches dauerhaft leuchtendes Rücklicht an Rucksack Helm oder Jacke die eigene Sichtbarkeit erhöhen ohne andere zu beeinträchtigen. Auf mehr als das sollte man aus meiner Sicht jedoch aus Fairness den Anderen gegenüber immer verzichten.

Ich halte übrigens auch den Einsatz von Warnwesten im normalen Radverkehr aus ganz ähnlichen Gründen für wenig zielführend auch wenn dadurch Dritte in der Regel nicht unmittelbar belästigt werden. Sollten Radwege wirklich das Tragen von Warnwesten erfordern, dann gilt es diese schnellstmöglich in einen brauchbaren Zustand zu versetzen.

Transparenzhinweis: Ich selbst verwende ein Rad mit StVO konformer Beleuchtung die von einem Nabendynamo gespeist wird und nahezu immer leuchtet. An meiner Kleidung habe ich nur wenige dezente reflektierende Streifen, die mich sichtbarer machen wenn ich angestrahlt werde. Ein zuschaltbares Fernlicht besitze ich (noch) nicht.

Kategorie:

Announcing support for site-relations in OpenCampingMap

In most cases it is sufficient to map a camp-site as a closed way or multipolygon.

However, there are exeptions and this is what this feature is for.

On backcountry campsites there is often no well defined boundary. Thus it may be appropriate to map them as a node only.

This is where an additional site-relation comes in handy.

Such a facility may have two clearly related nodes tagged amenity=toilets and leisure=firepit which might even have an access=customers tag in addition to the tourism=camp_site node itself.

To explicitely map the fact that these 3 nodes are part of a single campsite a
relation tagged tourism=camp_site and type=site should be added containing all
three nodes.

Here is an example of such an object:
https://opencampingmap.org/#12/49.0690/7.8621/1/1/bef/node/3824691120

And this is how it looks like on osm.org:

Another example would be a case where amenities like toilets or showers are used by multiple facilities like a camp-site and a sport-center and are thus not located inside the closed way or multipolygon of the camp-site itself.

In this case again a relation tagged tourism=camp_site and type=site should be added which does contain the actual camp-site object as well as the related amenities.

Sometimes even the information desk is located outside the campsite polygon. No problem for the site-relation approach.

This said. Please do not use a site relation if all facilities are located inside the closed way or multipolygon tagged tourism=camp_site. In fact this is shown as a bug in https://opencampingmap.org/.

Another bug would be to add more than one object tagged tourism=camp_site to such a relation. Likely the correct mapping in this case would be a multipolygon containing two areas which might then optionally be part of a site-relation.

Happy campsite tagging!

My most wanted new features for osm2pgsql

In light of the upcoming virtual meetup on osm2pgsql I decided to write a short blogpost about the top five features I want to see in osm2pgsql.

  1. To be able to move my map localisation stuff from PostgreSQL stored procedures to the data import stage I will need the get_bbox() feature of the new flex output driver to also work for relations. The reason is, that I do geolocation aware transcription which would not be possible on relations without such a function. This will then hopefully recover my development of the German map style.
  2. The flex backend has a new feature which will allow to pass information from a relation to its members. Currently this works for ways only but would be very nice to have for nodes and relations as well. What I think about where such a feature will be handy is for rendering of site relations.
  3. There are many ways to import OSM data into PostgreSQL, but if the target database needs to be kept up to date with osm there are only two options left. These options are imposm and osm2pgsql.Unfortunately there are features which are not available on both applications. Currently imposm will need rougly half the storage size osm2pgsql uses for updating. The main reason for this is the usage of LevelDB which might also be an option for osm2pgsql.
  4. Another feature which imposm provides is support for generalized tables for rendering low zoom objects which would be nice to have in osm2pgsql as well.
  5. Finally I would like to see support for geometries to be stored in TWKB format which will help to further reduce the storage size of production databases.

Why development of German OSM Carto style is currently stuck.

I am the Maintainer of the German Style OSM Carto fork and operator of http://tile.openstreetmap.de for a couple of years now. Usually I try to follow upstream releases as fast as possible to make sure that the fork keeps as close to upstream as possible.

However, back in March OSM Carto v5.0.0 has been released which requires a reimport of the osm2pgsql database. As doing this is a lot of work for my small two-server setup maintained by a single person I decided to combine this reimport with a new Approach for map localization I have been thinking about for some time. The code is designed for the new osm2pgsql Flex Backend introduced by Jochen Topf in February. Unfortunately I did not look closely enough at the Flex Backends documentation. I missed the fact, that the get_bbox()function is currently not available on relations which would force me to disable localization for relations. I decided against doing this for now in the hope that Jochen will add this missing feature to his code soon. If this situation will persist till the end of the year I will likely have to think about another solution, but for now we will unfortunately just have to wait.

Der Verschwörungsmythos vom sogenannten Großen Austausch

Verschwörungsmythen, wie man Verschwörungstheorien besser nennen sollte, weil es sich dabei selbstverständlich nicht um falsifizierbare Theorien handelt sondern um Dogmen, deren Wahrheit für die Anhänger außer Frage steht, haben in Coronazeiten Hochkonjunktur.

Der Grund scheint zu sein, dass manche Menschen wirkliche Probleme damit haben zu akzeptieren, dass es viele Dinge gibt, die zufällig passieren und die gerade nicht irgendwelchen menschlichen Plänen folgen.

Nichts mit dem Thema Corona hat indes der Verschwörungsmythos vom „Großen Austauch“ zu tun, der im Umfeld der Neuen Rechten beliebt ist. Mit diesem bin ich diese Tage in Form eines anonymen, persönlich an mich adressierten Briefes in Berührung gekommen.

Dem Absender war es immerhin 80¢ und einen Briefumschlag Wert mir dieses Pamphlet ohne Absender persönlich zuzusenden. Mangels Absenderadresse daher also nun meine Reaktion in öffentlicher Form.

Ich Frage mich ernsthaft was der anonyme Absender als Reaktion darauf meinerseits erwartet. Sollte ich jetzt, weil mir meine selektive Wahrnehmung vielleicht sagt, dass ich Zitat: „in der Fußgängerzone“ zu viele Menschen mit Migrationshintergrund sehe, eine antipluralistische und menschenfeindliche Partei wie die AfD wählen?

Wer sich mit Geschichte ein wenig auskennt, der wird wissen, dass gerade Vermischung neue menschliche Kulturen hervor- und bestehende vorangebracht haben. Dass von Austausch keine Rede sein kann werde ich hier nicht weiter begründen. Dazu finden sich für den geneigten Leser bereits viele seriöse Quellen im Netz.

Als nur ein gutes Beispiel von vielen sei der Blog des Beauftragten gegen Antisemitismus des Landes Baden-Württemberg genannt. Diesem habe ich im übrigen ganz im Sinne des Verfassers eine Kopie des Briefes weitergeleitet.

Schade, dass sich der Absender nicht zu erkennen gegeben hat. Ich wüsste nämlich allzu Gerne was Menschen dazu treibt solchen offensichtlichen Unsinn wie diesen Verschwörungsmythos auch noch für bare Münze zu nehmen. Wie alles bei den sogenannten Neuen Rechten ist natürlich auch dieser alles andere als neu.

Wie man die Qualität von Fernradwegen mit Hilfe von OSM und Brouter berechnet

Vor vielen Jahren habe ich mich in diesem Blog schon einmal über die Absurdität von ausgeschilderten Fernradwegen ausgelassen. Was sich seither geändert hat ist die Tatsache, dass es das Openstreetmap basierte Routingprogramm, dass ich mir damals gewünscht habe inzwischen gibt. Die Rede ist von Brouter. Eine Software von Arndt Brensched, die es sowohl als App für Android als auch als Web-Planungstool gibt.

Nun lese ich heute einen Tweet von Hanno Böck, der sich ebenfalls über solche Fernradwege beschwert.

Nachdem ich wie üblich bei solchen Fragen das Brouter Tool empfehle wird mir klar, dass Brouter vermutlich genau das was Hanno gern hätte leisten kann. Was man gerne hätte wäre ja so eine Art Qualitätsfaktor für Radrouten.

Nach einer kurzen Kommunikation mit Arndt wird klar, dass das ganz einfach ist. Man konfiguriert das Routingprofil für Trekkingrad so um, dass man die Behandlung der Fernradwege umkehrt.

Aus folgender Anweisung:

else if ( is_ldcr ) then 1

macht man einfach diese hier:

else if ( not is_ldcr ) then 10000

Nun deaktiviert man noch die Höhenkosten und fertig ist der Engine zur Berechnung der Qualität von Fernradwegen.

assign consider_elevation = false

Je kleiner der durchschnittliche Kostenfaktor im Brouter-Web um so besser ausgebaut ist die Radroute. Wer die beschriebenen Änderungen nicht selbst machen möchte kann sich unter https://home.geggus.net/score.brf das geänderte Profil runterladen.

Die deutsche Corona Warn App und die Datensparsamkeit

Leider gibt es in der Smartphonewelt nicht wirklich die Option ähnlich wie beim Desktop PC ein datensparsames Betriebssystem wie Debian GNU/Linux zu verwenden.

Die zweitbeste Lösung besteht darin ein Android auf Basis des Android Open Source Projekts (AOSP) wie LinageOS zu verwenden.

Leider ist man auch in diesem Fall in der Praxis trotzdem oft dazu gezwungen das proprietäre Paket GSF von Google zu installieren, weil viele Programme dieses benötigen.

Ohne Anmeldung im Play-Store bei Google ist man aber trotzdem zumindest pseudonym unterwegs und kann die meiste Software über freie Alternativen wie FDroid und Aurora-Store installieren.

Nicht so bei der Corona Warn App. Diese beschwerte sich erst mal über fehlende Aktualität des Play-Stores obwohl dieser installiert (aber nicht konfiguriert und deaktiviert) ist.

Ich war also erst einmal nicht in der Lage die App auf einem solchen datensparsamen System zu verwenden. Das ist Schade, weil bei der App selbst vieles richtig gemacht wurde.

Richtig herausgefunden wo genau das Problem lag habe ich leider nicht. Nachdem der Play-Store in den Settings aktiviert aber immer noch nicht konfiguriert wurde tut die Software anscheinend erst einmal.