Table des matières

Synthese - Regroupement d'observations par mailles

À fin de ... Je peux ...

Afin de clarifier l'affichage de la répartition des observations sur la carte à petite échelle lorsqu'une recherche est lancée dans le module SYNTHESE, je peux voir les observations correspondant à ma recherche affichées à petite échelle sur la carte regroupé par maille.

Ces mailles doivent être colorées en fonction du nombre d'observations qu'elles contiennent.

Une légende doit pouvoir être affiché afin d'indiquer les intervalles d'observations correspondant à chaque couleur.

Détails de la fonctionnalité

Problèmes

Ressources

Exemples de requête

Regrouper 100 000 observations par maille 10x10

SELECT la.area_code, COUNT(s.id_synthese) AS nbr
FROM gn_synthese.synthese AS s
	JOIN gn_synthese.cor_area_synthese AS cas ON (s.id_synthese = cas.id_synthese)
	JOIN ref_geo.l_areas AS la ON (cas.id_area = la.id_area)
WHERE la.id_type = ref_geo.get_id_area_type_by_code('M10')
GROUP BY la.id_area 
LIMIT 100000 ;

Résultats (en local) :

Requête listant les observations en y associant la géométrie d'une maille

SELECT
	s.id_synthese,
	s.date_min,
	s.lb_nom,
	s.cd_nom,
	s.nom_vern,
	s.st_asgeojson,
	s.observers,
	s.dataset_name,
	s.url_source,
	s.entity_source_pk_value,
	s.unique_id_sinp,
	s.id_nomenclature_sensitivity,
	s.id_nomenclature_diffusion_level,
	la.area_code,
	la.geojson_4326 
FROM gn_synthese.v_synthese_for_web_app AS s
	JOIN gn_synthese.cor_area_synthese AS cas ON (s.id_synthese = cas.id_synthese)
	JOIN ref_geo.l_areas AS la ON (cas.id_area = la.id_area)
WHERE la.id_type = ref_geo.get_id_area_type_by_code('M10')
ORDER BY s.date_min DESC ;

Résultats (en local) :

Requête listant les observations pour une bbox de taille M5

SELECT 
	s.id_synthese,
	s.date_min,
	s.lb_nom,
	s.cd_nom,
	s.nom_vern,
	s.st_asgeojson,
	s.observers,
	s.dataset_name,
	s.url_source,
	s.entity_source_pk_value,
	s.unique_id_sinp,
	s.id_nomenclature_sensitivity,
	s.id_nomenclature_diffusion_level
FROM gn_synthese.v_synthese_for_web_app AS s
WHERE s.the_geom_4326 IS NOT NULL
	AND ST_Intersects(s.the_geom_4326, ST_GeomFromWKB(ST_AsEWKB('POLYGON ((6.205649 43.299893, 6.205649 43.346541, 6.264669 43.346541, 6.264669 43.299893, 6.205649 43.299893))'::geometry), 4326))
ORDER BY s.date_min DESC ;

Résultats (en local) : ~60ms pour 6400 observations