PnX-SI / gn_module_monitoring_habitat_station

Module GeoNature de suivi des habitats sur une station
GNU General Public License v3.0
1 stars 1 forks source link

t_base_sites impose polygone #6

Closed camillemonchicourt closed 5 years ago

camillemonchicourt commented 5 years ago

Dans notre module, le site est un transect linéaire. Hors le champs gn_monitoring.t_base_sites impose le type polygone.

A revoir au niveau de GeoNature global pour autoriser le type ligne et tant qu'à faire le type point.

Du coup, dans notre cas, la géométrie du gn_monitoring.t_base_sites sera une ligne calculée par trigger à partir des géométries saisies des départs et arrivées du transect.

camillemonchicourt commented 5 years ago

Je viens de regarder et le champs autorise bien toutes les géométries, pas uniquement les polygones : https://github.com/PnX-SI/GeoNature/blob/master/data/core/monitoring.sql#L27

cdcvidal commented 5 years ago

Mea culpa ! L'erreur se trouve à l'insertion du site dans ref_geo.l_areas, par exemple :

INSERT INTO ref_geo.l_areas (id_type, area_name, area_code, geom, centroid, source)
SELECT ref_geo.get_id_area_type('TSHS'), base_site_code, base_site_code, ST_TRANSFORM(ST_SetSRID(geom, 4326), 2154), ST_TRANSFORM(ST_SetSRID(ST_CENTROID(geom), 4326), 2154), 'CBNA'
FROM gn_monitoring.t_base_sites
WHERE base_site_code LIKE 'TESTSHS%';

retourne

ERREUR: Geometry type (LineString) does not match column type (MultiPolygon)
État SQL :22023
camillemonchicourt commented 5 years ago

Non mais il n'y a pas à insérer les sites dans l_areas, uniquement dans t_base_sites et sa table fille transects

HamoudaAmine commented 5 years ago

On fait l'insert dans ref_geo.l_areas pour récupérer la commune, a moins que on n’affiche pas la commune du transect

camillemonchicourt commented 5 years ago

Je comprends pas cela. Il ne faut pas insérer les sites dans les areas. Et ce n'est pas comme cela que l'on récupère la commune d'un site (transect dans notre cas).

Quand on insère un site dans t_base_sites, un trigger se déclenche et l'intersecte avec les zonages présents dans ref_geo.l_areas pour remplir gn_monitoring.cor_site_area : https://github.com/PnX-SI/GeoNature/blob/master/data/core/monitoring.sql#L166-L184

Donc c'est gn_monitoring.cor_site_area que l'on récupère l'info sur la commune du site.