Comment définir automatiquement les bordures des polygones pour améliorer la lisibilité des cartes lors du rendu des cartes thématiques?

10

Lors du mappage d'une valeur en tant que couleur pour rendre une carte thématique, les bordures des objets peuvent modifier considérablement la lisibilité de la carte. Par exemple dans cette carte thématique des comtés américains avec des bordures noires: entrez la description de l'image ici

Il y a beaucoup de petits objets dans certaines zones, et cela les rend plus sombres à cause des bordures sans égard à la couleur thématique. Si les bordures sont dessinées avec une opacité de 30%, cela donne la carte suivante: entrez la description de l'image ici

Celui-ci est évidemment mieux à même de communiquer les données mappées sur les objets. Cependant, avoir un taux d'opacité statique peut également dégrader la lisibilité car cela rend les limites des objets moins visibles, ce qui est un problème s'il n'y a que quelques gros objets. De plus, le changement de lisibilité dépend également du contraste entre les couleurs de bordure et de remplissage.

Existe-t-il des moyens automatiques de trouver la bonne couleur / opacité des calques? Quel logiciel SIG fournit une méthode pour gérer correctement ce problème?

Jeremy-George
la source

Réponses:

7

Vous pouvez avoir une approche différente pour ce problème.
1) à partir de la largeur de ligne: unités de largeur de ligne = unités de carte.
2) règles d'échelle de la carte: cartes proches = lignes épaisses, cartes éloignées = lignes fines.

Dans QGIS, vous pouvez faire les deux.

entrez la description de l'image ici

Pablo
la source
5

Mon effet préféré pour la lisibilité / l'esthétique est un "dégradé". Si vous utilisez le logiciel ArcGIS, cet effet est assez simple à implémenter ... Voici un bon article de blog de l'équipe d'ESRI au Mapping Center:

Bandes à teinte rapide

BrianPeasley
la source
J'aime cet effet, mais juste en lisant le blog, cela me semble un peu plus dur (peut-être à cause de leur choix de couleur). Est-ce que quelqu'un d'autre trouve cela?
djq
1
J'ai fait une version similaire de cet effet en tamponnant l'intérieur des polygones, en colorant le tampon comme le poly mais en changeant la saturation de la couleur du tampon ... J'ai mieux aimé cette solution que les images floues montrées sur le blog Publier!
BrianPeasley
3
Cet effet ne fonctionnerait pas du tout pour les images à petite échelle dans la question. Le gradient serait soit imperceptible ou remplirait complètement les petits polygones.
Sean
3

L'exemple que vous montrez concerne en fait la nuance de couleur autant que l'opacité. En définissant une opacité plus élevée, vous changez la couleur de sortie en gris clair. Essayez de le régler sur un gris clair pour commencer avec une transparence nulle, cela vous donnera plus de contrôle et aura un effet similaire.

Une méthode simple pour obtenir un contrôle plus granulaire de l'opacité consiste simplement à diviser l'ensemble de données en couches distinctes en fonction de la zone du polygone, du périmètre ou d'un mélange des deux. Ensuite, définissez simplement l'opacité différemment pour les différents calques. Vous pouvez également restituer l'épaisseur de la ligne en fonction de l'aire du polygone.

Matthew Snape
la source
2

Dans ArcMap, vous pouvez définir une échelle de référence pour le bloc de données et sur les propriétés d'affichage de la couche, cochez "Mettre à l'échelle les symboles lorsqu'une échelle de référence est définie".

Réglez l'échelle de référence à la plus grande échelle que vous utiliserez. Ce sera l'échelle de la largeur du trait que vous effectuez un zoom arrière.

Si cela ne donne pas les résultats souhaités, vous pouvez également créer des copies du calque à afficher à différentes échelles. Par exemple, un calque symbolisé pour 1: 24 000 et défini pour ne pas s'afficher au-delà de 1: 24 000, un autre calque pour 1: 100 000 et défini pour ne pas s'afficher au-delà de 100 000 ou au-delà de 24 000, etc. Les nombres réels dépendront de vos données et propres prédilections de conception.

Sean
la source
2

Si vous mettez l'accent sur la couleur de remplissage, pourquoi ne pas simplement éviter d'utiliser une bordure pour les polygones? Cela devrait évoluer mieux à petite échelle.

DavidF
la source
1
mais vous ne pouvez pas distinguer les polygones adjacents qui ont la même couleur
neuhausr
2

Je ne suis pas convaincu par la méthode de la «teinte» de BrianP - cela sonne bien, mais vous pouvez alors classer la teinte à partir d'un seul polygone en donnant des «côtés» de la carte qui n'existent pas réellement. Voir le lien pour voir ce que vous pensez.

Je préfère une variante de l'idée de Pablo: les bordures changent d'opacité lorsque vous zoomez. À haut niveau, vous avez une faible opacité, lorsque vous zoomez sur les bordures noires, vous gagnez en opacité.

Cela peut être fait dans KML pour Google Earth en utilisant la fonctionnalité «régions».

Trevesy
la source
2

Le seuil de lisibilité des symboles cartographiques pour un symbole linéaire est de 0,1 mm (selon Saliszczew KA, Einfuhrung in die Kartographie et de nombreux autres livres de cartographie).

Pour améliorer la lisibilité des bordures des polygones, essayez simplement de vous conformer à ce seuil. Pour cela, vous devez certainement convertir cette valeur en taille de pixel en fonction de la résolution du périphérique d'écran.

(Si vous lisez français, voir la rangée du milieu: entrez la description de l'image ici)

julien
la source
1

Il existe une alternative simple dans QGIS pour obtenir le même résultat que «Symboles d'échelle lorsqu'une échelle de référence est définie» dans ArcGIS. Il vous suffit de définir la largeur du symbole en unités de carte plutôt qu'en mm.

Par exemple, si vous souhaitez définir une entité polyligne pour qu'elle affiche une largeur de 0,8 mm sur une carte au 1: 30 000 (avec des unités de carte en mètres) et pour augmenter ou réduire proportionnellement à l'échelle de la carte:

  1. Ouvrez les propriétés du calque et choisissez l' onglet Style

  2. Changez l' unité en «Carte de l'unité»

  3. Calculez ce que 0,8 mm représente en m sur une carte à l'échelle 1: 30 000: 0,8 / 1000 * 30000 = 24 m et insérez cette valeur (24) dans la zone Largeur .

C'est ça!

En tant que méthode alternative , vous pouvez laisser l'appareil comme milimètres puis insérez l'expression suivante dans la « substitution défini des données » pour la largeur - accessible en cliquant sur l'icône d'expression juste à droite de la largeur boîte

0.8 * 30000 / @map_scale
Jonathan Porter
la source