[OSM-dev-fr] Question noob postgis

yvecai yvecai at gmail.com
Mer 22 Fév 21:29:51 GMT 2012


Le 22/02/2012 22:24, Frédéric Rodrigo a écrit :
> On 22/02/2012 21:54, yvecai wrote:
>> J'ai pris la grande décision de me frotter un peu à postgis, mais j'ai
>> un peu de mal en sql, alors c'est l'occasion d'animer un peu cette 
>> liste.
>>
>> Dans une base 'osm2pgsql', je recherche les relations qui partagent un
>> bout de chemin avec, disons la relation 1347356.
>> Je n'arrive pas à comprendre comment faire fonctionner les fonctions de
>> comparaison.
>>
>>     SELECT a.osm_id, b.osm_id
>>     FROM planet_osm_line a, planet_osm_line b
>>     WHERE ST_overlaps(a.way,select b.way where osm_id=-1347356);
>>
>>     ERREUR: erreur de syntaxe sur ou près de « select »
>>     LIGNE 3 : WHERE ST_overlaps(a.way,select b.way where 
>> osm_id=-1347356);
>
> Ton sql n'est pas bien structuré :
>
> SELECT
>     a.osm_id,
>     b.osm_id
> FROM
>     planet_osm_line AS a,
>     planet_osm_line AS b
> WHERE
>     b.osm_id=-1347356 AND
>     ST_overlaps(a.way, b.way)
> ;
>
>
> Ou en plus jolie :
>
> SELECT
>     a.osm_id,
>     b.osm_id
> FROM
>     planet_osm_line AS a
>     JOIN planet_osm_line AS b ON
>         ST_overlaps(a.way, b.way)
> WHERE
>     b.osm_id=-1347356
> ;
>
> _______________________________________________
> dev-fr mailing list
> dev-fr at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/dev-fr
>
Entre-temps j'avais trouvé:
SELECT a.name, a.osm_id
FROM planet_osm_line a, (select way from planet_osm_line where 
osm_id=-1354395) as b
WHERE ST_intersects(a.way,b.way);

Mais bien moins joli, je te l'accorde !

Yves



Plus d'informations sur la liste de diffusion dev-fr