PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
100 stars 102 forks source link

Dans la synthese, les polygones empêchent de sélectionner les points qui sont dessous #782

Open Amegilla opened 4 years ago

Amegilla commented 4 years ago

Tout est dans le titre.

C'est un pb que me remontent régulièrement mes collègues. J'imagine que les géométries sont ordonnées par date sur la carte mais est-ce qu'on ne pourrais pas forcer les polygones à l'arrière plan pour éviter ce pb ?

merci

gildeluermoz commented 4 years ago

Dans une ancienne vie, avec Openlayers 2, on avait proposé aux développeurs d'OL2 d'ordonner les géométries par surface de manière à ce que les plus grandes surfaces soient systématiquement dessous et les plus petites dessus. La proposition avait été retenue. Par contre pour faire ça dans GeoNature, je ne sais pas dans quelle mesure un ORDER BY st_area(geom) serait impactant sur les perfs.

Amegilla commented 4 years ago

et en fait le pb se pose aussi quand plusieurs polygones se superposent, ce qui est souvent les cas quand plusieurs taxons sont notés sur le même relevé.

jbdesbas commented 4 years ago

Je pense que ça doit pouvoir se faire au niveau du client : https://leafletjs.com/reference-1.5.0.html#layergroup-setzindex

gildeluermoz commented 4 years ago

Je comprends que le setzindex permet d'ordonner les layers mais pas les features au sein d'une layer. Non ?

et en fait le pb se pose aussi quand plusieurs polygones se superposent, ce qui est souvent les cas quand plusieurs taxons sont notés sur le même relevé.

Par contre pour ce cas là, je ne vois pas trop de solution. Les clusters gèrent ça très bien mais si tu as un affichage en points ou polygones avec plusieurs taxons avec exactement la même geom, je ne vois pas de solution.

jbrieuclp commented 4 years ago

Sinon il faut dispatcher le geojson dans 3 layers différents, un par type de géométrie. Forcement le layer des polygones devra être sous les 2 autres.

gildeluermoz commented 4 years ago

C'est une approche mais il faut voir avec Théo les conséquences, notamment sur le maplist.

jbdesbas commented 4 years ago

Je comprends que le setzindex permet d'ordonner les layers mais pas les features au sein d'une layer. Non ?

et en fait le pb se pose aussi quand plusieurs polygones se superposent, ce qui est souvent les cas quand plusieurs taxons sont notés sur le même relevé.

Par contre pour ce cas là, je ne vois pas trop de solution. Les clusters gèrent ça très bien mais si tu as un affichage en points ou polygones avec plusieurs taxons avec exactement la même geom, je ne vois pas de solution.

Je n'ai plus trop le truc en tête, mais de mémoire il semble qu'il y a une subtilité entre les layers au sens de leafet et au sens où on l'entend habituellement, et donc que un layer de leaflet correspond bien à une géométrie. Je pense que ca doit se jouer quelque part ici, au niveau du onEachFeature : https://github.com/PnX-SI/GeoNature/blob/875894ae5df513be19178199cf59fdbe8c6958c3/frontend/src/app/GN2CommonModule/map/map.service.ts#L148

lpofredc commented 4 years ago

Il existe une librairie qui pourrait répondre à ce pb, leaflet-pip, qui permet d'interragir avec des polygones qui se chevauchent. Cf cet exemple: https://aura-partage.lpo.fr/cartes/trashtests/leaflet_pip.html

camillemonchicourt commented 4 years ago

Les points sont déjà dans une layer à part (pour être clustérisés) et ligne/polygone dans une autre. Donc on pourrait déjà facilement mettre les points par dessus. Intéressant leaflet-pip.

amandine-sahl commented 4 years ago

La dernière release de leaflet-pip date de novembre 2016

lpofredc commented 4 years ago

Oui, et je n'ai pas trouvé de fork plus à jour...

Amegilla commented 4 years ago

Pas mal en effet comme solution, et au final pour plusieurs polygones similaires qui se superposent, cliquer dessus permettrait de les sélectionner tous et d'avoir les lignes correspondantes mises en avant sur le panneau de droite.

Amegilla commented 4 years ago

Pas de news sur ce sujet ? c'est toujours une galère quand une recherche sort des points et polygones...