Suite

Comment dessiner et étiqueter correctement les polygones qui se chevauchent ?

Comment dessiner et étiqueter correctement les polygones qui se chevauchent ?


Je voudrais montrer les polygones qui se chevauchent sur une seule couche.

Les polygones sont colorés en fonction d'une propriété et étiquetés en fonction d'une autre propriété. Le problème est alors double :

  • Les polygones sont rendus dans un ordre aléatoire dans des tuiles où ils se chevauchent, ce qui fait que certains petits "disparaissent" sous les plus grands (par exemple, les villes "sous" les régions), alors que je voudrais qu'ils soient rendus selon une propriété donnée (je pensait à utiliser Priority mais il n'est disponible que pour TextSymbolizer dans geoserver).
  • Les étiquettes des plus grands polygones sont affichées "au-dessus" des plus petits polygones, alors que j'aimerais qu'elles soient dessinées (répétées) uniquement dans les zones où les deux (ou plus) polygones ne se chevauchent pas. Par exemple. Les noms d'État ne doivent être affichés que là où aucune autre surface régionale n'est dessinée (même si cela peut entraîner l'absence totale de noms d'État).

Y a-t-il une bonne façon de le faire?


Comme @iant l'a souligné, ce qui semblait être un ordre aléatoire est l'ordre dans lequel le back-end livre les polygones au géoserveur. Les trier en fonction d'une propriété reflétant l'ordre d'affichage souhaité est la bonne façon de le résoudre.

Malheureusement, le problème d'étiquetage ne peut pas être résolu de manière triviale côté serveur et côté client, la solution la plus prometteuse consiste à calculer les points d'étiquetage à l'aide de WFS pour récupérer les géométries impliquées (mais effectivement lentes).


Voir la vidéo: Chapitre 5 - BLOC 1 - Noms des polygones et comment les tracer