Niveau | Débutant |
Logiciels utilisés |
QGIS |
Plateforme | Windows | Mac | Linux | FreeBSD |
La bilbiothèque de symboles SVG de QGIS est assez complète mais comment ajouter d'autres symboles et surtout comment pouvoir changer la couleur et l'épaisseur des contours directement depuis QGIS ? C'est ce que nous allons voir dans cet article.
Avant d'aller plus loin, pour ceux qui auraient manqué cet article, lisez design cartographique : une liste de ressources en ligne indispensables, vous y trouverez une sélection de sites proposant des symboles SVG (en particulier FlatIcon - www.flaticon.com/ )
Ajouter de nouveaux symboles dans QGIS
Pour ajouter des symboles SVG, vous avez plusieurs méthodes possibles :
- Une fois que vous êtes dans QGIS, dans le menu Symbole SVG vous pouvez parcourir vers le fichier SVG de votre choix via le bouton parcourir en bas de la partie Groupes SVG
- Vous pouvez copier les nouveaux symboles dans le répertoire où sont déjà présents les bibliothèques SVG par défaut (indiqué également sous la fenêtre Groupes SVG)
- Vous pouvez regrouper l'ensemble de vos symboles dans un répertoire sur votre machine ou votre serveur et l'ajouter dans les chemins vers les symboles SVG. Pour cela aller dans les options de QGIS > Système et ajoutez vos nouveaux chemins.
Ils apparaitront dans l'arborescence des fichiers SVG et dans les aperçus des symboles.
Modifier le SVG pour autoriser sa personnalisation sous QGIS
Principe :
Editer le fichier SVG avec n'importe quel éditeur de texte (gedit, notepadd ++, etc.)
Remplacez les paramètres de style dans le fichier SVG par :
- fill="param(fill) #FFF" --> modifie le remplissage
- stroke="param(outline) #000" --> modifie la couleur de bordure
- stroke-width="param(outline-width) 1" --> modifie l'épaisseur du contour
Cas simple,
J'ai une étoile en SVG (oui je sais qu'il y en a déjà dans QGIS mais c'est pour l'exemple ... :-) ) -->
J'ouvre le fichier :
Il suffit de remplacer
style="fill:#010101;"
par :
fill="param(fill) #FFF"
Ca fonctionne !
Cas intermédiaire
Avec un symbole en plusieurs partie sans les paramètres "fill" comme celui-ci -->
Avec un éditeur de texte :
Vous aurez le cas de figure avec beaucoup de symboles du site FlatIcon...
Pour permettre l'édition de l'objet dans QGIS, il faut tout simplement ajouter les paramètres avant la balise <path pour chaque objet du dessin (ici en 2 parties) :
<path fill="param(fill) #FFF" stroke="param(outline) #000" stroke-width="param(outline-width) 1" d="M57.851,40.752V25.2...
Dans QGIS, il est maintenant possible d'éditer la couleur, le contour et même l'épaisseur (pour faire une sorte de halo)
Cas difficile
Et si mon SVG utilise des dégradés ?
Je créé sous Inkscape un cercle avec un dégradé radial pour une impression de volume.
Je veux ensuite l'utiliser dans QGIS ? C'est la même logique, à la place de la couleur noire, je vais remplacer par les paramètres vu au dessus :
<linearGradient
id="linearGradient3761"
osb:paint="gradient">
<stop
style="stop-color:#f7f7f7;stop-opacity:1;"
offset="0"
id="stop3763" />
<stop
style="stop-color:param(fill) #FFF;stop-opacity:1;"
offset="1"
id="stop3765" />
</linearGradient>
Dans ce cas, je ne personnalise qu'une couleur de mon dégradé (la partie noire, la blanche restera figée). Si on y ajoute un contour, alors il faut aussi modifier les lignes suivantes du code :
<path
sodipodi:type="arc"
style="fill:url(#radialGradient3781);fill-opacity:1;fill-rule:evenodd;stroke:param(outline) #000;stroke-width:param(outline-width) 1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path2991"
sodipodi:cx="302"
sodipodi:cy="427.36218"
sodipodi:rx="54"
sodipodi:ry="54"
d="m 356,427.36218 a 54,54 0 1 1 -108,0 54,54 0 1 1 108,0 z"
transform="matrix(0.46296296,0,0,0.46296296,-113.81481,828.50934)" />
Voici le résultat sur une carte QGIS (sans utiliser de contours):
Autres Liens : Question sur GIS-Stack-Exchange
Commentaires
Symbol layer
Bonjour,
Je ne suis pas capable d'acceder a l'option "symbol layer type" quand je suis dans les proprietes d'une couche (afin d'utiliser des icones SVG). Savez vous d'ou cela peut venir?
Merci,
T.
Bonjour, merci pour cet
Bonjour,
merci pour cet article très instructif. Je rencontre cependant un souci avec ce fichier SVG : http://www.sjjb.co.uk/mapicons/svg/tourist/view_point.svg
J'arrive bien à modifier le premier objet (premier bloc path) mais pas le second. Est-ce que vous y arrivez ?
Seconde question, est-il possible de réaliser un dégradé via la palette de couleurs en choisissant un symbole SVG dans QGIS avec le mode "catégorisé" ?
Cordialement,
Pierre
Désolé pour le temps de réponse
QGIS ne peut modifier qu'une couleur de fond donc soit la "fleur" soit le bloc noir à moins de jouer sur les paramètres et affecter sur l'un la couleur de remplissage et l'autre la couleur de bordure mais pas sur que cela fonctionne.
Pour la seconde question, il est tout à fait possible d'affecter une couleur par rapport à une classe mais pas de réaliser un dégradé au sein d'un même symbole.
Poster un nouveau commentaire