Message posté par : Hippo (jerome.hippolyte(a)yahoo.fr)
----------------------------------------
Bonjour,
Je dispose de 2 couches de données, l'une contenant les centroides des communes
françaises et l'autre des polygones répartis sur le territoire français.
Je souhaite créer un buffer autour du centroide d'une des communes que j'aurai
sélectionnée et intersecter ce buffer avec mes polygones pour renvoyer lesquels sont dans
le périmètre.
Lorsque je lance ma requête dans PgAdmin, pas de problème.
Pour autant, lorsque mon dev créé la requête en DQL dans Doctrine (Symfony), la requête
retourne les polygones présents dans le buffer contenu dans les limites de la commune
sélectionnée. Hors, si je veux créer un buffer de 15km, celui ci doit pouvoir
s'étendre au delà des limites communales.
J'ai l'impression que dans le DQL du coup, c'est le "andWhere" qui
pose alors problème.
Ma requête en SQL :
-----------------
Code :
SELECT a.lon,a.lat,a.code_insee, b.geometry
FROM public.commune a, public.polygones b
WHERE ST_Intersects(ST_Transform(ST_SetSRID(b.geometry, 4326), 2154),
ST_BUFFER(ST_Transform(ST_SetSRID(ST_Point( a.lon, a.lat), 4326), 2154),15000))
AND a.code_insee = '21231'
-----------------
La requête en DQL :
-----------------
Code :
->where('ST_Intersects(ST_Transform(ST_SetSRID(b.geometry, 4326), 2154),
ST_Buffer(ST_Transform(ST_SetSRID(ST_Point(a.lon, a.lat), 4326),
2154), :perimetre)) = true')
->andWhere('a.codeInsee = :codeInsee')
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=349915#p349915
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net