Tous les chemins, types de chemins et curiosités de cette application proviennent d’OpenStreetMap. Nous en calculons nos propres valeurs — le bruit, la verdure et l’intérêt le long d’un chemin — et nous en découpons les tuiles de la carte. Les deux sont des bases de données dérivées au sens de l’Open Database License. Nos valeurs vivent dans des bases séparées et ne sont reliées à OpenStreetMap que par le numéro du chemin ou de l’eau. La licence exige que nous publiions la méthode (section 4.6b). Elle est décrite comme suit.
Chaque objet OSM portant un attribut highway — y compris les routes bruyantes elles-mêmes. Tout est calculé en mètres. Nous moyennons aussi les mêmes valeurs sur une grille grossière de 0,0028 degré de côté, pour les questions qui ne concernent aucun chemin en particulier.
À partir des surfaces d'OpenStreetMap, nous formons cinq catégories. Forêt : landuse=forest, natural=wood. Espace ouvert : farmland, meadow, orchard, vineyard, grass, allotments, grassland, heath, scrub, wetland, beach. Zone bâtie : residential, industrial, commercial, retail, garages, construction. Verdure urbaine : park, golf_course, common, recreation_ground, dog_park, cemetery, village_green, grave_yard, plus garden uniquement avec un accès public explicite. Aire protégée : nature_reserve, national_park. La valeur par catégorie est la part de la longueur du chemin située dans de telles surfaces.
Les routes comptent comme sources de bruit, avec une portée supposée : autoroute 1000 m, voie rapide 800 m, route nationale 500 m, route départementale 300 m ; en outre aérodromes 2000 m (seulement les sites d'au moins 1 km²), circuits de sports mécaniques 1500 m, stands de tir 1500 m, carrières 500 m. Les tunnels ne comptent pas. Les voies ferrées ne comptent pas — les trains passent rarement. La valeur décroît de façon quadratique avec la distance : 100 × (1 − distance / portée)². La forêt entre la source et le chemin atténue : chaque mètre de forêt sur la ligne de visée compte comme trois mètres de distance. Le calcul porte sur les quatre sources les plus proches de chaque chemin ; la plus sévère l'emporte. Nous déterminons aussi cette valeur par tronçon — d'où l'indicateur « plus longue section bruyante d'un seul tenant ».
La valeur « eau » se calcule comme celle du bruit, mais linéairement : 100 × (1 − distance / portée). Comptent comme eaux les rivières et canaux 100 m, y compris leurs surfaces d’eau (water=river, canal, lock) sans taille minimale ; les lacs 100 m si leur surface atteint au moins 50 000 m² (natural=water sans bassins d’épuration) ; les ruisseaux seulement avec un nom 50 m ; la côte 100 m (natural=coastline). Pour chaque chemin, nous enregistrons aussi la plus petite distance à l’une de ces eaux. Les fossés et drains (ditch, drain) ne comptent pas, ni les tronçons busés ou en tunnel.
Pour les randonnées au bord de l’eau, nous enregistrons aussi la ligne de chaque eau le long de laquelle on marche : la rive extérieure d’un lac, la ligne médiane des rivières, canaux et ruisseaux, le trait de côte au bord de la mer. Les lignes OSM de même type et de même nom qui se touchent forment une seule eau ; les tronçons busés les relient mais ne font pas partie de la ligne. La ligne est enregistrée dans notre base sous forme de points tous les 50 m, sans nom ni autre attribut. Une eau n’est reliée à OpenStreetMap que par le numéro d’un de ses objets. Pour chaque eau, nous enregistrons son type, la longueur de la ligne et, pour les lacs, la surface.
Les nœuds et surfaces d’OpenStreetMap sont sélectionnés selon les valeurs de tourism, historic, natural, waterway et amenity indiquées ci-dessous. Les autres valeurs de ces attributs ne suffisent pas à inclure un objet.
Pour les surfaces, toutes les composantes d’au moins 1 km² sont d’abord exclues. Si plusieurs composantes portant le même identifiant OSM subsistent, la plus grande est conservée ; aucun ordre supplémentaire n’est défini pour des composantes de même superficie. Son centroïde est calculé en ETRS89/UTM32N (EPSG:25832), puis converti en coordonnées géographiques (EPSG:4326). Les nœuds OSM conservent leur position. L’attribut waterway n’est évalué que pour les nœuds.
Chaque objet reçoit exactement une catégorie : la première règle applicable dans l’ordre ci-dessous l’emporte. Sans règle applicable, l’objet est exclu. Les catégories sélectionnées par amenity forment le groupe des haltes de restauration, toutes les autres celui des curiosités. Les établissements sans attribut name sont exclus ; un nom n’est pas obligatoire pour les curiosités. Un nœud OSM et un objet surfacique OSM représentant le même lieu restent des entrées distinctes.
Cascade 100 — waterway=waterfall.
Château 100, y compris les palais — historic=castle.
Sommet 90 — natural=peak.
Point de vue 80 — tourism=viewpoint.
Ruine 60 — historic=ruins.
Monument 60 — historic=monument.
Grotte 60 — natural=cave_entrance.
Parc zoologique 60 — tourism=zoo.
Attraction 60 — tourism=attraction.
Musée 50 — tourism=museum.
Porte de ville 50 — historic=city_gate.
Fortification 50 — historic=fort.
Site archéologique 40 — historic=archaeological_site.
Source 40 — natural=spring.
Œuvre d’art 30 — tourism=artwork.
Aire de pique-nique 30 — tourism=picnic_site.
Stèle 20 — historic=memorial.
Jardin à bière 70 — amenity=biergarten.
Restaurant 60 — amenity=restaurant.
Café 50 — amenity=cafe.
Pub 40 — amenity=pub.
Restauration rapide 30 — amenity=fast_food.
Glacier 40 — amenity=ice_cream.
La plage des scores de restauration est donc de 30 à 70.
L’entrée supplémentaire est QRank (consultations Wikidata, CC0) : le fichier qrank.csv.gz de qrank.wmcloud.org, avec les colonnes Entity et QRank. Chaque évaluation utilise la version des données disponible lors de son exécution. L’attribut OSM wikidata est comparé exactement à Entity.
Pour chaque POI sélectionné ayant une entrée QRank correspondante, on calcule L = ln(1 + QRank) ; ln est le logarithme naturel. Le 5e percentile P05 et le 99e percentile P99 sont calculés à partir de ces valeurs L, avec interpolation linéaire comme dans PostgreSQL percentile_cont. Chaque POI correspondant compte une fois, même si plusieurs POI partagent le même identifiant Wikidata. Les POI sans entrée QRank correspondante sont exclus du calcul des percentiles.
Le score de notoriété non arrondi Q est :
Q = 100 × min(1, max(0, (L − P05) / (P99 − P05))).
Q est donc compris entre 0 et 100. Si le fichier QRank ou une entrée correspondante manque, ou si les bornes des percentiles sont identiques, Q = 0. Q est également stocké séparément, arrondi à un entier.
Les trois parties sont pondérées 40 / 40 / 20 : score de base de la catégorie K, score de notoriété Q et densité de photos F de Wikimedia Commons. La densité de photos est préparée, mais actuellement 0. Le score global utilise la valeur non arrondie de Q :
Total = round(0,4 × K + 0,4 × Q + 0,2 × F).
Seul ce résultat est arrondi à un entier ; round désigne la fonction PostgreSQL. L’absence de valeurs QRank ou de photos n’entraîne aucune redistribution des pondérations.
Si vous cherchez une randonnée au départ d’un parking, vous obtenez les meilleurs parkings autour du point choisi. Nous reprenons pour cela tous les objets portant amenity=parking dans OpenStreetMap, en point ou en surface ; pour les surfaces nous utilisons le centre de gravité, comme pour les curiosités, mais sans limite de superficie. Les bandes de stationnement le long de la chaussée sont écartées, c’est-à-dire parking=street_side, lane, on_kerb et half_on_kerb — on ne s’y rend pas exprès. Un objet sans attribut parking est conservé.
À partir de l’attribut access, nous formons trois classes d’accès : public (yes, public), toléré (permissive, designated) et inconnu (pas d’attribut access, unknown, fixme). Les parkings portant une autre valeur, par exemple private, customers ou no, ne sont pas repris du tout : qui s’y gare pour partir en randonnée stationne sans autorisation. Les parkings portant fee=yes restent de côté jusqu’à ce que vous les autorisiez dans l’interface. Un parking sans attribut fee est considéré comme inconnu et reste toujours dans la liste.
Pour chaque parking nous calculons trois attributs qui nous sont propres :
Parking de randonnée — l’objet porte hiking=yes, ou son nom ou sa note (note) contient la suite de lettres « wander » (randonnée en allemand) ou « hike », sans tenir compte des majuscules.
Au bord d’un sentier balisé — à 100 m au plus d’un chemin appartenant à une relation portant route=hiking.
Dans la verdure — à 50 m au plus d’une surface des catégories forêt ou verdure urbaine décrites plus haut.
De la classe d’accès et des attributs naît un score à chaque recherche. Les points de base dépendent de l’accès : public 800, toléré 500, inconnu 200. Un parking de randonnée compte toujours comme public, même sans attribut access, parce qu’il est aménagé pour tous. S’y ajoutent des bonus : parking de randonnée 250, ou au bord d’un sentier balisé 100 si ce n’est pas un parking de randonnée ; dans la verdure 250 ; et un pour la proximité du point choisi — 300 en dessous de 100 m, 150 de 100 à moins de 300 m, aucun au-delà. Le résultat est divisé par une valeur qui croît avec la distance : les centaines de mètres entières, plus un, fois 0,1, plus un. Au point choisi le diviseur vaut donc 1,1, à 800 m 1,9, à 2000 m 3,1, à 4000 m 5,1. Les 1000 parkings les plus proches dans un rayon de 4000 m sont évalués ; les six au score le plus élevé sont affichés. Ce score ne figure dans aucune base de données : il dépend du point choisi et se recalcule à chaque requête.
Les tuiles vectorielles de la carte sont produites à partir du même extrait avec tilemaker selon le schéma de tuiles Shortbread, complété par trois couches de notre cru : sentiers de randonnée (chemins des relations route=hiking ou route=foot, plus les chemins isolés portant sac_scale ou trail_visibility), sommets (natural=peak, saddle, volcano) et parkings (amenity=parking, en point ou en surface). Les deux premières couches sélectionnent dans OpenStreetMap et n’ajoutent aucune valeur propre.
Pour les parkings, nous ajoutons un classement propre. À partir de l’attribut access, nous formons trois classes d’accès : ouvert (aucun attribut access, ou yes, permissive, public, designated), parking client (customers, permit, destination ainsi que les valeurs mixtes customers;private et private;customers) et fermé (toute autre valeur, par exemple private ou no). La carte montre les deux premières classes et laisse la troisième de côté ; la classe se trouve dans la tuile, pas dans OpenStreetMap. Ce classement ne vaut que pour la carte ; la recherche d’un parking de départ utilise les classes d’accès de « Les parkings comme point de départ ».