- blog

Aller au contenu | Aller au menu | Aller à la recherche

lundi 1 mai 2017

2017 style improvements

I make no mystery of it: I'm a cross-country skier. I've run alpine skis only twice in my life, and definitely prefer the wild and quiet areas where you're alone sweating your way in the middle of nowhere. This had had consequences on, and I did not spent enough time on downhill runs rendering style. It was crowded and definitely not clear enough, but this is about to change. Now that the ski season is almost done, I'm rolling out a major style change.

Alpine runs

Downhill ski runs are now cleaner (I hope). Especially transition is smoother between pistes mapped as areas and those mapped as ways. At high zoom, pistes let a clear view on the contour lines and fade in better on the topo-style base map.


The less common pistes type (skitours, snowshoes, sled, and sleigh) are now rendered with icons. Curling, ice-stock and hockey icons have been added.

Pistes overlaps

Sometimes pistes can be used for several activities, now Opensnowmap is able to render piste tagged like piste:type = downhill;sled or other combination.

I hope this improved map will please you, and you are welcome to make any remarks or request improvement here.

External users

As long with the new style, the tiles URLs changes. As your website or app uses a proper referer, I am able to contact you with the new URL, of course. The URL is http(s)://{z}/{x}/{y}.png.

For the offline users, please note that the monthly .mbt tile set from 28.04.2017 is the last one available with the old style.

jeudi 23 février 2017

Improved ski ressorts rendering renders ski ressorts at zoom 10,11 & 12. For this, it takes either site=piste relations or landuse=winter_sports polygons, and checks what type of pistes they contain (downhill, nordic, sled, etc...) in order to display small icons next to the ressort name.

Until now, these icons where pre-calculated images of all possible combinations.They were not so nice, and did not scale well with the big tiles used on the mobile site. So I built a very handy font file, called Ski.ttf, that looks like this:


This allows me to use Mapnik list-placement on TextSymbolizers to position the needed icons nicely.

It will takes some time for the tiles to re-render, so here what it looks like:

before / after comparison



dimanche 8 janvier 2017

http (s) ://

OpenSnowMap goes secure, on request.


So, if you're afraid someone might want to hack your favorite run, or simply to enable location in chrome, change your bookmarks.

lundi 19 septembre 2016

The Snow Map base layer

When Mapquest layer disappeared, this was a problem for OpenSnowMap: its cold colors and less detailed style were great to overlay ski pistes onto. But the end of this freely available map forced me to build a simple style with plenty of room for ski pistes: the OpenSnowMap Base Snow Map.

A winter topo map

I used OSM-Bright to start building this style. Using colder colours more suited to a winter map, of course I also added relief. In particular, relief hillshading led me to desaturate highways to avoid they pops out the shadowed side of the hills . Ski pistes are not rendered on this layer, the OpenSnowMap remains an overlay. In fact, they *are* rendered on the Base Snow Map with 12 pixels wide transparent labels that forbids other labels to take place where ski pistes from the OpenSnowMap overlay will land.

I want to see it!

This style is live on The mobile part of the website is shown with 'retina tiles' by default, but you can choose this high-dpi option or not from the menu. For these mobile-friendly tiles, I choose to render 384px tiles and display them with a 1.5x scale factor. That please my eyes on my own phone and the server seems to be OK with them, so please tell me they also looks good on your phone or tablet.

Of course, Openstreetmap-carto is still available, although without high-res tiles but a simple scaling for the mobile version. Here also let me know what the default should be: I find it more usable with the scaling on my device, although a bit pixelized.

That's great, but ...

Unfortunately, the use of the layer outside OpenSnowMap is discouraged by referer magic and so on. Also, tiles containing ski pistes are pre-rendered, but not the others. So while the Imposm-powered DB is up-to-date and a few minutes behind Openstreetmap, don't expect super-performances in tile refresh. Yes, 10 minutes so you can check your mapping mistakes and correct them before I take them into account, isn't it clever ? This new base map won't change much the OpenSnowMap overlay tiles that will remains pretty much the same and updated daily.

mardi 23 août 2016

Opensnowmap Tile Usage Policy

Opensnowmap offers overlay tile layers for ski pistes and winter sports. Two sets of tiles are available: one with only the pistes, and another one with relief background (shaded relief and contours lines).

It seems that the layer with relief information is of great interest, even in summer.

Sadly, opensnowmap server won't be able to cope well with the demand on next winter, so in order to keep the server healthy for skiers, the tile usage condition from outside Opensnowmap will change as follow :

  • From the 1st of october 2016, a valid referer will be mandatory to fetch tiles from
  • From the 1st of november 2016, access to tiles with relief from outside is not granted anymore and can stop at any time (likely around the 1st).


lundi 6 juin 2016

More than 100'000 km of ski pistes and lifts on the map!

When you enter, there is a small counter that shows you the length of ski pistes and lifts there is in OSM each days. On june 6th, the total length of alpine and crosscountry ski pistes, skitour, snowshoeing, lifts and sleds pistes crossed the 100'000km line.

Not bad, isn't it ? This number seems important, so I searched and found a few flaws in my count, you can find the queries here. I notably found a few thousand of km of crosscountry pistes mapped as relations, without pistes tags on ways that were missing on previous calculations.

Anyway, now, we can claim that on 2016-06-06T00:03:02Z, there was 108'084 km of winter sports pistes in Openstreetmap ! Two and a half tour of the planet !

Before OSM, does anybody figured out that there is so many pistes dedicated to winter sports on the globe ? And how much is still to be mapped in OSM ? Why does some people map alpine ski pistes as area without a median line that would allow routing?

jeudi 17 mars 2016

More ski map for your mobile

Elevation profiles and ski resorts statistics are now available for the mobile version of


I wanted to avoid displaying vector data on the map, this can cause performance issue on mobile devices. The elevation profile is now calculated with Matplotlib, along with a image view of the piste to help vizualize the information on a small screen.


Pistes statistics are calculated from OSM data, on resorts enclosed by a landuse=winter_sports polygon or in a relation of type=site, site=piste.


mardi 1 mars 2016

New version of Opensnowmap

A new version? Wait ... nothing has changed !

Well hopefully it's the case. website has been rewrote with a cleaner code separating HTML, CSS and Javascript. Also, a few good practises in website design have been implemented. For instance there is no blocking calls to the server any more.

There is some changes for the user, though:

  • Language change can be done on the fly, no need to reload the page.
  • Mobile version has been redesigned a little, allowing you to keep the map in view while looking for pistes with the 'Search' input.
  • A 'Donate' button landed on the menu, it's not only here to look nice.

As the code is now cleaner, don't hesitate to propose some changes yourself on the website, it's here on Github . Be kind enough to report bugs, I made some tests on a few browsers, but there may things I missed.


dimanche 25 octobre 2015

Relief updated

Hillshade, contour lines and elevation profile calculation have been updated to a complete 1 arc-second resolution on


samedi 11 juillet 2015

New hillshading on

The relief (hillshading) layer on have been updated. On the major part of the world, resolution jumps to 30m instead of 90m beforehand, thanks to the ongoing release of 1 arc-second SRTM data by NASA.

To mak a long story short, the relief is more precise by a x1.5 zoom factor.

For more details, here are the data used on the serveur to generate the hillshading.
Screenshot from USGS explorer on Google-map background

30m SRTM data are used where available. Up north, data comes from the EU-DEM for scandinavia, ASTER for Alaska, Canada, Greenland and Russia. In an area extending from Greece to Iran, I had to kept the 90m SRTM data from CGIAR, I hoipe to be able to update this area soon.

To assemble those datasets, I use a script based on python-gdal to merge the data by small 1x1° tiles, filtering SRTM data by a 3x3 average filter and ASTER by a 10x10 filter to reduce noise. Gdal utilities then re-assemble everything in a big Tiff. For rendering, I took the opportunity to pré-calculate smaller Tiff at lower zooms to reduce the load on the tile server. The map should show up more fluidly.

Contour lines will be updated from the same datasets, if I can optimize them enough to fit my disks.

mercredi 8 juillet 2015

Nouveau relief pour

La couche d'ombrage (hillshade) d' vient de subir un sérieux lifting. En effet, sur la plus grande partie du monde, la résolution passe à 30m au lieu de 90m grâce à la mise à disposition progressive des données SRTM à 1 seconde d'arc par la NASA (au lieu de 3 secondes précédemment). 30m_-_90m.png
Pour faire simple, on gagne l'équivalent de 1.5 niveau de zoom pour les informations de relief: c'est plus précis.

Dans le détail, voici les données utilisées par le serveur pour le calcul de la couche de relief.
Screenshot from USGS explorer on Google-map background

Les données SRTM 30m sont utilisées là ou elles sont disponibles. Plus au nord, il s'agit des données provenant de l'EU-DEM pour la scandinavie, puis d'ASTER pour l'Alaska, le Canada, le Groenland et la Russie. Enfin, dans une zone s'étirant de la Grèce à l'Iran, les données SRTM 90m sont utilisées. J'espère pouvoir profiter là aussi de données à 30m bientôt.

Afin de réaliser l'assemblage de ces jeux de données différents, je suis passé par python-gdal et un script maison pour économiser l'espace disque lors du calcul du modéle numérique de terrain global. Dans ce modéle, les données SRTM 30m sont filtrées par un filtre médian 3x3 pixels et les données ASTER par un filtre 10x10 pixels afin de limiter un peu les artefacts (bruit). Les blocs de 1x1° calculés par le script sont traités par les utilitaires gdal pour calculer l'ombrage et ré-assembler le tout. Du point de vue du rendu, j'en ai profité pour pré-calculer les images de relief aux zooms intermédiaires afin d'alléger la tâche du serveur de tuiles, l'affichage de la carte doit désormais être plus fluide.

Les courbes de niveaux seront aussi mises à jour à partir des mêmes données, sous réserve de parvenir à les optimiser suffisamment ou de disposer de l'espace disque nécessaire.

dimanche 10 mai 2015

Ski piste mapping 2014-0215

The season is over, time for stats!

Mind you? With more than 35'000km of crosscountry pistes and 28'000km of alpine descent, there is some ski pistes left to maps in OSM.




Mapping of ski pistes continues at a steady state. However the winter step is more obvious among crosscountry skier. Maybe they still map with a GPS in their pocket? Kudos to you !

  • Nordic: 35165 km
  • Alpine: 28662 km
  • Lifts: 17680 km
  • Skitour: 2627 km
  • Sled: 1013 km
  • Snowshoeing: 801 km


lundi 12 janvier 2015

Pour les adeptes de la poudreuse !

Peut-être que dans votre station préférée, certaines pistes ne sont pas dammées. Elle font pourtant partie des pistes du domaine et sont sécurisées.

Dans OpenStreetMap, ce sont des chemins taggués piste:type=dowhnill + piste:grooming=backcountry.

Désormais, pour, ce sont des lignes interrompues colorées en fonction de leur difficulté. Ce que vous voyez sur la gauche (les points oranges), c'est autre chose, ce sont des piste:type=skitour.


Une très bonne suggestion de pkm. Merci Peter !

Rendering change: for powder addicts !

Maybe in your favorite resorts, some ski pistes are maintained but not groomed. However, they are part of the 'official' and securized piste network.

In openstreetmap, they are called piste:type=dowhnill + piste:grooming=backcountry.

Now, in, this is dashed lines, colored by difficulty. What you see on the left (the orange dots) is something different, they are piste:type=skitour.


A very good suggestion from user pkm. Thanks Peter !

dimanche 28 décembre 2014

Comment intégrer une carte de ski sur votre site web ?

C'est tout simple, vous trouverez un exemple rapide ici: How-to.


Pour une intégration un peu plus poussée, les tuiles d' sont à cette adresse:{z}/{x}/{y}.png. Utilisez-les avec OpenLayers ou Leaflet.

N'oubliez pas de créditer Openstreetmap !


How to embed a ski map on your website ?

This is simple and easy. You will find a quick example here: How-to.


For a better integration, you can also directly use the tiles at{z}/{x}/{y}.png with your favorite map library, like OpenLayers or Leaflet.

Don't forget to give a proper attribution to Openstreetmap !


2014 Stats

Simply the pistes added in the openstreetmap database every year until now, 2014 update.

downhill-2014.png nordic-2014.png aerialway-2014.png

Openstreetmap ski map is still the most comprehensive ski map world-wide. On 28.12.2014, 79665 km of ski trails on the map.

  • Nordic: 31820 km
  • Alpine: 26823 km
  • Lifts: 17132 km
  • Skitour: 2379 km
  • Sled: 953 km
  • Snowshoeing: 558 km


dimanche 14 septembre 2014

Ski lifts names

Ski lifts names are now displayed on OpenSnowMap.

This wasn't done until now because I was unable to place the name labels exactly at the same place than on OpenStreetMap background map. The rendering of ski lifts names (aerialways) being removed from osm-carto sytle, it's much easier !

They show up from zoom 15, refresh your cache.


samedi 22 mars 2014

Ajouter une piste de ski de fond avec iD

Il existe plusieurs solutions pour rajouter des chemins dans Openstreetmap. Le dernier-né des éditeurs s'appelle 'iD'. id_logo.png Avant de commencer, peut-être avez-vous une trace .GPX de votre ballade en ski? Sinon, pas de problème: vous pourrez utilisez votre mémoire et une photo aérienne.

Dans tout les cas, connectez-vous ou créez un compte sur

Si vous l'avez, prenez le temps d'envoyer votre fichier GPX au serveur à partir du lien 'Traces GPS' en haut de la page.

Ensuite, zoomez sur la carte vers l'endroit ou vous allez rajouter votre piste, puis utilisez le menu 'Modifier' en haut pour choisir 'iD'.


Vous voici dans l'éditeur. Lorsque vous serez content de votre travail, utilisez le bouton 'Sauvegarder' pour le sauver dans OpenStreetMap.


N'ayez pas peur de faire une erreur :

  • tout le monde en fait
  • il y a un bouton annuler (fonctionne avant de sauvegarder)
  • et surtout, même si vous sauvegardez, un autre contributeur pourra la réparer, voir même annuler vos modifications si ce n'est pas réparable.

Si vous avez besoin d'un coup de main, n'hésitez pas à demander de l'aide:

Tracer la piste

Commençons par afficher une image aérienne ou notre trace GPS. Sélectionner par exemple les couches 'Openstreetmap GPS traces' et 'Bing Aerial Imagery'.


Pour créer un chemin, rien de plus simple : prenez l'outil 'ligne', et repasser sur la trace GPS ou en suivant l'imagerie aérienne.
N'oubliez pas de connecter votre chemin aux chemins déjà existants !
Inutile de faire trop de points, et prenez garde de ne pas suivre toutes les errances de votre GPS : il arrive que celui-ci divague un peu autour de votre position.

003_trace.png Repassage d'une trace GPS

004_trace-imagery.png Tracé de mémoire sur l'imagerie aérienne

Cela ne vous semble pas très précis, mais c'est oublier qu'avec le temps d'autres pourront affiner le tracé grâce à leur propre traces gpx, comme ici :



Souvent, une piste emprunte un chemin existant qui est déjà présent. Inutile de repasser dessus.
Lorsque la piste quitte le chemin, cliquez simplement sur le point d'intersection, et choisissez l'outil 'ciseaux'. 0045_couper-small.png

N'ayez crainte, même coupé en deux le chemin reste connecté. Cela va seulement nous permettre de dire qu'une partie du chemin est aussi une piste de ski de fond, et l'autre seulement un chemin.

Les Tags

Bon, voici notre chemin tracé, mais comment fait-on pour renseigner une piste de ski de fond ?

C'est simple, sélectionner le chemin, et utilisez le bouton 'Ligne' en bas du menu à gauche. 005_tag.png

Ceci nous ouvre l'éditeur de tags, que vous pouvez renseigner comme ceci :


Ou comme ça :


Bon, les tags, qui permettent de décrire ce que vous venez de mapper, ça ne s'invente pas. Voici ce que vous devez savoir pour une piste de ski :

Le type de piste

piste:type = nordic pour le ski de fond

Pour les autres sports d'hiver, il existe aussi :

  • piste:type = downhill (ski de descente)
  • ... = hike (raquette ou à pied, selon le damage)
  • ... = skitour (peau de phoque)
  • ... = sled (luge)
  • ... = sleigh (traineau / ski-joring)
  • ... = snow_park
  • ... = playground (jardin d'enfant)

Plus d'info ici.

Le damage

  • piste:grooming = classic
  • ... = skating
  • ... = classic+skating (le plus courant en Europe centrale)
  • ... = scooter (juste un passage à la motoneige)
  • ... = backcountry (pas de damage mécanique, il faut faire la trace soi-même)
  • ... = mogul (bosses, pour le ski de descente)

La difficulté

piste:difficulty = novice, easy, intermediate, advanced, expert

Attention, ce tag n'est pas là pour renseigner sur la couleur de la piste, mais pour signaler une section plus ou moins ardue. Vous pouvez utiliser ces définitions :

  • Novice Piste plate, familiale, aucun effort requis (du genre pas à plus de 2km d'un chocolat chaud).
  • Easy Piste normale, sections en pente courtes.
  • Intermediate Pente importante, ou passage étroits en pente. Un peu de sueur nécessaire. N'utiliser que sur les sections concernées.
  • Advanced Pente importante, avec des passages étroit ou des virage serrés, pistes souvent glacées. N'utiliser que sur les sections concernées.
  • Expert Pente importante, avec des passage étroit ou des virage serrés, pistes souvent glacées. Terrain dangereux à proximité (falaise). N'utiliser que sur les sections concernées.

Et voilà ! D'ici demain, vous devriez voir votre piste apparaitre sur la carte

Dans un autre post, je vous expliquerais comment renseigner la couleur des pistes et leur nom.

dimanche 9 mars 2014

They use Opensnowmap

I was requested by a few people to use tiles on their website.

Now you can find them on:

To do the same, it's easy: you just have to tell me so, and use a proper referrer and user-agent. Of course you need to acknowledge OpenStreetMap according to this page, and CC-BY-SA. This is important to tell me before, so that I can check if the server load is ok and warn you about any change.

This only concerns the tiles without hillshading and contour-lines: I'm afraid the load would be to big otherwise.

Of course, if you made any serious revenue thanks to those tiles, maybe you are kind enough to help me and share a part of the Opensnowmap server costs.

- page 1 de 4