Message posté par : Cornellius (olivier.saint-pol(a)sirs-fr.com)
----------------------------------------
Bonjour,
Etant un utilisateur d'outils SIG depuis 28 ans, je vous conseille d'effectuer les
calculs d'intersection dans une base PostgreSQL/Postgis si vous préférez les outils
libres.
Il faudra alors écrire un peu de code SQL pour réaliser l'opération d'intersection
(ST_intersection) sur vos 2 couches indexées comme dans cet exemple :
On suppose que les 2 couches ont été préalablement importées dans la base Postgis (ici
dans le schéma public)
CREATE INDEX ON public.layer1 USING GIST (geom);
CREATE INDEX ON public.communes USING GIST (geom);
DROP TABLE IF EXISTS public.layer1_par_commune;
CREATE TABLE public.layer1_par_commune AS
SELECT
g1.*,
c.nom AS nom_commune
CASE
WHEN ST_CoveredBy(g1.geom, c.geom)
THEN g1.geom
ELSE
ST_Multi(
ST_Intersection(g1.geom, c.geom)
)
END AS geom
FROM public.layer1 AS g1
INNER JOIN public.communes AS c
ON ST_Intersects(g1.geom, c.geom);
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=377055#p377055
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net