Export France : Dessiner les villes

Bonjour à tous !

C’est encore moi l’emmerdeur de service :slight_smile:

J’avais une petite question concernant les villes. J’aimerais dessiner les villes, un peu à la mode d’une carte michelin, un polygon jaune schématisant la ville.

Je suis donc aller sur le wiki france et j’ai vu que :

boundary=‘administrative’ et admin_level=‘8’ étaient à priori les filtres à utiliser pour isoler les communes.

(select * from planet_osm_polygon where admin_level='8' and boundary='administrative') as villes

J’ai l’impression que ça me sort tous les cantons…

Je pense ne pas bien “requêter”…

Savez-vous, sur l’export France, comment récupérer les villes et uniquement les villes ?

Merci à vous.
(Je tenterai de mettre quelques images à la suite du sujet pour l’illustrer un peu).

C’est comment “à la mode michelin” ?

La première question à se poser étant “quelle surface veux-tu représenter”, ville, ça peut être vague…
La deuxième étant est-ce que ça existe dans osm, et si non, ou, pas tout le temps, qu’est-ce qui s’en rapproche le plus ou comment combler ce qui manque.

Est-ce que ça se rapproche de “l’unité urbaine” ? :
http://fr.wikipedia.org/wiki/Unité_urbaine
soit :" une catégorie statistique qui désigne empiriquement un territoire défini par la continuité de l’habitat ou du bâti" ?

boundary=‘administrative’ et admin_level=‘8’ étaient à priori les filtres à utiliser pour isoler les communes.

Oui, mais une commune n’est pas une ville

(select * from planet_osm_polygon where admin_level=‘8’ and boundary=‘administrative’) as villes

>
> J'ai l'impression que ça me sort tous les cantons...

Non, ça sort... les contours de communes :wink:

> Savez-vous, sur l'export France, comment récupérer les villes et uniquement les villes ?

Comme dit plus haut, il faudrait d'abord répondre à "c'est quoi une ville", mais si je suppose que ça se rapproche de l'unité urbaine avec peut-être des restrictions de population, alors il est possible que ce soit vers le tag "place=*" qu'il faille se tourner et tout particulièrement place=city ou place=town
voir : http://wiki.openstreetmap.org/wiki/Key:place
Mais là, j'ai peur que tu sois déçu, ça n'est pas très bien renseigné dans osm, car la plupart des villes sont sous forme de points et non de surface.

Et parfois, en tout cas selon moi, c'est le tag landuse=residential qui a été abusé pour indiquer une unité urbaine alors que ça n'est pas tout à fait la même chose, il faudrait donc peut-être aussi coupler avec ça.

Tu peux tenter une requête de ce type :

```text
(select * from planet_osm_polygon where place in ('city','town') as villes limit 100

et voir un peu ce que ça donne et si ça te semble se rapprocher.

Un grand merci pour ta réponse !

J’ai déjà pas mal étudié la “key” “place” avec city, town, etc etc…

Je vais poursuivre mes investigations.

Pour ce qui est du style michelin, c’est les villes en jaune :

ha ouais…
ça à l’air super approximatif et super dé-zoomé ces “surfaces jaunes” chez michelin, j’ai regardé du coté de chez moi histoire de me faire une idée (chambéry) et ça n’a l’air d’être ni la surface de commune, ni vraiment la surface du bâti continue, ça ressemble juste à un pâté approximatif pour éviter de monter le centre ville ce qui n’aurait pas d’utilité à ce niveau de zoom !

Je dirais donc que si ton but c’est de représenter les villes uniquement à un niveau de zoom aussi faible, prend juste un rond et trace le d’un diamètre proportionnel à la population ou alors prend la surface de commune et ça fera pas loin du même résultat que michelin.

Maintenant, si tu veux pouvoir représenter ces surfaces à un zoom plus élevé et/ou éventuellement pour des villes plus petites et donc être plus précis, là il va falloir ruser un peu plus car toutes les données ne sont pas forcément dans OSM

Re Sly,

Encore merci pour tes conseils.

La carte n’est effectivement pas prévue pour zoomé pour voir le détail des villes.

Par contre, je dois skiner une carte avec la “forme” des villes, et en faisant des essais avec place = ‘qqchose’, c’est pas au top.

Pourtant, y’a de l’idée pour l’exemple ci-dessous (Parthenay) mais il y a que très peu de villes qui sont représentées comme ça :

Requête : (select * from planet_osm_polygon where place<>’’) as villes
C’est bourrin, je sais ! :slight_smile:

Image :

Et pourtant, je trouve le résultat plutôt chouette ! C’est le résultat qui ne te convient pas où c’est le fait que pas assez de villes dans osm dispose de leur contour de tracé ?

Si c’est le cas 2… y’a plus qu’a !

Tout à fait, c’est ça que j’aimerais pour les villes. Pour les villages trop petits, je mettrai volontiers un simple rond.

Dans l’export France, je n’ai pas l’impression que toutes les villes ne soient décrites avec un polygone style “zone urbaine” comme le lien wikipedia que tu m’as envoyé.

Petit complément, les différentes valeurs de “place” dans les polygones :

gis=# select distinct place from planet_osm_polygon;
              place
----------------------------------

 farm
 hamlet
 land
 RÚsidence des Hautes Chatries
 subdivision
 Place de l'Hotel de Ville
 archipelago
 mountain
 islet
 village
 Centre Commercial de la Verville
 region
 Nieces des Daviers
 common
 place
 yes
 town
 city
 locality
 state
 private
 neighbourhood
 Marchfeld
 island
 suburb
 country
 isolated_dwelling
(28 lignes)

C’est même sûr que non.

:cry: Snif :slight_smile:

Je vais jouer autour des données dont on a parlé.

Merci encore pour ton aide.

Désolé de spammer mais finalement, c’est peut être le moment de contribuer pour moi ! :slight_smile:

En fait, ce que tu cherches existe déjà mais dans des polygones taggués “landuse=". Les centres sont souvent en “landuse=residential”. Mais il faudra aussi agréger les polygones en “landuse=industry”, “landuse=commercial”, “landuse=retail” qui peuvent se trouver en périphérie. Certains portent aussi un tag "place=” mais pas beaucoup parce qu’il n’y a pas consensus sur ce point. Il n’existe pas non plus de tags pour tracer les limites des “zones contruites” dans leur ensemble. La tendance est plutot de faire des landuse par usage (résidentiel, commercial) comme listé précédement. Certains de ces polygones portent aussi le tag “name” avec le nom de la zone mais plus souvent, ça sera le nom de la zone (commerciale, industrielle, etc). Dans les petites villes et villages, il y a encore souvent un polygone landuse=residential unique. Il y a aussi de grandes villes avec plein de landuse mais dont la couverture n’est pas homogène (trous ou chevauchements).

Il ne faudrait pas que tu te lances dans la création d’un nouveau type de polygone pour définir la zone d’agglomération sans une concertation préalable avec la communauté. Il faut d’abord voir quels tags utiliser et de quelle manière (relation ou pas, etc).

Merci pour le complément d’information, ça va m’aider également.

C’est cette histoire de relation que je n’ai pas encore bien comprise.

Voici ce que le landuse donne, intéressant :

Voila. Maintenant, si tu veux ajouter les noms “comme chez Michelin”, tu dois récupérer les noeuds taggées en “place=city” ou “place=town” pour les villes ou “place=village” pour les villages (ça peut dépendre de ton niveau de zoom).

Joli résultat. Si tu utilise postgis, un petit st_simplify devrait donner un résultat plus schématique encore, à la Michelin.

Pas bête :slight_smile:

C’est une fonction non ? Comment ça s’utilise ?

Ca s’utilise dans la requête sql ton layer.
Du genre select st_simplify(way, 100) from planet_osm_line …

Effectivement, c’est super ton astuce ! Merci.

Salut NasH,

Bienvenue dans le monde de la cartographie… le vrai, celui où on essaye de dessiner une belle carte à partir des données collectées par les topographes :wink:

Tu met surtout un pied dans ce qu’on appelle la “généralisation cartographique”, c’est à dire simplifier des données pour les rendre compréhensibles au petites et moyennes échelles.

A ce niveau, on ne représente plus la réalité topographique, on doit faire des simplifications pour que le carte soit lisible. Le ST_Simplify en est un exemple.

Le prochain défi que tu va devoir affronter c’est le “placement”. Placement de symboles, et surtout placement de texte… car autant les formes géométriques peuvent se superposer et rester lisibles, autant le symboles et surtout les textes ne peuvent pas se superposer.

Un peu de lecture (il n’y a que 141 pages): http://fad.ensg.eu/moodle/file.php/9/carto_vol1.pdf