2009/9/1 Vincent de Chateau-Thierry <v...@laposte.net> > > Je n'ai pas encore entré de POIs de ce type mais je serais plus pour > positionner un POI (un node) systématiquement, que le restaurant soit > l'unique vocation du bâtiment ou pas. J'ai l'impression que c'est ce que > préconise le wiki [1], et dispatcher l'info entre points et lignes selon la > connaissance des contours du batiment ne facilite pas l'utilisation par les > applications des entités "restaurant" par la suite. >
Si tu veux facilement extraire cette information sous Postgres avec un schéma de type osm2pgsql, il suffit de faire les choses suivantes (a noter que ce n'est pas la commande SQL exacte, car je n'ai pas de quoi la faire tourner actuellement) SELECT ST_AsText(ST_Centroid(nomdelacolonne)), name FROM planet_osm_polygon WHERE amenity='restaurant' UNION SELECT ST_AsText(nomdelacolonne), name FROM planet_osm_point WHERE amenity='restaurant'; C'est tout aussi simple que ça. Ça prend vraiment quelques instants de plus a écrire. Ça tourne quasiment aussi rapidement puisque la table planet_osm_polygon n'est pas forcement tres grosse. De plus si tu as un index sur la colonne amenity (ou ce qui est vraiment, car je ne me rappelle plus du schéma), tu auras une requête assez rapide. ST_Centroid crée automatiquement un point du centre géométrique d'un polygone, ou d'un line, ou encore un multi-line. Il faut noter que si par malheur tu n'as pas de polygone de former, tu peux même créer la requête sur planet_osm_line, et ça marchera tout aussi bien. De plus, avec la commande UNION, tu as tout qui sort en un seul résultat. De plus, maintenant que le renderer supporte correctement le rendu des restaurants (avec a peu près la même requête), doubler le bâtiment d'un POI est inefficace car une telle requête aura deux fois le même résultat avec généralement deux coordonnées légèrement différentes. Emilie Laffray
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr