Message posté par : zack
----------------------------------------
Merci pour votre réponse. Malgré tous mes essais je n'ai pas réussi à sélectionner les
polygones qui conviennent avec ST_Relate.
Je pense que j'ai des micro trous qui se sont créés entre certains de mes polygones
qui fait qu'ils ne s'intersectent pas.
J'ai trouvé sur ce post
https://gis.stackexchange.com/questions/236712/change-st-intersects-default…
comment créer une fonction pour changer la tolérance du st_intersects. Cela m'oblige
au préalable à passer mes types de champs de geométry à geography :
La fonction :
-----------------
Code :
CREATE OR REPLACE FUNCTION ST_Intersects(geography, geography,float8)
RETURNS boolean
AS 'SELECT $1 && $2 AND _ST_Distance($1, $2, 0.0, false) < $3'
LANGUAGE 'sql' IMMUTABLE ;
-----------------
La transformation en geography de mes couches :
-----------------
Code :
create table poly1geog as
SELECT id, geography(ST_Transform(geom, 4326))
FROM polygones1
create table poly2geog as
SELECT gid, geography(ST_Transform(geom, 4326))
FROM polygones2
-----------------
Et le st_interect avec une tolérance de 0.001 :
-----------------
Code :
SELECT a.id AS gid_a, b.gid AS gid_b
FROM poly1geog a, poly2geog b
WHERE ST_Intersects(a.geography, b.geography, 0.001)
order by gid_a, gid_b;
-----------------
En résultat, j'obtiens bien tous les polygones qui sont autour de ma cible (pj), mais
également ceux qui sont en pointe (croix rouges). Me reste plus qu'à voir pour les
supprimer.
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=325254#p325254
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