Alle Wege, Wegearten und Sehenswürdigkeiten dieser Anwendung stammen aus OpenStreetMap. Daraus rechnen wir eigene Werte — wie laut, wie grün und wie sehenswert es entlang eines Weges ist — und wir schneiden daraus die Kacheln der Karte. Beides sind abgeleitete Datenbanken im Sinne der Open Database License. Unsere Werte liegen in eigenen Datenbanken und sind mit OpenStreetMap allein über die Nummer des Weges verknüpft. Die Lizenz verlangt, dass wir die Methode offenlegen (Abschnitt 4.6b). Diese wird wie folgt beschrieben.
Jedes OSM-Objekt mit einem highway-Merkmal — auch die lauten Straßen selbst. Gerechnet wird in Metern. Dieselben Werte mitteln wir zusätzlich auf einem groben Gitter von 0,0028 Grad Zellweite, für Fragen, die keinen einzelnen Weg betreffen.
Aus den Flächen in OpenStreetMap bilden wir fünf Kategorien. Wald: landuse=forest, natural=wood. Offenland: farmland, meadow, orchard, vineyard, grass, allotments, grassland, heath, scrub, wetland, beach. Siedlung: residential, industrial, commercial, retail, garages, construction. Stadtgrün: park, golf_course, common, recreation_ground, dog_park, cemetery, village_green, grave_yard, dazu garden nur mit ausdrücklich öffentlichem Zugang. Schutzgebiet: nature_reserve, national_park. Der Wert je Kategorie ist der Anteil der Weglänge, der in solchen Flächen liegt.
Als Lärmquellen zählen Straßen, mit angenommener Reichweite: Autobahn 1000 m, autobahnähnliche Straße 800 m, Bundesstraße 500 m, Landesstraße 300 m; dazu Flugplätze 2000 m (nur Plätze ab 1 km² Fläche), Motorsport-Anlagen 1500 m, Schießanlagen 1500 m, Steinbrüche 500 m. Tunnel zählen nicht. Bahnstrecken zählen nicht — Züge fahren selten. Der Wert fällt quadratisch mit dem Abstand: 100 × (1 − Abstand / Reichweite)². Wald zwischen Quelle und Weg dämpft, jeder Waldmeter auf der Sichtlinie zählt wie drei Meter Abstand. Gerechnet wird das für die vier nächsten Quellen je Weg; es gilt die schärfste. Denselben Wert bestimmen wir zusätzlich je Teilstück eines Weges — daraus entsteht die Kennzahl „längster lauter Abschnitt am Stück“. Der Wasser-Wert entsteht genauso, aber linear: Flüsse und Kanäle 100 m, Seen 100 m ab 10 000 m² Fläche, Bäche 50 m.
Aus OpenStreetMap werden Punkte und Flächen anhand der unten aufgeführten Werte für tourism, historic, natural, waterway und amenity ausgewählt. Andere Werte dieser Merkmale reichen nicht für die Aufnahme aus.
Bei Flächen werden zuerst alle Teilflächen mit mindestens 1 km² ausgeschlossen. Gibt es danach mehrere Teilflächen mit derselben OSM-Kennung, bleibt die größte übrig; bei gleich großen Teilflächen ist keine weitere Reihenfolge festgelegt. Ihr Flächenschwerpunkt wird in ETRS89/UTM32N (EPSG:25832) berechnet und anschließend in geografische Koordinaten (EPSG:4326) umgewandelt. OSM-Punkte behalten ihren Ort. Das Merkmal waterway wird nur bei Punkten ausgewertet.
Jedes Objekt erhält genau eine Kategorie: Die erste passende Regel in der folgenden Reihenfolge gewinnt. Ohne passende Regel entfällt das Objekt. Die Kategorien mit amenity bilden die Gruppe Einkehr, alle anderen die Gruppe Sehenswertes. Einkehr-Objekte ohne name-Merkmal werden ausgeschlossen; bei Sehenswürdigkeiten ist ein Name nicht erforderlich. Ein OSM-Punkt und ein OSM-Flächenobjekt für denselben Ort bleiben getrennte Einträge.
Wasserfall 100 — waterway=waterfall.
Burg 100, einschließlich Schlössern — historic=castle.
Gipfel 90 — natural=peak.
Aussichtspunkt 80 — tourism=viewpoint.
Ruine 60 — historic=ruins.
Denkmal 60 — historic=monument.
Höhle 60 — natural=cave_entrance.
Tierpark 60 — tourism=zoo.
Attraktion 60 — tourism=attraction.
Museum 50 — tourism=museum.
Stadttor 50 — historic=city_gate.
Befestigung 50 — historic=fort.
Bodendenkmal 40 — historic=archaeological_site.
Quelle 40 — natural=spring.
Kunstwerk 30 — tourism=artwork.
Rastplatz 30 — tourism=picnic_site.
Gedenkstein 20 — historic=memorial.
Biergarten 70 — amenity=biergarten.
Restaurant 60 — amenity=restaurant.
Café 50 — amenity=cafe.
Gasthaus 40 — amenity=pub.
Imbiss 30 — amenity=fast_food.
Eisdiele 40 — amenity=ice_cream.
Wertebereich: Gastronomie 30 bis 70.
Zusätzliche Eingabe ist QRank (Wikidata-Seitenaufrufe, CC0), die Datei qrank.csv.gz von qrank.wmcloud.org mit den Spalten Entity und QRank. Verwendet wird der beim jeweiligen Bewertungslauf vorliegende Datenstand. Das OSM-Merkmal wikidata wird mit Entity exakt abgeglichen.
Für jeden ausgewählten POI mit passendem QRank-Eintrag wird L = ln(1 + QRank) berechnet; ln ist der natürliche Logarithmus. Aus diesen L-Werten werden das 5. Perzentil P05 und das 99. Perzentil P99 bestimmt, jeweils mit linearer Interpolation wie bei PostgreSQL percentile_cont. Jeder passende POI zählt einmal, auch wenn mehrere POIs dieselbe Wikidata-Kennung haben. POIs ohne passenden QRank-Eintrag gehen nicht in die Perzentile ein.
Der ungerundete Bekanntheitswert Q lautet:
Q = 100 × min(1, max(0, (L − P05) / (P99 − P05))).
Damit liegt Q zwischen 0 und 100. Ohne QRank-Datei, ohne passenden Eintrag oder bei identischen Perzentilgrenzen gilt Q = 0. Separat gespeichert wird Q auf eine ganze Zahl gerundet.
Die drei Teile werden mit 40 / 40 / 20 gewichtet: Kategorie-Basiswert K, Bekanntheitswert Q und Fotodichte F aus Wikimedia Commons. Die Fotodichte ist vorbereitet, aber zurzeit 0. Für die Gesamtbewertung wird der ungerundete Wert Q verwendet:
Gesamt = round(0,4 × K + 0,4 × Q + 0,2 × F).
Erst dieses Ergebnis wird auf eine ganze Zahl gerundet; round entspricht der PostgreSQL-Funktion. Fehlende QRank- oder Fotowerte führen zu keiner Umverteilung der Gewichte.
Wer eine Runde plant, kann sich Parkplätze im Umkreis anzeigen lassen. Dafür nehmen wir aus OpenStreetMap alle Objekte mit amenity=parking auf, als Punkt oder als Fläche; bei Flächen rechnen wir wie bei den Sehenswürdigkeiten mit dem Flächenschwerpunkt. Nicht aufgenommen werden Parkstreifen am Fahrbahnrand, also parking=street_side, lane, on_kerb und half_on_kerb — sie sind kein Ziel, das man ansteuert. Ein Objekt ohne parking-Merkmal bleibt drin.
Zu jedem Platz rechnen wir drei eigene Merkmale aus:
Wanderparkplatz — das Objekt trägt hiking=yes, oder sein Name enthält Wanderparkplatz beziehungsweise Wanderer-Parkplatz.
Am Wanderweg — höchstens 100 m Abstand zu einem Weg aus einer Relation mit route=hiking.
Im Grünen — höchstens 50 m Abstand zu einer Fläche der Kategorien Wald oder Stadtgrün, wie oben beschrieben.
Die Zugangsklasse bilden wir aus access wie bei den Kacheln (siehe „Die Karte“); gesperrte Plätze bieten wir nicht an. Kundenparkplätze und Plätze mit fee=yes bleiben ebenfalls außen vor, bis Sie sie in der Oberfläche zulassen. Ein Platz ohne fee-Merkmal gilt als unbekannt und bleibt immer in der Liste.
Aus diesen Merkmalen entsteht bei jeder Suche eine Punktzahl. Genau eine Klasse zählt, die höchste zutreffende: Wanderparkplatz 1000, am Wanderweg 800, sonst 500. Dazu zwei Boni: 250, wenn der Platz im Grünen liegt, und einer für die Nähe zum gewählten Punkt — 300 unter 100 m, 150 von 100 bis unter 300 m, darüber keiner. Das Ergebnis teilen wir durch einen Wert, der mit der Entfernung wächst: volle hundert Meter Abstand, plus eins, mal 0,1, plus eins. Am gewählten Punkt ist der Teiler also 1,1, bei 800 m 1,9, bei 2000 m 3,1, bei 4000 m 5,1. Bewertet werden die 1000 nächstgelegenen Parkplätze im Umkreis von 4000 m; angezeigt werden die sechs mit der höchsten Punktzahl. Diese Punktzahl steht in keiner Datenbank: sie hängt vom gewählten Punkt ab und entsteht bei jeder Anfrage neu.
Die Vektorkacheln der Karte entstehen aus demselben Auszug mit tilemaker nach dem Kachelschema Shortbread, erweitert um drei eigene Ebenen: Wanderwege (Wege in Relationen mit route=hiking oder route=foot, dazu einzelne Wege mit sac_scale oder trail_visibility), Gipfel (natural=peak, saddle, volcano) und Parkplätze (amenity=parking, als Punkt oder als Fläche). Die ersten beiden Ebenen wählen aus OpenStreetMap aus und fügen keinen eigenen Wert hinzu.
Bei den Parkplätzen kommt eine eigene Einteilung dazu. Aus dem Merkmal access bilden wir drei Zugangsklassen: offen (kein access-Merkmal oder yes, permissive, public, designated), Kundenparkplatz (customers, permit, destination sowie die Mischformen customers;private und private;customers) und gesperrt (jeder andere Wert, etwa private oder no). Die Karte zeigt die ersten beiden Klassen und lässt die dritte weg; die Klasse steht in der Kachel, nicht in OpenStreetMap.