FR:User:Petrovsk/Osm2pgsql style
Lors de l'import d'un fichier OSM dans une base PostGIS à l'aide de osm2pgsql, ce n'est pas la totalité des données qui est importée, mais celles définies par le style d'import. Ce style est un fichier listant les tags OSM définissant les éléments devant être importés. Osm2pgsl est fourni avec un style par défaut que nous pouvons modifier selon nos besoins.
Pourquoi modifier le fichier de style ?
Osm2pgsql est destiné à la base à fournir les données permettant un rendu mapnik généraliste.
On peut vouloir faire un rendu de carte personnalisé, visualiser les données dans Qgis, les analyser avec des requêtes SQL… Et pour savoir combien il y a de pistes de ski par département il faut qu'elles soient dans la base de données, et pour cela modifier le style d'importation en conséquence.
Le style par défaut
Celui-ci se nomme fort justement default.style
et se trouve, du moins chez moi, dans /usr/local/share/
.
Les commentaires répartis dans le fichier détaillent un peu son fonctionnement, les données apparaissent comme un tableau à quatre colonnes : OsmType, Tag, DataType et Flags.
Chaque ligne décrit l'action à mener sur une clé, un tag particulier étant la combinaison d'une clé et d'une valeur. Ainsi, chaque ligne traite d'une famille de tags, par exemple toutes les valeurs possibles de highway ou de sport.
- La colonne OsmType indique le type de données OSM à traiter, points ou lignes (
node
ouway
). Les polygones sont des lignes fermées et les relations regroupent indifféremment points ou lignes. - Tag désigne la famille de tags.
- DataType est le type de donnée (dans la base), dans la pratique, tous les tags sont de type texte (
text
) - Flags indique l'action à appliquer aux données :
- delete permet de supprimer des tags. L'exemple donné est celui du tag source, inutile pour le rendu (à moins de vouloir spécifiquement l'utiliser)
- nocache indique que le tag n'est pas utilisé par des lignes et ne doit pas être stocké
- linear est dévolu aux données linéaires (!)
- polygon marque les éléments qui intègreront dans la base de données la table des polygones
Il est à noter que pour une même clé, les deux types de données OSM peuvent cohabiter avec des actions différentes. Par exemple le style par défaut contient la ligne suivante :
node,way amenity text nocache,polygon
Modifier le style et l'utiliser lors de l'import
Pour être tranquille, faire une copie du style par défaut et le renommer. Il sera rappelé dans la ligne de commande d'import de la façon suivante : -S /chemin/vers/<nom>.style
, la commande finale peut ressembler à ça :
osm2pgsql -s -d <base> -S /chemin/vers/<nom>.style <fichier>.osm
Vers la fin du fichier de style se trouve une zone prévue pour les additions, voici les miennes pour l'instant :
# additions node,way piste:type text linear node,way piste:difficulty text linear way highspeed text linear node mountain_pass text nocache way boat text linear
Les deux premières lignes me permettent d'afficher les stations de ski et leurs pistes, la troisième indique les lignes ferroviaires à grande vitesse. La suivante ajoute les cols à la base et la dernière permet de différencier les voies navigables des autres cours d'eau.
Rien n'empêche de supprimer des lignes inutiles ou bien de passer le tag source de delete en linear pour pouvoir colorer les limites administratives selon leur source.