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
[email protected]
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

_______________________________________________
dev-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev-fr

Répondre à