Administration/Emprises

De Le wiki du Bon Tag
< Administration
Révision datée du 24 mars 2022 à 09:55 par Mathieu Ambrosy (discussion | contributions) (Page créée avec « Les emprises permettent d'associer des zones de travail aux utilisateurs. Dans l'interface de validation, l'utilisateur sélectionne une emprise dans la liste déroulante en haut à droite. Seuls les objets intersectant cette emprise s'afficheront. L'intersection ne se fait pas en temps réel car cela dégraderait trop les performances de l'application. A la place, chaque nuit, une table de correspondance "objet OSM/emprise" est alimentée par les scripts Python.... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Les emprises permettent d'associer des zones de travail aux utilisateurs.

Dans l'interface de validation, l'utilisateur sélectionne une emprise dans la liste déroulante en haut à droite. Seuls les objets intersectant cette emprise s'afficheront.

L'intersection ne se fait pas en temps réel car cela dégraderait trop les performances de l'application. A la place, chaque nuit, une table de correspondance "objet OSM/emprise" est alimentée par les scripts Python.

Un bouton "Calculer" permet de forcer le calcul de ces intersections après l'ajout ou la modification d'une emprise.

Pour référence, la requête SQL de calcul des intersections entre les objets OSM et les emprises est la suivante :

TRUNCATE lebontag.lbt_osmdiff_footprint;

DROP INDEX IF EXISTS lebontag.osmdiff_footprint_odidv_idx;
DROP INDEX IF EXISTS lebontag.osmdiff_footprint_odid_idx;
DROP INDEX IF EXISTS lebontag.osmdiff_footprint_fpid_idx;

WITH footprints AS ( SELECT fp_id,(st_dump(ST_CollectionExtract(fp_geom,3))).geom FROM lebontag.lbt_footprint ) INSERT INTO lebontag.lbt_osmdiff_footprint (od_id,od_new_version,fp_id) SELECT d.od_id,d.od_new_version,f.fp_id FROM lebontag.lbt_osmdiff AS d INNER JOIN footprints AS f ON ST_Intersects(d.od_new_geom, f.geom) WHERE d.od_new_geom IS NOT NULL UNION SELECT d.od_id,d.od_new_version,f.fp_id FROM lebontag.lbt_osmdiff AS d INNER JOIN footprints AS f ON ST_Intersects(d.od_old_geom, f.geom) WHERE d.od_old_geom IS NOT NULL;

CREATE INDEX osmdiff_footprint_odidv_idx ON lebontag.lbt_osmdiff_footprint USING btree (od_id,od_new_version) TABLESPACE pg_default;
CREATE INDEX osmdiff_footprint_odid_idx ON lebontag.lbt_osmdiff_footprint USING btree (od_id) TABLESPACE pg_default;
CREATE INDEX osmdiff_footprint_fpid_idx ON lebontag.lbt_osmdiff_footprint USING btree (fp_id) TABLESPACE pg_default;''