[OSM-dev-fr] [OSM-talk-fr] Requêtes SQL spatiale
Frédéric Benninger
benninger at sunrise.ch
Ven 15 Juil 14:30:28 BST 2011
Merci,
Ok la prochaine foi je posterai ce genre de questions sur la ML-dev.
Pour trouver les resto et café proche de chez moi j'ai écrit un truc du style:
SELECT Y(ST_AsText(ST_Transform(way, 4326))),
X(ST_AsText(ST_Transform(way, 4326))),
Distance(way, (SELECT way FROM planet_osm_point WHERE osm_id=582505865))::int,
amenity || ' ' || name, 'icon.png', '16,16', '0,0'
FROM planet_osm_point P WHERE (amenity ILIKE 'res%' OR amenity ILIKE
'caf%') AND Distance(way, (SELECT way FROM planet_osm_point WHERE
osm_id=582505865)) < 10000
ORDER BY 3;
Ca me retourne des données directement exploitable avec Openlayer mais
il est certainement possible de faire 100x mieux.
Suggestions bienvenues
Benni_75
Le 15 juillet 2011 02:15, Etienne Trimaille
<etienne.trimaille at gmail.com> a écrit :
> J'ai commencer à apprendre en regardant/comprenant les requêtes qui passent
> sur la liste ML (-DEV), comme par exemple :
> http://www.mail-archive.com/dev-fr@openstreetmap.org/msg00074.html
> http://www.mail-archive.com/dev-fr@openstreetmap.org/msg00001.html
>
> Il y a d'autres requêtes très intéressantes qui sont passées, il faut les
> rechercher. (pour faire ce que tu demande)
> Le 13 juillet 2011 23:46, Vincent de Chateau-Thierry <vdct at laposte.net> a
> écrit :
>>
>> Bonjour,
>>
>> Le 14/07/2011 08:13, Frédéric Benninger a écrit :
>>>
>>> Petite question, j'ai importé des données osm avec osm2pgsql dans ma db
>>> gis.
>>>
>>> gis=# \d
>>> Liste des relations
>>> Schéma | Nom | Type | Propriétaire
>>> --------+--------------------+-------+--------------
>>> public | geography_columns | vue | mapmaker
>>> public | geometry_columns | table | mapmaker
>>> public | planet_osm_line | table | mapmaker
>>> public | planet_osm_nodes | table | mapmaker
>>> public | planet_osm_point | table | mapmaker
>>> public | planet_osm_polygon | table | mapmaker
>>> public | planet_osm_rels | table | mapmaker
>>> public | planet_osm_roads | table | mapmaker
>>> public | planet_osm_ways | table | mapmaker
>>> public | spatial_ref_sys | table | mapmaker
>>>
>>> Maintenant j'aimerais savoir comment faire pour lancer quelques
>>> requêtes s'appuyant sur le moteur spatial.
>>>
>>> Par exemple: Compter le nombre de café dans ma commune.
>>> Me donner la boite au lettre la plus proche, etc....
>>>
>>> qqun a-t-il un site avec des exemples pour bien démarrer?
>>> Je suis un peu perdu avec l'extension spatiale et la dénormalisation de
>>> la base.
>>>
>>
>> Je n'ai pas de tutorial sous la main mais côté doc, tes requêtes vont
>> s'appuyer sur les opérateurs listés ici :
>>
>> http://www.postgis.org/documentation/manual-1.5/reference.html#Spatial_Relationships_Measurements
>> . Tu as des exemples pour chaque opérateur.
>>
>> N'hésite pas à poursuivre la discussion sur la liste dev-fr (en cc ici),
>> où les syntaxes SQL et autres sont les bienvenues.
>>
>> vincent
Plus d'informations sur la liste de diffusion dev-fr