[OSM-dev-fr] [SQL] utilisation de ST_Difference

Vincent de Chateau-Thierry vdct at laposte.net
Jeu 30 Déc 18:03:34 GMT 2010


Le 30/12/2010 08:25, Nicolas Dumoulin a écrit :
>
> Merci de ta réponse, mais j'obtiens alors l'erreur suivante :
> RuntimeError: PSQL error:
> ERREUR:  Operation on mixed SRID geometries
> Full sql was: 'SELECT AsBinary("way") AS geom from (select
> ST_DIFFERENCE(ST_GeomFromText('POINT(3.098 45.739 3.1543 45.764)', 4326),way)
> as way from planet_osm_polygon where name='Aubière') as roads WHERE "way"&&
> SetSRID('BOX3D(344867.7824775615 5738534.792254916,351135.0698092228
> 5742697.566128345)'::box3d, 900913)'

OK. Le message indique que ST_Difference veut travailler avec 2 
géométries décrites dans le même système de projection. Dans ce cas, tu 
peux changer à la volée la projection de ta bbox pour la mettre en 
projection "google" via ST_SetSRID [1]. Ca donnera ça :

(...)
ST_SetSRID(ST_GeomFromText('POINT(3.098 45.739 3.1543 45.764)', 
4326),900913)
(...)
et normalement ça ne plantera plus (enfin, plus avec cette erreur en 
tout cas :-) )

> Pour info, j'ajoute mes couches postgis avec le srs "+proj=latlong
> +datum=WGS84" (copié-collé des exemples).
Pour être sûr de l'effet de ton option, tu as ST_SRID [2] pour vérifier 
comment ta couche est déclarée. Aucazou.

vincent

[1] : 
http://postgis.refractions.net/documentation/manual-1.5/ST_SetSRID.html
[2] : http://postgis.refractions.net/documentation/manual-1.5/ST_SRID.html



More information about the dev-fr mailing list