tag:linuxfr.org,2005:/users/medspxLinuxFr.org : les contenus de Médéric RIBREUX2016-11-13T21:53:58+01:00/favicon.pngtag:linuxfr.org,2005:Diary/369592016-11-11T18:10:58+01:002016-11-11T18:10:58+01:00Leonard Cohen rejoint Charles Bronson...Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Cher journal, je suis dévasté !</p>
<p>Oh triste complainte en ce jour maudit de novembre 2016. La pluie, le froid, le vent, la grisaille ambiante ne font que donner plus d'écho au départ d'un des plus grands chanteurs du 20ème siècle.</p>
<p>Car Leonard Cohen est maintenant bronsonisé… Le monde vient de perdre le poète de la mélancolie, le chanteur qui transforme la dépression en mélodie.</p>
<p>Et quelle carrière ! Sans rentrer dans les détails (Wikipédia fait tout ça mieux que moi), la carrière musicale de ce poète canadien commence en 1967 avec l'album bien nommé "The songs of Leonard Cohen". Ce dernier regroupe des tubes comme "Suzanne" et "So long, Maranne", lié à une de ses muses: Marianne Jensen (qui est décédée il y a quelques mois). Le style est sobre: des paroles sombres, bien travaillées et un accompagnement musical minimaliste destiné à mettre en exergue la poésie qui prend tout son sens dans cet univers sans bruit. Leonard Cohen est souvent accompagné de voix féminines d'une tessiture (forcément) plus élevée que sa voix grave, ce qui, selon moi, sublime la mélodie. Cette accompagnement féminin reste un trait de caractère de son oeuvre car on le retrouve sur pratiquement chacun de ses albums à venir.</p>
<p>Après ce premier succès, la fin des années 60 lui permet de présenter deux autres albums majeurs: "Songs from a Room" avec le requiem "Bird on the wire" et la chanson "Partisan" qui évoque la résistance française lors de la deuxième guerre mondiale. Vient ensuite "Songs of Love and Hate" et son emblématique "Famouns Blue Raincoat" qui évoque un message adressé à l'amant de la propre femme du narrateur (dans la chanson pas dans la vie de Cohen).</p>
<p>Les années 70 sont prolifiques pour Leonard Cohen avec pas moins de trois nouveaux albums aux registres parfois différents. En 1974 paraît "New Skin for the Old Ceremony" avec "Chelsea Hotel #2" et l'interrogation de "Who by Fire ?". En 1977 paraît "Death of a Ladies'Man", produit par Phil Spector. Cet album rompt largement avec les précédents dans le style musical: l'accompagnement est bien plus présent qu'auparavant et fait la part belle à de nouveaux arrangements qui rompent avec le style "traditionnel" de Leonard Cohen. Je vous recommande l'impertinent "I left a woman waiting" qui donnera quelques idées à votre vieux couple ainsi que le titre éponyme de celui de l'album qui reste, selon moi, un des meilleurs morceaux de l'auteur. Enfin en 1979 sort "Recent Songs" avec "The Guests" et le décalé (mais toujours mélancolique) "Un canadien errant", chanté en français. Cet album revient plus aux sources de ce qui fait le style Cohen.</p>
<p>Après quelques années de pause, Leonard Cohen publie en 1985 "Various Positions" avec "Dance me to the end of Love", inspiré par l'haulocoste (même si on dirait plutôt une ode amoureuse) et une autre de ses chansons les plus connues "Hallelujah", très souvent reprise et jouée dans nombre de cérémonies de mariage… Vient ensuite "I'm your man" en 1988 avec la chanson éponyme qui rapellera des souvenirs aux enfants des années 80 qui regardaient la publicité à la télévision; mais aussi "First we take Manhattan" qui a sans doute inspiré involontairement les évènements du 11 septembre 2001 (si,si, lisez les paroles).</p>
<p>Les années 90 sont moins prolifiques: Cohen sort un unique album "The future" en 1992, plus politique à mon sens, qui évoque la guerre dans "Anthem" et "Democracy", en réaction aux divers récents évènements politiques (en Chine et ailleurs).</p>
<p>On aurait pu croire que la carrière musicale de Cohen soit terminée avec sa retraite dans un monastère Zen, mais il revient dans le nouveau siècle avec deux albums: "Ten new songs" qui affiche "A Thousand Kisses Deep" et le jazzy "Boogie Street". En 2004 sort "Dear Heather", un album musicalement plus varié avec des notes de Jazz et même de country avec "Tennesee Waltz".</p>
<p>Leonard Cohen a maintenant 70 ans et on pense qu'il va s'arrêter mais la décénnie 2010 verra trois nouveaux albums (que je n'ai pas encore écouté donc je ne vous en parlerai pas…) dont l'avant dernier se glisse dans le top 5 des charts mondiaux. Il continue également à se produire en public, avec une tournée (sans doute éprouvante pour un monsieur de 80 ans): le World Tour. Le titre du dernier ("You want it darker") résume bien, à lui seul, le style Cohen.</p>
<p>On le voit bien, Leonard Cohen est un auteur prolifique qui a su traverser les différentes décénnies des 20ème et 21ème siècles, sans trahir la forme originale. C'est sans doute l'ensemble de cette oeuvre fidèle qui fait de lui un auteur/compositeur/interprète intemporel.</p>
<p>Mon pauvre Leonard, comme j'aime écouter tes chants, tes mélodies, tes complaintes lorsque je code.<br>
Cette tristesse, cette voix grave, cette plénitude et ce calme respectueux parviennent à intensifier ma concentration à son paroxysme, à maintenir centrée mon attention lorsque l'algorithme se dérobe sous mes doigts ou que le fichier de configuration part en sucette. Tu as su extraire la beauté paradoxale de ce qui ne semble que malheur, tristesse, ennui, mélancolie, dépression, etc.</p>
<p>Pour ceux qui ne connaissent pas l'oeuvre de Leonard Cohen et qui souhaiteraient la découvrir, je peux vous recommander les titres évoqués ci-dessus, à écouter dans l'ordre chronologique de sa carrière (ce qui vous permettra de tracer une certaine progression). Bien entendu, je vous recommande de ne pas les écouter si vous êtes fragile moralement en ce moment (déprime après l'élection de Donald J. Trump, perte de l'être aimé, etc.): je ne souhaite pas être responsable de votre fin de vie auto-organisée; la mélancolie est parfois une arme de destruction massive !</p>
<p>Triste année que 2016. D'abord David Bowie puis Michel Delpech, Prince et maintenant Leonard Cohen… S'il te plaît Charles, maintenant que tu as de la bonne musique, laisse encore quelques années aux autres "grands" de la chanson qui continuent à produire…</p>
<p>Restons néanmoins joyeux car Leonard a enfin rejoint Marianne; ces paroles prémonitoires sonnent maintenant mieux que jamais:</p>
<p><em>"Now so long, Marianne, it's time that we began<br>
To laugh and cry and cry and laugh about it all again…"</em></p><div><a href="https://linuxfr.org/users/medspx/journaux/leonard-cohen-rejoint-charles-bronson.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/110499/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/medspx/journaux/leonard-cohen-rejoint-charles-bronson#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/110499/comments.atomtag:linuxfr.org,2005:News/373822016-08-07T20:05:47+02:002018-09-16T11:55:16+02:00Sortie de QGIS 2.16 « Nødebo »Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Le projet QGIS a l’immense plaisir de vous annoncer la publication de la version 2.16 de sa suite logicielle de Système d’Information Géographique (SIG) libre.</p>
<p>QGIS est une suite logicielle de traitement de l’information géographique. Elle permet de générer des cartes, d’analyser des données spatiales et de les publier en ligne ou sur papier. Elle permet également de réaliser de nombreux traitements et d’appliquer différents algorithmes sur des données spatiales ou d’autres données liées. En d’autres termes, QGIS est un SIG ou <em>Système d’Information Géographique</em>, conçu pour recueillir, stocker, traiter, analyser, gérer et présenter tous les types de données spatiales et géographiques. C’est un projet officiel de la fondation <a href="http://www.osgeo.asso.fr/">Open Source Geospatial</a> (OSGeo). Il est disponible sur les systèmes d’exploitation GNU/Linux, Mac OS X, Windows et Android.</p>
<p>La version 2.16, nommée <em>Nødebo</em>, en hommage à <a href="https://en.wikipedia.org/wiki/N%C3%B8debo">la ville danoise éponyme</a>, est disponible depuis le 8 juillet 2016 (pour information, les noms des versions de QGIS sont basés sur les noms des villes qui accueillent <a href="https://www.qgis.org/fr/site/getinvolved/meetings/developer/index.html">les rencontres annuelles des développeurs</a>). Cette version est une version dite <em>courante</em> : elle sera supportée pendant quatre mois. La version LTR (<em>Long Term Release</em> : support à long terme) est la version 2.14 qui, à l’occasion de la sortie de la version courante, récupère un ensemble de corrections, intégrées dans la version 2.14.4. <em>Nødebo</em> sera sans doute la dernière version de la lignée 2.<em>x</em>, car le portage vers la version 3.0 avance correctement.</p>
<p>Dans la suite de la dépêche, un aperçu des nouveautés, issues des 2 447 <em>commits</em> depuis la dernière sortie, vous sera présenté plus en détail, ainsi que les plans actuels pour la future version 3. Pour le public non averti, nous vous invitons à lire le début de la <a href="//linuxfr.org/news/sortie-de-qgis-2-10-pisa">dépêche sur la sortie de QGIS 2.10</a> pour avoir un petit rappel sur les SIG et sur QGIS…</p>
<p>Bonne lecture !</p>
</div><ul><li>lien nᵒ 1 : <a title="https://qgis.org/fr/site/forusers/visualchangelog216/index.html" hreflang="fr" href="https://linuxfr.org/redirect/97511">Principales évolutions en images depuis la dernière version (en cours de traduction)</a></li><li>lien nᵒ 2 : <a title="https://qgis.org/fr/site/forusers/download.html" hreflang="fr" href="https://linuxfr.org/redirect/97512">Page de téléchargement du projet QGIS</a></li><li>lien nᵒ 3 : <a title="https://qgis.org/fr/site/index.html" hreflang="fr" href="https://linuxfr.org/redirect/97513">Site principal de QGIS</a></li><li>lien nᵒ 4 : <a title="https://github.com/qgis/QGIS" hreflang="en" href="https://linuxfr.org/redirect/97514">Dépôt git officiel des sources de QGIS</a></li><li>lien nᵒ 5 : <a title="https://github.com/qgis/qgis3.0_api/issues" hreflang="en" href="https://linuxfr.org/redirect/97515">Dépôt git officiel de la migration vers la version 3.0</a></li><li>lien nᵒ 6 : <a title="https://linuxfr.org/news/sortie-de-qgis-2-14-ltr-essen" hreflang="fr" href="https://linuxfr.org/redirect/97885">Dépêche précédente pour la sortie de QGIS 2.14 LTR « Essen »</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#toc-les-nouveaut%C3%A9s-notables-de-qgis-216">Les nouveautés notables de QGIS 2.16</a><ul>
<li>
<a href="#toc-du-c%C3%B4t%C3%A9-des-outils-de-cartographie">Du côté des outils de cartographie</a><ul>
<li><a href="#toc-le-dock-de-style">Le dock de style</a></li>
<li><a href="#toc-nouveau-moteur-de-rendu--aucun-symbole">Nouveau moteur de rendu : aucun symbole</a></li>
<li><a href="#toc-nouveau-type-de-symbole--lignes-de-fl%C3%A8ches">Nouveau type de symbole : lignes de flèches</a></li>
<li><a href="#toc-travail-sur-lergonomie-de-linterface">Travail sur l’ergonomie de l’interface</a></li>
</ul>
</li>
<li>
<a href="#toc-du-c%C3%B4t%C3%A9-de-la-table-des-attributs">Du côté de la table des attributs</a><ul>
<li><a href="#toc-nouvelles-options-dagencement-de-la-table-attributaire">Nouvelles options d'agencement de la table attributaire</a></li>
<li><a href="#toc-formulaire-de-recherche">Formulaire de recherche</a></li>
<li><a href="#toc-autres-nouveaut%C3%A9s-de-la-table-dattributs">Autres nouveautés de la table d'attributs</a></li>
</ul>
</li>
<li>
<a href="#toc-fournisseurs-de-donn%C3%A9es">Fournisseurs de données</a><ul>
<li><a href="#toc-cr%C3%A9ation-de-couches-au-standard-geopackage">Création de couches au standard GeoPackage</a></li>
<li><a href="#toc-connecteur-aux-services-arcgis-rest">Connecteur aux services ArcGIS REST</a></li>
<li><a href="#toc-refonte-du-connecteur-wfs">Refonte du connecteur WFS</a></li>
<li><a href="#toc-sauvegarde-des-styles-des-couches-en-base-de-donn%C3%A9es-pour-oracle-et-ms-sql-server">Sauvegarde des styles des couches en base de données pour Oracle et MS-SQL Server</a></li>
</ul>
</li>
<li>
<a href="#toc-%C3%80-propos-des-formulaires-de-saisie">À propos des formulaires de saisie</a><ul>
<li><a href="#toc-%C3%89ditions-multiples">Éditions multiples</a></li>
<li><a href="#toc-contraintes-de-saisie">Contraintes de saisie</a></li>
</ul>
</li>
<li>
<a href="#toc-documentation">Documentation</a><ul>
<li><a href="#toc-toute-la-doc-est-faite-">Toute la doc est faite ;-)</a></li>
<li><a href="#toc-lapi-dauthentification-s%C3%A9curis%C3%A9e-est-compl%C3%A8tement-document%C3%A9e">L'API d'authentification sécurisée est complètement documentée.</a></li>
</ul>
</li>
<li>
<a href="#toc-rasters">Rasters</a><ul>
<li><a href="#toc-nouveau-rendu-pour-les-mne">Nouveau rendu pour les MNE</a></li>
<li><a href="#toc-classification-bas%C3%A9e-sur-les-quantiles">Classification basée sur les quantiles</a></li>
</ul>
</li>
<li>
<a href="#toc-saisie-g%C3%A9om%C3%A9trique">Saisie géométrique</a><ul>
<li><a href="#toc-couches-en-lecture-seule-dans-le-projet">Couches en lecture seule (dans le projet)</a></li>
</ul>
</li>
<li>
<a href="#toc-expressions">Expressions</a><ul>
<li><a href="#toc-utilisation-de-param%C3%A8tres-nomm%C3%A9s">Utilisation de paramètres nommés</a></li>
<li><a href="#toc-am%C3%A9lioration-des-fonctions-de-calcul-de-dates-et-dintervalles-de-temps">Amélioration des fonctions de calcul de dates et d'intervalles de temps</a></li>
<li><a href="#toc-fonctions-dagr%C3%A9gation">Fonctions d'agrégation</a></li>
</ul>
</li>
<li>
<a href="#toc-traitements">Traitements</a><ul>
<li><a href="#toc-suppression-de-ftools">Suppression de fTools</a></li>
<li><a href="#toc-grass7">GRASS7</a></li>
<li><a href="#toc-gestion-de-l%C3%A9criture-de-tables-sans-g%C3%A9om%C3%A9tries">Gestion de l'écriture de tables sans géométries</a></li>
<li><a href="#toc-support-des-expressions-dans-les-entr%C3%A9es-des-traitements">Support des expressions dans les entrées des traitements</a></li>
</ul>
</li>
<li>
<a href="#toc-composeur-dimpression">Composeur d'impression</a><ul>
<li><a href="#toc-dessins-de-formes--polygonespolylignes">Dessins de formes : polygones/polylignes</a></li>
<li><a href="#toc-g%C3%A9or%C3%A9f%C3%A9rencement-des-cartes-en-sortie-dimpression-par-d%C3%A9faut">Géoréférencement des cartes en sortie d'impression par défaut</a></li>
</ul>
</li>
<li>
<a href="#toc-plugins-ou-extensions">Plugins ou extensions</a><ul>
<li><a href="#toc-refonte-du-plugin-globe">Refonte du plugin Globe</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#toc-informations-sur-la-version-30">Informations sur la version 3.0</a><ul>
<li><a href="#toc-informations-g%C3%A9n%C3%A9rales">Informations générales</a></li>
<li><a href="#toc-tester-la-version-30-de-d%C3%A9veloppement">Tester la version 3.0 de développement</a></li>
<li><a href="#toc-le-m%C3%A9canisme-de-conversion-des-plugins-core">Le mécanisme de conversion des plugins "core"</a></li>
</ul>
</li>
<li><a href="#toc-conclusions">Conclusions</a></li>
</ul>
<h2 id="toc-les-nouveautés-notables-de-qgis-216">Les nouveautés notables de QGIS 2.16</h2>
<p>Voici une petite sélection des nouveautés de la version 2.16 de QGIS. Si vous voulez découvrir l’intégralité des évolutions, nous vous invitons à consulter <a href="https://qgis.org/fr/site/forusers/visualchangelog216/index.html">la page des changements en images</a> qui est vraiment très complète et qui a l’avantage d’être traduite en français (du moins, d'ici quelques temps).</p>
<h3 id="toc-du-côté-des-outils-de-cartographie">Du côté des outils de cartographie</h3>
<h4 id="toc-le-dock-de-style">Le dock de style</h4>
<p>Commençons par une nouvelle fonctionnalité qui va fortement améliorer la productivité des cartographes : le dock de style.<br>
Jusqu’à présent, lorsque vous vouliez modifier le style d’une couche, vous deviez ouvrir la fenêtre des propriétés de la couche, aller dans l’onglet réservé aux styles et paramétrer vos options pour obtenir le rendu final. C’est une tâche relativement courante lorsqu’on fait de la cartographie et l’onglet des styles est probablement celui qui est le plus utilisé dans QGIS, avec ce qui permet de charger des couches dans le projet en cours.</p>
<p>Le problème majeur est que la fenêtre des propriétés de la couche est modale : il s’agit d’une fenêtre flottante qu’il faut valider (en appuyant sur le bouton <code>Ok</code> ou le bouton <code>Appliquer</code>) pour voir les résultats de vos travaux. Néanmoins, la fenêtre des styles a tendance à occuper une surface de plus en plus grande, du fait des très nombreuses options possibles et du grand nombre de moteurs de rendu existants dans QGIS. Ainsi, bien souvent, il faut fermer cette fenêtre pour voir les résultats et rien de ce que vous faites n’est visible en direct. Étant donné qu’il est assez rare de savoir comment représenter les données géographiques du premier coup, la création d’un style complet demande de nombreuses modifications ponctuelles (non, finalement, la couleur ne va pas ! Et si j’augmentais la largeur de la bordure ? En fait, je vais plutôt mettre un symbole de police plutôt qu’un symbole SVG, etc.) Cela revient à ouvrir et fermer la fenêtre de style très souvent ce qui fait perdre du temps.</p>
<p>Pour régler ce problème, QGIS 2.16 propose maintenant un dock de style. Ce dock est déplaçable où vous voulez sur votre écran, vous pouvez l’accrocher où bon vous semble, voire le déporter sur un autre écran. Il est physiquement toujours présent même si on peut le masquer complètement. Ainsi, plus besoin d’ouvrir et de fermer la fenêtre des propriétés de la couche. Un vrai gain de temps en perspective.</p>
<p>Autre avancée majeure : la mise à jour en direct. Cette option du dock permet de voir tout changement de style directement s’appliquer sur votre fenêtre de carte sans avoir besoin de cliquer sur le bouton <code>Appliquer</code>. Cela permet vraiment de voir l’impact de tout changement, même insignifiant, en direct.</p>
<p>Pour terminer le dock de style fonctionne également sur les styles multiples ainsi que sur les étiquettes. Il est bien entendu possible de revenir en arrière car le dock conserve l’historique de toutes les manipulations. Il est donc très facile de revenir plusieurs points en arrière et reprendre une création de style à partir d’un état précédent, sans devoir tout recommencer depuis le début.</p>
<p>Le dock de style va donc permettre aux cartographes de gagner un temps précieux et d’avoir une meilleure réactivité sur leur travail de composition. C’est une vraie avancée tant sur le plan de l’efficacité que de l’ergonomie. Pour ma part, je ne pourrais plus faire sans.</p>
<p>Pour vous en convaincre, voici un exemple de fonctionnement :<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f393233383965343735306436336333383432323836666134336665356566323231346637633664642e676966/92389e4750d63c3842286fa43fe5ef2214f7c6dd.gif" alt="Dock de style" title="Source : https://qgis.org/en/_images/92389e4750d63c3842286fa43fe5ef2214f7c6dd.gif"></p>
<h4 id="toc-nouveau-moteur-de-rendu--aucun-symbole">Nouveau moteur de rendu : aucun symbole</h4>
<p>QGIS continue d'innover dans les moteurs de rendu. Cette désignation indique les grandes familles de rendu d’une symbologie de couches. Globalement, il s'agit des méthodes de base permettant d'appliquer un ou plusieurs styles différents à des couches de polygones/de lignes/de points ou de raster. C'est un des composants les plus utilisés dans QGIS puisque dès qu'on souhaite élaborer une carte, on passe par lui. On compte maintenant une petite dizaine de moteurs de rendus différents, allant de la représentation unique pour tous les objets de la couche à la carte de chaleur en passant par le rendu 2.5D (présenté dans la dernière dépêche sur QGIS 2.14). Ce qui fait de QGIS sans doute le SIG le plus riche pour la représentation cartographique.</p>
<p>Pour la version 2.16, le moteur de rendu dit "Aucun symbole" est très simple : il permet de ne pas représenter les objets de la couche sur laquelle il est appliqué. Quel est donc son intérêt alors ? </p>
<p>Ce moteur de rendu sert essentiellement pour gérer ce qu'on appelle des "couches d'étiquettes". En effet, en plus des symboles d'objets géographiques, on peut représenter également des étiquettes ainsi que des diagrammes qui sont des objets générés, quasi-indépendants des objets géographiques (ils sont généralement positionnés au-dessus de leur objet géographique respectif mais ce n'est pas forcément obligatoire). Ainsi, pour les couches sans symbologie, apparaîtront uniquement les étiquettes et les diagrammes. Cela peut être intéressant si vous avez constitué une couche de points, dédiée à l'affichage de certaines étiquettes (les étiquettes seront positionnées au-dessus des points) et que vous ne voulez pas représenter les points. Cette situation est parfois nécessaire lorsqu'on souhaite positionner manuellement des étiquettes dans l'objectif d'avoir un rendu vraiment parfait (à une échelle donnée), lorsque le placement automatique des étiquettes ne donne pas satisfaction.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f346530323639316236343434366635613336663466616633636334393036373236636635376161642e706e672e343030783330305f7138355f63726f702e706e67/4e02691b64446f5a36f4faf3cc4906726cf57aad.png.400x300_q85_crop.png" alt="Moteur de rendu sans symbologie" title="Source : https://qgis.org/en/_images/4e02691b64446f5a36f4faf3cc4906726cf57aad.png.400x300_q85_crop.png"></p>
<h4 id="toc-nouveau-type-de-symbole--lignes-de-flèches">Nouveau type de symbole : lignes de flèches</h4>
<p>Les moteurs de rendu forment les familles de représentation. Chaque moteur de rendu propose de créer des styles spécifiques en utilisant des symboles qui peuvent prendre plusieurs types différents. Par exemple, pour styler une couche de polygones, on peut choisir d'utiliser un type de remplissage simple (formé à partir d'une couleur de remplissage ainsi que d'une bordure de largeur et de couleur données). On peut également utiliser un remplissage par motif (formé à partir d'une géométrie qui sert de motif) ou encore un remplissage dégradé, ou également choisir de ne représenter que la bordure pouvant elle-même être composée de plusieurs symboles de points différents. Ces ensembles de styles sont appelés types de symboles et ils sont bien entendu combinables entre-eux (jusqu'à quasiment l'infini).</p>
<p>Régulièrement, QGIS introduit de nouveaux types de symboles. C'est le cas pour cette version avec le type lignes de flèches qui permet de générer des flèches dans des styles variés pour tout objet linéaire (donc les polylignes mais également les bordures de polygones).</p>
<p>Deux modes sont présents :</p>
<ul>
<li>Les flèches linéaires: elles permettent de dessiner une flèche en suivant les segments d'un objet linéaire.</li>
<li>Les flèches courbes: elles permettent de dessiner une flèche entre deux points avec une forme incurvée.</li>
</ul>
<p>Ce type de symbole permet de simplifier la représentation des segments linéaires avec un sens de direction. C'est très pratique pour générer des cheminements avec un sens (représenter les rues en sens unique par exemple). On peut bien entendu également disposer d'une seule flèche linéaire pour l'objet linéaire.<br>
Les flèches courbes peuvent être utilisées pour représenter des flux d'un point à l'autre, sans forcément suivre une ligne droite. C'est très pratique pour représenter des flux entre deux points, dont la largeur de flèche est proportionnelle à la masse déplacée.</p>
<p>En outre, il est combinable avec l'ensemble des autres type de symboles de QGIS ainsi qu'avec des expressions car les flèches sont des objets surfaciques. On peut donc par exemple dessiner des flèches avec un gradient de couleur en guise de remplissage, dont la taille de la pointe est dépendante de la valeur d'un attribut.</p>
<p>Voici un exemple de réalisation où on voit bien les différentes formes possibles, ainsi que les options disponibles :<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f303030636337383237666539366161373261656462363436653634393763633639613035303339362e706e672e343030783330305f7138355f63726f702e706e67/000cc7827fe96aa72aedb646e6497cc69a050396.png.400x300_q85_crop.png" alt="formes possibles" title="Source : https://qgis.org/en/_images/000cc7827fe96aa72aedb646e6497cc69a050396.png.400x300_q85_crop.png"></p>
<h4 id="toc-travail-sur-lergonomie-de-linterface">Travail sur l’ergonomie de l’interface</h4>
<p>Quelques nouveautés permettent d'améliorer l'ergonomie de l'interface sur la partie cartographie de QGIS.</p>
<p>Comme premier point, on peut noter une amélioration de la finesse de zoom lorsqu'on utilise la molette de la souris (utilisée pour zoomer/dézoomer) en appuyant sur la touche Ctrl. Cela permet de zoomer/dézoomer "moins vite" en diminuant l'écart entre les deux échelles.</p>
<p>Par ailleurs, il existe maintenant une fonction de loupe qui permet de grossir l'image du rendu de carte à une échelle donnée. Cela permet de grossir certains éléments ; par exemple, des étiquettes avec une taille de police basse pour pouvoir mieux les placer manuellement. L'intérêt de la loupe est qu'elle ne modifie pas l'échelle et donc il n'y a pas besoin d'effectuer un rendu graphique lorsqu'on l'utilise. Si vous avez une carte avec de nombreux détails, vous pouvez agrandir l'image sans devoir relancer de lourds calculs qui prendraient du temps.</p>
<p>Du côté de la gestion des rampes de couleur (utilisées pour les gradients de couleur), QGIS présentait déjà une boîte de dialogue vraiment complète, permettant de créer ou de modifier des rampes de couleur de manière interactive. La boîte de dialogue présente maintenant une meilleure ergonomie avec la possibilité de déplacer directement les arrêts de couleur, de les supprimer directement, de les créer par un simple double-clic.</p>
<p>En ce qui concerne les écrans à très grande résolution (4k), QGIS utilise maintenant uniquement des icônes SVG pour ses barres d'outils. L'intérêt est de pouvoir les représenter avec une dimension adaptée à l'écran (auparavant certaines icônes étaient uniquement en bitmap, avec une taille fixe, paramétrable mais sans doute pas assez grosse pour les écrans à haute résolution).</p>
<p>Enfin, on notera une amélioration des options de sélection des entités géographiques sur le canevas de carte:</p>
<ul>
<li>Sur les sélections à un seul clic, maintenir Shift ou Ctrl permet de sélectionner/désélectionner l'entité.</li>
<li>Sur les sélections par emprise (cliquer + déplacer):
<ul>
<li>Maintenir Shift permet d'ajouter à la sélection courante.</li>
<li>Maintenir Ctrl permet de retirer de la sélection courante.</li>
<li>Maintenir Alt permet de sélectionner les entités qui sont situées en intégralité dans l'emprise de sélection (si vous sélectionnez un objet qui intersecte une partie de l'emprise de sélection, il ne sera pas sélectionné).</li>
</ul>
</li>
</ul>
<p>Ces mécanismes sont également intégrés au composeur de cartes.</p>
<p>Voici une illustration de la boîte de dialogue des rampes de couleur :<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f646361353537343336333932636635316530356130633737666139313562356539343031336432632e676966/dca557436392cf51e05a0c77fa915b5e94013d2c.gif" alt="Gradient de couleur" title="Source : https://qgis.org/en/_images/dca557436392cf51e05a0c77fa915b5e94013d2c.gif"></p>
<h3 id="toc-du-côté-de-la-table-des-attributs">Du côté de la table des attributs</h3>
<p>Un des principes de base du SIG est de combiner formes géographiques et attributs alphanumériques. Ces attributs permettent de qualifier les objets spatiaux représentés sur la carte. Par exemple, si vous avez une couche d'arbre, vous pouvez stocker l'espèce de l'arbre dans un attribut de la table ou encore, sa hauteur dans un autre attribut. Comprenez que la géométrie d'un objet n'est qu'un attribut parmi tant d'autres qui a la particularité d'être représenté différemment d'un texte ou d'un chiffre.</p>
<p>Dans cette version de QGIS, de nombreuses améliorations ont été ajoutées dans la table des attributs. C'est ce que nous allons voir dès maintenant…</p>
<h4 id="toc-nouvelles-options-dagencement-de-la-table-attributaire">Nouvelles options d'agencement de la table attributaire</h4>
<p>C'est une fonctionnalité longtemps attendue dans QGIS : on peut maintenant manipuler la table attributaire comme dans n'importe quel logiciel de tableur (comme LibreOffice Calc) :</p>
<ul>
<li>Il est possible de masquer/afficher certaines colonnes.</li>
<li>On peut effectuer des tris multiples sur une ou plusieurs colonnes.</li>
<li>On peut changer l'ordre d'affichage des colonnes.</li>
<li>QGIS conserve (dans le fichier de projet) la largeur de colonne que vous avez configurée (pour chaque colonne).</li>
</ul>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f346163383634373331363363306231653332323334336465316534303133323632633234393263652e676966/4ac86473163c0b1e322343de1e4013262c2492ce.gif" alt="Masquer une colonne" title="Source : https://qgis.org/en/_images/4ac86473163c0b1e322343de1e4013262c2492ce.gif"></p>
<h4 id="toc-formulaire-de-recherche">Formulaire de recherche</h4>
<p>La table d'attributs présente maintenant trois modes d'affichage :</p>
<ul>
<li>le mode table qui permet de présenter les données sous forme tabulaire (comme dans LibreOffice Calc).</li>
<li>le mode formulaire qui permet de présenter les données sous forme de formulaire rempli avec les données (un seul objet est affiché).</li>
<li>il existe maintenant un nouveau mode : le <em>formulaire de recherche</em> qui permet d'utiliser le formulaire pour faire des recherches.</li>
</ul>
<p>Avant ce mode formulaire de recherche, il fallait passer par le moteur d'expression (cette fonctionnalité est toujours disponible) et créer une « requête d'expression », bien plus complexe (mais plus puissante) pour les utilisateurs débutants. Maintenant, ils disposent d'un formulaire simple leur permettant de sélectionner les objets qui correspondent à un ou plusieurs attributs.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f343831353936393231646433653433326362343431346234326531376663653665376439653834632e676966/481596921dd3e432cb4414b42e17fce6e7d9e84c.gif" alt="Formulaire de recherche" title="Source : https://qgis.org/en/_images/481596921dd3e432cb4414b42e17fce6e7d9e84c.gif"></p>
<h4 id="toc-autres-nouveautés-de-la-table-dattributs">Autres nouveautés de la table d'attributs</h4>
<ul>
<li>Vous pouvez paramétrer la table d'attributs pour qu'elle s'affiche dans le mode de votre choix (stocké dans les paramètres de QGIS).</li>
<li>Le mode formulaire permet maintenant de faire des filtres (sur n'importe quelle colonne), ce qui permet de limiter les objets listés à votre choix</li>
<li>Autre point en évolution : auparavant, pour copier la valeur d'un attribut, il fallait se mettre en mode édition (modification des données) et faire un copier. Maintenant, il suffit de faire un clic-droit et de sélectionner l'entrée de sous-menu : <em>Copier le contenu de la cellule</em>.</li>
</ul>
<h3 id="toc-fournisseurs-de-données">Fournisseurs de données</h3>
<p>Les fournisseurs de données sont les éléments de base de QGIS permettant de lire et écrire les données depuis divers formats. On en dénombre maintenant une quinzaine ce qui fait de QGIS l'un des SIG les plus interopérables qui soit. Par ailleurs, et c'est là une particularité de QGIS par rapport aux autres SIG (propriétaires et libres) : QGIS ne dispose pas d'un format interne pour stocker des données (QGIS dispose de formats « internes » pour tout le reste : projets/styles/métadonnées/etc.) et c'est tant mieux. D'abord, cela permet de dire que QGIS ne suit pas <a href="https://xkcd.com/927/">la règle XKCD sur les formats</a>. En outre, cela permet de se focaliser sur les méthodes de connexion et non sur la maintenance d'un nouveau format.</p>
<p>Car il faut bien retenir que le nombre de formats SIG existants est au moins aussi grand que ce qu'on peut rencontrer dans les formats bureautiques. Un exemple flagrant est que très tôt (il y a plus de quinze ans), une bibliothèque dédiée à la gestion des formats SIG existants a été développée. Il s'agit de GDAL (avec son compagnon OGR pour les objets vectoriels). Cette bibliothèque gère aujourd'hui un peu plus de 220 formats différents ! (<em>WTF !!!??? OMG Ponies 11!!1111!!!</em>)</p>
<h4 id="toc-création-de-couches-au-standard-geopackage">Création de couches au standard GeoPackage</h4>
<p>Dans le monde des SIG, il existe un standard de fait, assez ancien qui se nomme <a href="https://fr.wikipedia.org/wiki/Shapefile">ESRI Shapefile</a>. C'est un format propriétaire dont les spécifications sont à peu près ouvertes. Il a été créé par ESRI, l'actuel <em>leader</em> mondial des solutions SIG avec son produit ArcGIS si cher, mais pas seulement… De nombreux logiciels de SIG sont capables de lire et écrire dans ce format. Néanmoins ce dernier présente plusieurs inconvénients :</p>
<ul>
<li>Il est assez ancien (bon, on s'en fout, tant que ça marche) !</li>
<li>Les noms de champs ne peuvent pas avoir une longueur supérieure à 10 caractères (une vraie limite en 2016).</li>
<li>Les champs de type texte ne peuvent pas contenir plus de 255 caractères (une autre vraie limite).</li>
<li>Les polygones sont forcément orientés dans le sens des aiguilles d'une montre.</li>
<li>ESRI propose un autre format (GéoDatabase fichier) depuis près d'une dizaine d'années.</li>
<li>Il ne permet de stocker qu'une seule couche.</li>
<li>Il ne gère que des vecteurs.</li>
</ul>
<p>Pour améliorer la situation, l'<a href="https://fr.wikipedia.org/wiki/Open_Geospatial_Consortium">OGC</a> a lancé une étude d'un nouveau format pour remplacer ce standard <em>de facto</em> par une alternative ouverte et plus moderne. Cette étude a conclu à la création du format <a href="http://www.geopackage.org/">GeoPackage</a> qui présente les particularités suivantes :</p>
<ul>
<li>La spécification est ouverte.</li>
<li>Il permet de stocker une archive de couches.</li>
<li>Il est basé sur SQLite.</li>
<li>Il gère des couches vecteurs et rasters.</li>
<li>Il peut évoluer dans le temps grâce à un mécanisme d'extensions.</li>
</ul>
<p>QGIS 2.16 facilite la création de fichiers GeoPackage en gérant ce format directement depuis l'interface d'enregistrement des couches: par la barre d'outils des couches ou par le sous-menu Couche -> Enregistrer sous…</p>
<p>Je vous invite fortement à utiliser ce format plutôt que le traditionnel Shape pour toutes les bonnes raisons évoquées plus haut.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f333463666234613435333234363461623139383365353631323238613961313664313664666435342e706e672e343030783330305f7138355f63726f702e706e67/34cfb4a4532464ab1983e561228a9a16d16dfd54.png.400x300_q85_crop.png" alt="GeoPackage" title="Source : https://qgis.org/en/_images/34cfb4a4532464ab1983e561228a9a16d16dfd54.png.400x300_q85_crop.png"></p>
<h4 id="toc-connecteur-aux-services-arcgis-rest">Connecteur aux services ArcGIS REST</h4>
<p>QGIS permet maintenant de se connecter à des services de cartes <a href="https://www.arcgis.com/features/index.html">ArcGIS</a>. Ces services sont l’équivalent des services web OGC <a href="https://fr.wikipedia.org/wiki/Web_Map_Service">WMS</a> <em>Web Map Service</em>, et <a href="https://fr.wikipedia.org/wiki/Web_Feature_Service">WFS</a> <em>Web Feature Service</em>, dans le standard propriétaire de l’éditeur ESRI. Les deux types de services suivants sont gérés :</p>
<ul>
<li>
<strong>ArcGIS Map Service</strong> : service qui sert des rasters depuis un serveur Web.</li>
<li>
<strong>ArcGIS Feature Service</strong> : service qui sert des entités géométriques (vectorielles) depuis un serveur Web (équivalent à WFS).</li>
</ul>
<p>À partir de QGIS, il est donc maintenant possible d’attaquer ces services, en lecture seule pour le moment. Cette fonctionnalité permet d’envisager plus sereinement la migration d’une infrastructure ESRI vers QGIS. En effet, on peut déployer QGIS sur les postes bureautique sans devoir abandonner tout de suite les services web qui ont forcément pris du temps à être élaborés, donnant un peu plus de temps pour envisager la migration de la partie serveur (par QGIS Server ou un autre serveur de cartes comme <a href="http://mapserver.org/fr/">MapServer</a> ou <a href="http://geoserver.org/">GeoServer</a>).</p>
<h4 id="toc-refonte-du-connecteur-wfs">Refonte du connecteur WFS</h4>
<p>QGIS gère les services <a href="https://fr.wikipedia.org/wiki/Web_Feature_Service">WFS</a> depuis de nombreuses années. Ces services web permettent de récupérer des couches géographiques vectorielles (points/lignes/polygones) depuis un serveur situé sur le web et qui gère le protocole WFS. Ce dernier est un protocole normé par l'OGC.</p>
<p>WFS est très souvent mis en place par des structures institutionnelles pour faciliter la diffusion de leurs données publiques en accès direct (par exemple <a href="http://www.craig.fr/contenu/361-flux-wmswfs">le Centre Régional Auvergnat de l'Information Géographique a des flux WMS/WFS publics</a>). Grâce à ce protocole on gagne souvent beaucoup de temps car il n'y a plus besoin de télécharger une couche sur sa station de travail pour en utiliser les données. Tout se passe directement depuis le client qui va chercher les données pour vous. De plus, les données sont souvent directement à jour : pas besoin de s'embêter de savoir si on a bien la donnée la plus à jour possible (et refaire le téléchargement manuel).</p>
<p>Néanmoins, avec le temps, le connecteur natif de QGIS est resté tel quel, avec de nombreux bugs. Par ailleurs, le standard WFS a évolué avec le temps, notamment avec la publication des versions 1.1 et 2.0 du protocole, en ajoutant des fonctionnalités. Il était donc temps de le mettre au goût du jour, sachant que de plus en plus de données sont disponibles via les plate-formes WEB SIG.</p>
<p>Voici la liste des évolutions apportées dans la version 2.16 de QGIS :</p>
<ul>
<li>Autodétection de la version du protocole WFS.</li>
<li>Mise en cache des entités téléchargées sur disque.</li>
<li>Prise en charge de l'interface de connexion sécurisée pour les accès requérant un login/mot de passe (les informations de connexion sont stockées dans une base de données locale sécurisée et chiffrée par un mot de passe principal).</li>
<li>Téléchargement en tâche de fond et rendu progressif (ne bloque pas l'interface graphique pendant le chargement).</li>
<li>Gestion des protocoles WFS 1.1 et 2.0 (auparavant, seul le protocole WFS 1.0 était géré).</li>
<li>Gestion de la pagination des requêtes WFS 2.0 GetFeature.</li>
<li>Ajout de tests unitaires sur le fournisseur de données (le pilote WFS).</li>
<li>Gestion des jointures de couches/tables (fonctionnalité de WFS 2.0).</li>
<li>Paramètres de l'URI pour gérer les clauses SQL SELECT / FROM / JOIN / WHERE / ORDER BY.</li>
<li>Gestion des champs stockant des données de date.</li>
<li>Activation de l'option « Requêter uniquement les entités qui intersectent la vue courante » par défaut.settings.</li>
<li>Gestion de types géométriques particuliers : CurvePolygon (polygones courbes) et CompoundCurve (courbes multiples).</li>
<li>Amélioration de la gestion des serveurs WFS non conformes (qui ne respectent pas 100% du standard).</li>
</ul>
<p>Le connecteur gère également le cache des entités ce qui évite de recharger toutes les entités lors du déplacement sur la carte.</p>
<p>C'est donc plutôt une bonne avancée qui va permettre aux utilisateurs de QGIS d'utiliser de plus en plus de flux de données, issus de différents partenaires, d'une manière plus simple que la méthode traditionnelle de téléchargement manuel d'archives compressées.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f643639663263633266636335396232366438333062623834633832643565366339643839626561652e706e672e343030783330305f7138355f63726f702e706e67/d69f2cc2fcc59b26d830bb84c82d5e6c9d89beae.png.400x300_q85_crop.png" alt="Connecteur WFS" title="Source : https://qgis.org/en/_images/d69f2cc2fcc59b26d830bb84c82d5e6c9d89beae.png.400x300_q85_crop.png"></p>
<h4 id="toc-sauvegarde-des-styles-des-couches-en-base-de-données-pour-oracle-et-ms-sql-server">Sauvegarde des styles des couches en base de données pour Oracle et MS-SQL Server</h4>
<p>Dans un SIG, la manière de représenter une donnée n'est généralement pas stockée en même temps que les données. En règle générale, le style de chaque couche a tendance à changer pour chaque projet cartographique donc il n'est généralement pas pertinent de stocker ce style dans autre chose que le conteneur du projet cartographique. De plus, stocker le style dans les données amène une certaine confusion chez les utilisateurs débutants qui peuvent être amenés à ne pas utiliser les fonctions de représentation automatique du moteur carto du logiciel de SIG mais de styler individuellement chaque objet géographique (ce qui est MAL !).</p>
<p>Néanmoins, dans certaines situations, on peut vouloir créer un style par défaut ou une collection de styles pré-définis pour une couche si on sait qu'on doit souvent faire la même chose avec les données. QGIS permet de stocker des styles dans des fichiers externes :</p>
<ul>
<li>les fichiers QLR englobent référence vers la donnée et style</li>
<li> et QML stocke un style pur, indépendamment de la couche. </li>
</ul>
<p>Depuis la version 2.0, QGIS offre la possibilité de stocker les styles des couches PostGIS directement en base de données à l'aide d'une table spécifique, propre à QGIS.</p>
<p>Avec la version 2.16, QGIS offre cette fonctionnalité pour les bases Oracle Spatial (qui double généralement le prix de l'instance) et MS-SQL Server. Le principe est le même que pour PostGIS : une table dédiée doit être créée en base de données. Une fois référencée, on peut alors choisir d'enregistrer un ou plusieurs styles suivant le nom de la couche géographique dans la base de données. L'interface de QGIS récupère automatiquement ces styles et propose à l'utilisateur une liste de choix (l'utilisateur reste bien entendu libre de créer son propre style de zéro (<em>from scratch</em>) et indépendamment des styles stockés en base de données).</p>
<h3 id="toc-À-propos-des-formulaires-de-saisie">À propos des formulaires de saisie</h3>
<p>Les formulaires de saisie permettent de saisir/modifier les données attributaires une fois que vous avez ajouté un objet géométrique. C'est l'un des fleurons de QGIS tant la richesse de cette partie de QGIS est riche. Avec de bons formulaires de saisie, on peut tout à fait créer une véritable application de saisie métier complètement assistée et pertinente par rapport au contexte. QGIS 2.16 continue encore d'améliorer les formulaires avec les nouveautés qui suivent…</p>
<h4 id="toc-Éditions-multiples">Éditions multiples</h4>
<p>Une autre nouveauté d'ampleur va permettre un gain substantiel de productivité pour les utilisateurs qui doivent saisir des données qui se répètent fréquemment pour certains attributs: QGIS 2.16 permet l'édition multiple de données attributaires.</p>
<p>Il existe maintenant un outil spécifique de "saisie attributaire multiple" qui ouvre un formulaire de saisie spécial. Ce dernier applique les valeurs d'attributs saisies à l'ensemble des entités sélectionnées.</p>
<p>Concrètement, si vous avez une couche d'arbre, vous pouvez sélectionner tous les points dont vous savez qu'ils sont des chênes (manuellement ou avec une requête adaptée) et modifier la valeur du champ "caduque" à True pour l'ensemble de la sélection. Cela permet de gagner vraiment du temps (on n'est pas obligé de passer chaque objet en revue) et de s'assurer que la saisie attributaire est homogène.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f643064383634626563386432656335626431666131326534386164373236386133303435356338322e676966/d0d864bec8d2ec5bd1fa12e48ad7268a30455c82.gif" alt="Édition multiple des attributs" title="Source : https://qgis.org/en/_images/d0d864bec8d2ec5bd1fa12e48ad7268a30455c82.gif"></p>
<h4 id="toc-contraintes-de-saisie">Contraintes de saisie</h4>
<p>Ce nouvel élément permet de s'assurer que la saisie des attributs sera conforme à une ou plusieurs règles. D'abord, il est possible d'indiquer qu'un champ doit être non nul, indépendamment de ce qui est indiqué dans le stockage sous-jacent (une contrainte NOT NULL dans une base de données par exemple).</p>
<p>Pour aller plus loin, il est maintenant possible d'indiquer pour chaque champ une contrainte de saisie. La grammaire des contraintes est basée sur les expressions QGIS, ce qui permet une richesse de contrainte quasiment infinie. On peut donc indiquer qu'une valeur numérique doit être comprise entre telle et telle valeur ou que le contenu d'un texte doit satisfaire une expression rationnelle.</p>
<p>Lorsque le champ n'est pas conforme à la contrainte, la couleur de fond de l'élément de saisie est en rouge ce qui permet à l'utilisateur d'identifier facilement et visuellement que sa saisie n'est pas conforme (l'affichage est bien sûr dynamique). Chaque élément de saisie dispose d'un conseil (<em>ToolTip</em>) indiquant ce qui ne va pas. On peut même faire afficher un message personnalisé pour décrire ce qui ne va pas.</p>
<p>Enfin, il y a une barre d'affichage en haut du formulaire qui récapitule ce qui ne va pas. Voici un exemple de formulaire avec contrainte:<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f616235363262373130313562323962313761366238366538653363356637313833386532356435302e706e672e343030783330305f7138355f63726f702e706e67/ab562b71015b29b17a6b86e8e3c5f71838e25d50.png.400x300_q85_crop.png" alt="Contrainte de saisie" title="Source : https://qgis.org/en/_images/ab562b71015b29b17a6b86e8e3c5f71838e25d50.png.400x300_q85_crop.png"></p>
<h3 id="toc-documentation">Documentation</h3>
<p>Pour une fois, parlons d'autre chose que du code ou de nouvelles fonctionnalités : parlons de la documentation ! Comme vous avez pu le remarquer au cours des dernières dépêches, QGIS est un logiciel complet, complexe et qui fait face à un grand nombre de publications de nouvelles fonctionnalités. C'est justement pour toutes ces raisons qu'un logiciel de ce type gagne à être bien documenté, ne serait-ce que pour que ses utilisateurs ne soient pas pris au dépourvu.</p>
<p>Voyons quelles sont les évolutions sur ce point…</p>
<h4 id="toc-toute-la-doc-est-faite-">Toute la doc est faite ;-)</h4>
<p>L'équipe en charge de la documentation s'est bien déchirée sur cette version 2.16. En effet, elle a réussi, via un système de création de tickets automatiques (via GitHub) pour chaque nouvelle fonctionnalité à fournir suffisamment de travail pour documenter chaque point lié à chaque ticket. On peut maintenant dire que la documentation de la version LTR (la version 2.14) est complète, tout du moins quasiment exhaustive. Le choix de se focaliser sur la version LTR est facilement compréhensible: autant se concentrer sur la version qui a le plus de chances d'être déployée en environnement de production…</p>
<p>Vous pouvez consulter la documentation du manuel de l'utilisateur à partir de cette page. Attention, il est vraisemblable qu'elle ne soit pas traduite complètement en français (mais il n'y a aucun problème pour que <a href="https://www.transifex.com/QGIS">votre participation soit bien prise en charge</a>…)</p>
<p>Rendons-donc hommage à la vénérable équipe en charge de la documentation qui a réalisé un travail d'un grand intérêt pour les utilisateurs finaux qui pourront enfin disposer d'une documentation complète de chaque fonctionnalité introduite dans QGIS depuis la version 2.10, jusqu'à la version 2.14.</p>
<h4 id="toc-lapi-dauthentification-sécurisée-est-complètement-documentée">L'API d'authentification sécurisée est complètement documentée.</h4>
<p>Introduite dans la version 2.12 de QGIS, l'authentification sécurisée permet de stocker de manière sécurisée l'ensemble des comptes/mots de passe ou certificats clients utilisés pour se connecter à diverses bases de données ou à divers services web. L'authentification sécurisée fonctionne un peu à la manière de celle de Firefox où un mot de passe principal permet de sécuriser un registre contenant toutes les données d'authentification.</p>
<p>Jusqu'à présent, en dehors des changements visuels et du code, il n'existait pas de documentation utilisateur sur cette partie importante pour la sécurité des utilisateurs. C'est un point délicat car l'authentification sécurisée reste finalement assez complexe à expliquer et à utiliser car il faut comprendre de nombreux concepts pas forcément clairs pour des géomaticiens plus cartographes qu'administrateurs système. Avec la version 2.16, <a href="http://docs.qgis.org/testing/en/docs/user_manual/auth_system/auth_considerations.html">c'est maintenant corrigé</a> dans le manuel utilisateur. Vous n'avez maintenant plus d'excuse à continuer de stocker vos mots de passe en clair (dans les fichiers de configuration de QGIS)…</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f323430386337363631353833616233313134313233363234323235663866383432326336333461332e706e672e343030783330305f7138355f63726f702e706e67/2408c7661583ab3114123624225f8f8422c634a3.png.400x300_q85_crop.png" alt="Documentation AuthDB" title="Source : https://qgis.org/en/_images/2408c7661583ab3114123624225f8f8422c634a3.png.400x300_q85_crop.png"></p>
<h3 id="toc-rasters">Rasters</h3>
<p>Parlons un peu du parent pauvre de QGIS (même s'il les gère déjà assez bien) : les <a href="https://fr.wikipedia.org/wiki/Image_matricielle">rasters</a>. Pour information, il s'agit de fichiers bitmap géoréférencés, utiles pour afficher des images comme des orthophotos ou des représentations de plans (style le SCAN25 de l'IGN). Un raster est également une grille contenant une valeur précise pour chaque cellule.</p>
<h4 id="toc-nouveau-rendu-pour-les-mne">Nouveau rendu pour les MNE</h4>
<p>Les Modèles Numériques de Terrain sont des couches rasters un peu particulières : au lieu de stocker une valeur ou un pixel, il stocke l'altitude (ou l'élévation par rapport à un niveau zéro) dans chaque cellule. Suivant sa résolution, on a donc une représentation plus ou moins fine de l'altitude du terrain couvert par l'emprise de la couche.</p>
<p>Traditionnellement, un des usages basiques des MNE est de représenter une couche d'ombrage suivant la hauteur et la position du soleil pour donner un rendu plus facilement interprétable pour l'utilisateur final. C'est ce que vous pouvez lire facilement sur une carte SCAN25 de l'IGN qui affiche les versants nord plus sombres que les versants sud exposés au soleil. Cela permet de se rendre compte plus facilement du relief.</p>
<p>Pour faciliter cet affichage, QGIS 2.16 propose un rendu tout prêt dénommé "Ombrage". Il suffit de le sélectionner et de paramétrer la position du soleil pour obtenir rapidement et efficacement une couche d'ombrage.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f363266393439326431393439363737653331363632356234313565633733326536336663643365632e676966/62f9492d1949677e316625b415ec732e63fcd3ec.gif" alt="Couche d'ombrage" title="Source : https://qgis.org/en/_images/62f9492d1949677e316625b415ec732e63fcd3ec.gif"></p>
<h4 id="toc-classification-basée-sur-les-quantiles">Classification basée sur les quantiles</h4>
<p>Pour les rasters disposant d'une seule bande et utilisant la représentation en pseudo-couleur, il existe un nouveau mode de classification automatique, basé sur les quantiles (auparavant, il n'y avait que les modes continus et intervalles égaux).</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f383434643132323733633164336434326535663162323033363765393262633131343462373766652e706e672e343030783330305f7138355f63726f702e706e67/844d12273c1d3d42e5f1b20367e92bc1144b77fe.png.400x300_q85_crop.png" alt="Rasters quantiles" title="Source : https://qgis.org/en/_images/844d12273c1d3d42e5f1b20367e92bc1144b77fe.png.400x300_q85_crop.png"></p>
<h3 id="toc-saisie-géométrique">Saisie géométrique</h3>
<h4 id="toc-couches-en-lecture-seule-dans-le-projet">Couches en lecture seule (dans le projet)</h4>
<p>Cette nouvelle fonctionnalité permet au créateur du projet cartographique qui n'est pas forcément l'utilisateur final d'indiquer quelles sont les couches/tables qui ne doivent pas être modifiées (lecture seule) et ce, indépendamment des droits d'écriture de l'utilisateur final.</p>
<p>Cette option est disponible dans les propriétés du projet -> identification des couches. Si une couche est marquée comme étant en lecture seule, l'utilisateur final du projet ne pourra pas la modifier, à dessein ou par inadvertance (plutôt ce qui est l'objectif de cette nouvelle fonctionnalité). Cela permet de s'assurer qu'aucune opération de modification n'aura lieu.</p>
<p>Bien entendu, l'utilisateur final garde la possibilité de modifier le fichier de projet (s'il en a les droits d'écriture ou en dupliquant le fichier de projet) pour désactiver ces options mais l'intérêt principal est bien d'éviter les modifications par mégarde qui peuvent se produire dans certains cas (nombreuses couches disponibles, couches avec des noms proches, etc.).</p>
<h3 id="toc-expressions">Expressions</h3>
<p>Les expressions sont un peu le moteur SQL de QGIS. Elles permettent de paramétrer l'affichage (taille, position, couleurs, etc.) de pratiquement n'importe quelle partie de QGIS à l'aide du contenu d'un ou de plusieurs champs ou à l'aide de fonctions d'expressions présentes dans le moteur (elles sont très nombreuses: on en compte plus de 200 !). Pratiquement tout ce qui est paramétrable dans QGIS peut recevoir une valeur fixe ou une expression.</p>
<p>Comme chaque nouvelle version, de nouvelles expressions font leur entrée ainsi que de nouveaux mécanismes.</p>
<h4 id="toc-utilisation-de-paramètres-nommés">Utilisation de paramètres nommés</h4>
<p>Jusqu'à présent, lorsque vous utilisiez les fonctions d'expression (comme la fonction <code>substr</code> qui effectue des découpages de chaînes de caractères), vous deviez en respecter la syntaxe et notamment l'ordre des paramètres. Parfois, cette syntaxe n'est pas facilement compréhensible sans lire l'aide en ligne (disponible dans l'éditeur d'expression, par défaut). De même, il fallait absolument respecter l'ordre des paramètres.</p>
<p>La nouvelle version de QGIS introduit les paramètres nommés (un peu comme ce qu'on peut trouver avec les paramètres nommés de Python). Ainsi, au lieu d'écrire l'expression suivante : <code>substr('QGIS rocks !', 0, 4)</code>, vous pouvez écrire <code>substr(input_string:='QGIS rocks !', startpos:=0, length:=4)</code> ou encore <code>substr(startpos:=0, input_string:='QGIS rocks !', length:=4)</code>.</p>
<p>Cela permet de mieux comprendre quels sont les paramètres utilisés et de modifier leur ordre d'apparition comme bon vous semble.</p>
<h4 id="toc-amélioration-des-fonctions-de-calcul-de-dates-et-dintervalles-de-temps">Amélioration des fonctions de calcul de dates et d'intervalles de temps</h4>
<p>QGIS dispose d'une panoplie conséquente de fonctions qui gèrent les dates et les intervalles de temps (environ une douzaine plus les opérateurs).<br>
Maintenant, les opérateurs sont plus "intelligents" :</p>
<ul>
<li>Il est possible d'ajouter une heure (une heure sans date) à une date (une date sans heure) pour former une date complète (date+heure) sous la forme: <code>date + heure</code>.</li>
<li>L'opérateur <code>-</code> retourne maintenant des intervalles au lieu de dates/heures ou date complète, ce qui est plus simple à interpréter.</li>
</ul>
<h4 id="toc-fonctions-dagrégation">Fonctions d'agrégation</h4>
<p>Un des derniers points qui manquait dans la gestion des expressions était les fonctions/opérateurs d'agrégation. En SQL, il s'agit d'opérateurs permettant d'effectuer des "calculs" selon un groupe de données (géré avec une clause GROUP BY). Comme le moteur d'expression s'apparente à un moteur SQL, il n'est pas surprenant de voir arriver des fonctions spécifiques permettant de gérer ces regroupements. L'intérêt est de pouvoir effectuer des calculs sur des données qui ne sont pas stockées dans des bases de données (des fichiers ShapeFile par exemple).</p>
<p>Prenons quelques exemples simples d'agrégations:</p>
<ul>
<li>
<code>count("especes")</code>: permet de compter toutes les valeurs de l'attribut "especes" dans la couche sur laquelle s'applique l'expression.</li>
<li>
<code>sum("population", "région")</code>: on utilise la couche des départements avec un champ "population" par département et une colonne "région" qui indique à quelle région le département appartient et le résultat sera une liste de sommes de population par région.</li>
</ul>
<p>La liste des fonctions d'agrégation simple est finalement assez fournie et devrait répondre à la majorité des besoins : compter, faire la somme, calculer la moyenne l'écart-type ou la médiane, trouver le minimum/maximum, concaténer, etc.</p>
<p>Une fonction d'agrégation plus généraliste est dédiée aux tables qui disposent de relations entre elles (définies au niveau de QGIS et non au niveau de la base de données). Elle se nomme <code>relation_aggregate</code> et se charge de réaliser l'agrégation sur une couche fille, à partir du nom de la relation.</p>
<p>Il existe enfin une fonction générique qui permet de réaliser une opération d'agrégation sur une couche différente de la couche sur laquelle s'applique l'expression. Il est alors possible de la combiner avec des données de la couche courante pour réaliser des calculs spécifiques. Par exemple, si vous désirez réaliser un filtre d'une couche sur un champ dont la valeur doit être supérieure à la moyenne d'un champ d'une autre couche.</p>
<p>Cette fonction se nomme simplement <code>aggregate</code> et s'utilise avec la syntaxe: <code>aggregate("autre couche", "opération d'agrégation (sum/count/etc.)", "attribut/expression sur laquelle se porte l'agrégation")</code>.</p>
<p>Enfin, sachez que tous les calculs réalisés avec des agrégations sont mis en cache, si vous utilisez un regroupement plusieurs fois, un seul calcul sera effectué.</p>
<h3 id="toc-traitements">Traitements</h3>
<p>Les outils de traitements ou de géo‐traitements permettent de réaliser des manipulations chaînées sur des données, par exemple, retourner une couche de centroïdes sur une couche en entrée ou de calculer des bassins versants à partir d’une ou plusieurs couches <em>rasters</em>.</p>
<p>D'un point de vue interne, les traitements de QGIS sont intégralement gérés par une extension de cœur de projet (core) dénommée Processing et écrite en Python.</p>
<h4 id="toc-suppression-de-ftools">Suppression de fTools</h4>
<p>fTools est le nom donné à une extension de cœur de projet (core) qui avait pour objet de proposer des outils de traitements spatiaux sur des couches vectorielles. Sa réalisation était assez ancienne et son usage est très répandu chez les utilisateurs de QGIS qui ont l'habitude de l'employer à travers le menu 'Vecteur'.</p>
<p>Néanmoins, avec le temps, son usage faisait vraiment doublon avec les géo-traitements de QGIS : depuis quelques versions, la majorité des traitements de fTools étaient disponibles dans le panneau des traitements et l'utilisateur pouvait alors être un peu dérouté par la présence de deux outils situés à deux endroits différents mais réalisant (à peu près) la même chose.</p>
<p>Du point de vue de la maintenance du code, c'était aussi beaucoup d'effort : il fallait maintenir et synchroniser des algorithmes semblables dans deux endroits différents du code. Pire, il arrivait parfois qu'un bug affecte l'un des deux outils mais pas l'autre. Il était donc temps de mettre fin à ce problème.</p>
<p>C'est donc le cas pour cette version : fTools a été retiré de QGIS. Néanmoins, comme son usage était très répandu, le menu Vecteur a été conservé pour ne pas dérouter les habitudes des utilisateurs de QGIS. Les entrées du menu redirigent simplement vers un géo-traitement précis. Les icônes de fTools ont également été reprises comme icônes spécifiques pour chaque traitement disponible (encore une fois, pour perturber le moins possible les utilisateurs).</p>
<p>Voilà un problème à peu près réglé (il peut rester quelques bugs de "migration"). Un autre module va sans doute connaître le même sort dans l'avenir : l'extension GdalTools qui réalise des géo-traitements rasters avec les utilitaires de GDAL et qui sont également présents sous forme de géo-traitements dans Processing.</p>
<h4 id="toc-grass7">GRASS7</h4>
<p>La dernière version de QGIS disposait de quelques traitements GRASS7 supplémentaires (notamment les modules v.net gérant les couches vectorielles de réseau). Pour QGIS 2.16, c'est l'intégralité (il doit manquer un seul traitement sur la totalité de ce que GRASS7 propose) des traitements de GRASS7 qui ont été portés dans Processing mettant ainsi à disposition des utilisateurs plus de 300 traitements portant sur des couches rasters, vecteurs ou d'images. Il faut noter que GRASS reste une référence en matière de traitements sur les couches rasters.</p>
<p>Dans ce cas de figure, Processing agit comme une interface d'accès aux traitements GRASS en réalisant en arrière plan la création d'une base de données GRASS temporaire, l'injection des données à traiter, le lancement des traitements via des commandes internes GRASS (ce sont donc vraiment les binaires GRASS qui font le travail) et l'export des données à récupérer dans QGIS depuis la base de données GRASS temporaire.</p>
<p>Ces ajouts ne concernent que les traitements de GRASS dans sa version 7 et non dans sa version 6, simplement pour des raisons de coût de maintenance. Par ailleurs, la version stable actuelle de GRASS est la version 7 (même si on rencontre encore la version 6 dans de nombreuses distributions GNU/Linux stables, Debian Jessie pour ne pas la citer).</p>
<p>En plus de ces ajouts de modules, un premier jet de tests unitaires ont été intégrés pour les traitements GRASS7 (principalement sur les modules i.* et r.*). Au total, ce sont près de 115 modules qui disposent d'un test unitaire. Cela devrait permettre de mieux détecter les problèmes d'interaction entre Processing et GRASS lors des évolutions de GRASS. Ces tests unitaires sont très basiques : ils se contentent de lancer le traitement avec un jeu de données réduit et avec des paramètres par défaut. Mais, il faut bien commencer par quelque chose ! À l'avenir, on peut penser que chaque traitement GRASS7 de Processing disposera au moins d'un test unitaire.</p>
<h4 id="toc-gestion-de-lécriture-de-tables-sans-géométries">Gestion de l'écriture de tables sans géométries</h4>
<p>Processing gère maintenant l'écriture dans des tables sans géométrie. Cela permet de remplir des fichiers CSV par exemple. Pour l'instant, seul le traitement 'Refactoriser les champs' (qui permet de modifier la structure et le contenu d'une table attributaire en entrée) en bénéficie mais d'autres traitements devraient pouvoir utiliser facilement cette fonctionnalité, inscrite dans les classes de base de Processing.</p>
<h4 id="toc-support-des-expressions-dans-les-entrées-des-traitements">Support des expressions dans les entrées des traitements</h4>
<p>Jusqu'à présent, les expressions n'étaient pas disponibles dans Processing. C'est maintenant fait pour au moins quelques types de paramètres d'entrée (chaîne de caractères, nombre) ou de sortie. Dans ce cas, les expressions serviront à déterminer la valeur du paramètre. Cela peut être utile pour, par exemple, formater le nom du fichier de sortie de manière dynamique en fonction de la valeur d'un champ.</p>
<p>À vous la puissance des expressions dans vos géo-traitements !</p>
<h3 id="toc-composeur-dimpression">Composeur d'impression</h3>
<p>Le composeur d'impression de QGIS est l'interface graphique qui permet de gérer la mise en page d'une carte. En effet, QGIS présente essentiellement une vue cartographique qui est faite principalement pour interagir avec les données ce qui est très souvent incompatible avec les opérations de mise en page (qui affichent d'autres choses que la carte). Ce module très complet permet de créer facilement des cartes destinées à être imprimées sur papiers (ou en image/PDF).</p>
<h4 id="toc-dessins-de-formes--polygonespolylignes">Dessins de formes : polygones/polylignes</h4>
<p>Dans cette version, le composeur permet de tracer des polygones et des polylignes directement dans la mise en page. Jusqu'à présent, on pouvait ajouter des formes (rectangle/cercle/ellipse), des fichiers SVG ou bitmaps, ou encore des flèches. On peut maintenant tracer des formes plus libres. Cela permet de mettre en valeur certaines données plus facilement : vous pouvez dessiner un polygone plus complexe pour mettre en valeur une zone précise sur une carte à imprimer (même s'il y a d'autres techniques pour le faire automatiquement).</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f353265356562643039336331313965653838326231633335346665666339376635653832336666632e706e672e343030783330305f7138355f63726f702e706e67/52e5ebd093c119ee882b1c354fefc97f5e823ffc.png.400x300_q85_crop.png" alt="Polygones du composeur" title="Source : https://qgis.org/en/_images/52e5ebd093c119ee882b1c354fefc97f5e823ffc.png.400x300_q85_crop.png"></p>
<h4 id="toc-géoréférencement-des-cartes-en-sortie-dimpression-par-défaut">Géoréférencement des cartes en sortie d'impression par défaut</h4>
<p>QGIS permet de géoréférencer une impression de carte. Concrètement, les fichiers créés par le composeur d'impression peuvent être géo-référencés: les coordonnées de la d'emprise de la carte qu'ils représentent sont stockées directement dans le fichier (pour les formats TIFF et PDF). Cela permet d'ouvrir ces fichiers (dans QGIS mais également dans d'autres logiciels SIG) comme s'il s'agissait de couches rasters.</p>
<p>Auparavant, QGIS proposait de stocker les informations de géo-référencement dans un fichier dédié (world file). Maintenant, par défaut, la donnée est stockée dans les métadonnées du fichier en sortie (le fichier world est produit uniquement si l'option relative est cochée). Pas de révolution de ce côté mais une meilleure intégration de l'emprise spatiale dans toute carte produite par QGIS.</p>
<h3 id="toc-plugins-ou-extensions">Plugins ou extensions</h3>
<p>Les <em>plugins</em> ou extensions de QGIS sont des parties fonctionnelles supplémentaires qui s'appuient sur l'API de QGIS et qui offrent des fonctionnalités non couvertes par le cœur de projet (core), suivant le principe de Firefox et de ses greffons. L'API permet de (pratiquement) tout modifier dans QGIS au niveau de l'interface homme-machine ainsi que de lancer n'importe quelle action sur des données lisibles par QGIS. Le potentiel est donc très important.</p>
<p>Certaines extensions prennent de l'ampleur et finissent par être intégrées et gérées par l'équipe de développement de QGIS (comme Processing ou DBManager). Les autres extensions sont développées sur des dépôts tiers mais sont listées sur le <a href="https://plugins.qgis.org/">dépôt officiel</a>. Plus de 1000 greffons sont disponibles et sont directement installables depuis QGIS.</p>
<h4 id="toc-refonte-du-plugin-globe">Refonte du plugin Globe</h4>
<p>Pour cette version de QGIS, le greffon Globe a été revu. Il permet d'apporter une fenêtre de globe terrestre permettant d'avoir un rendu en (pseudo) 3D des données présentes dans le projet cartographique en cours sur un globe terrestre. C'est un peu le Google Earth en local de QGIS. Avec le temps, le plugin semblait prendre un peu d'âge et n'évoluait plus. Il a donc été remis au goût du jour.</p>
<p>Au menu des nouveautés :</p>
<ul>
<li>Remise à niveau technique avec incorporation d'une nouvelle version de <a href="http://osgearth.org/">OSgEarth</a>.</li>
<li>Adoption du nouveau moteur géométrique de QGIS (qui date d'il y a quelques versions maintenant).</li>
<li>Extrusions des objets de couche avec une dimension Z ou avec une expression.</li>
<li>Ajout d'un onglet de configuration dans les propriétés de la couche : cela permet de paramétrer la représentation de la couche dans le greffon (si ce dernier est activé) et de stocker ces paramètres dans le projet QGIS.</li>
</ul>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f656e2f5f696d616765732f663730396363303238353262383333663435396633303433316633386638363864363965626661642e6a70672e343030783330305f7138355f63726f702e6a7067/f709cc02852b833f459f30431f38f868d69ebfad.jpg.400x300_q85_crop.jpg" alt="Plugin Globe" title="Source : https://qgis.org/en/_images/f709cc02852b833f459f30431f38f868d69ebfad.jpg.400x300_q85_crop.jpg"></p>
<h2 id="toc-informations-sur-la-version-30">Informations sur la version 3.0</h2>
<h3 id="toc-informations-générales">Informations générales</h3>
<p>Comme nous l'avions déjà présenté dans les précédentes dépêches sur QGIS, l'objectif de la version 3.0 de QGIS est la migration vers la version 5 de Qt et la version 3 de Python.</p>
<p>Sachez qu’il est maintenant tout à fait possible de compiler QGIS avec Qt5 et Python3. Le résultat n'est, pour le moment, pas garanti en termes d’absence de bugs mais, depuis quelques mois, on peut avoir un binaire QGIS équipé de ces options qui fonctionne dans les grandes lignes.</p>
<p>Du point de vue du code, le dépôt Git présente dès maintenant 2 branches master:</p>
<ul>
<li>master qui est la version 3.0.</li>
<li>
<a href="https://github.com/qgis/QGIS/tree/master_2">master_2</a> qui contient des évolutions uniquement destinées à la version 2.x de QGIS (pour des corrections de bugs principalement).</li>
</ul>
<p>On voit bien que tout est axé sur la version 3.0: c'est la branche par défaut !</p>
<h3 id="toc-tester-la-version-30-de-développement">Tester la version 3.0 de développement</h3>
<p>Voici quelques instructions pour pouvoir disposer d'un QGIS sous Qt5 et Python3 avec la prise en charge de <a href="https://grass.osgeo.org/grass7/">GRASS7</a> sous Debian Stretch.</p>
<p>Il vous faudra d'abord installer de nombreuses dépendances (oui, QGIS est un logiciel complexe qui fait beaucoup de choses en se reposant au maximum sur ce qui existe déjà):</p>
<pre><code class="sh"><span class="c1"># apt install build-essential cmake flex bison pyqt5-dev qttools5-dev qtpositioning5-dev libqt5svg5-dev libqt5webkit5-dev libqt5gui5 libqt5scripttools5 qtscript5-dev libqca-qt5-2-dev grass-dev libgeos-dev libgdal-dev libqt5xmlpatterns5-dev libqt5scintilla2-dev pyqt5.qsci-dev python3-pyqt5.qsci libgsl-dev txt2tags libproj-dev libqwt-qt5-dev libspatialindex-dev pyqt5-dev-tools qttools5-dev-tools qt5-default python3-future python3-pyqt5.qtsql python3-psycopg2 python3-yaml python3-pygments python3-owslib python3-nose2 python3-six python3-markupsafe python3-dateutil python3-jinja2 python3-httplib2 python3-tz grass grass-dev grass-doc</span></code></pre>
<p>Il vous faut ensuite récupérer les sources de QGIS. Vous pouvez le faire simplement en clonant le dépôt git hébergé sur Github (attention, il est assez lourd):</p>
<pre><code class="sh">$ git clone git://github.com/qgis/QGIS.git
$ <span class="nb">cd</span> QGIS
$ mkdir build-master
$ <span class="nb">cd</span> build-master</code></pre>
<p>Ensuite, reste à préparer la compilation, effectuer la dite compilation puis l'installation. QGIS repose sur CMake:</p>
<pre><code class="sh">$ ccmake -D ENABLE_QT5:BOOL<span class="o">=</span>TRUE <span class="se">\</span>
-D PORT_PLUGINS:BOOL<span class="o">=</span>TRUE <span class="se">\</span>
-D CMAKE_INSTALL_PREFIX:PATH<span class="o">=</span>/usr/local/ <span class="se">\</span>
-D WITH_ASTYLE:BOOL<span class="o">=</span>TRUE <span class="se">\</span>
-D WITH_INTERNAL_QWTPOLAR:BOOL<span class="o">=</span>TRUE <span class="se">\</span>
-D WITH_INTERNAL_YAML:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_PYGMENTS:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_OWSLIB:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_NOSE2:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_SIX:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_MARKUPSAFE:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_DATEUTIL:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_JINJA2:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_HTTPLIB2:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
-D WITH_INTERNAL_QEXTSERIALPORT:BOOL<span class="o">=</span>TRUE <span class="se">\</span>
-D WITH_INTERNAL_PYTZ:BOOL<span class="o">=</span>FALSE <span class="se">\</span>
..</code></pre>
<p>Cette commande ouvre une interface ncurses qui vous permet d'affiner les options de compilation et de vérifier que vous disposez de toutes les dépendances. Confirmez avec la touche 'c' puis générez les Makefile avec la touche 'g'. L'option PORT_PLUGIN de CMake permet de déclencher le mécanisme de conversion des extensions en Python actuellement codées en Python2. Ce mécanisme est présenté dans le paragraphe ci-dessous. Les autres options (WITH_INTERNAL à FALSE) permettent d'utiliser les bibliothèques Python3 de votre distribution plutôt que celles qui sont livrées avec le code de QGIS.</p>
<p>On peut ensuite lancer la compilation et l'installation:</p>
<pre><code class="sh">$ make -jX <span class="c1"># X variable suivant le nombre de cores de votre CPU</span>
$ sudo make install</code></pre>
<p>La compilation prend un temps non négligeable: compter environ 10 à 20 minutes sur une machine récente.</p>
<p>Ensuite, pour lancer QGIS, il vous faudra peut-être modifier la variable d'environnement LD_LIBRARY_PATH et y ajouter l'emplacement des bibliothèques partagées de QGIS (normalement dans /usr/local/lib) puis taper <code>qgis</code>.</p>
<h3 id="toc-le-mécanisme-de-conversion-des-plugins-core">Le mécanisme de conversion des plugins "core"</h3>
<p>En ce qui concerne la conversion des scripts Python de Python2 vers Python3, un mécanisme de conversion automatique a été mis en place : lors de la compilation, le code des ensembles de QGIS sous Python2 (principalement les plugins de cœur d’application "core") est passé à la moulinette de l'outil 2to3. Il en résulte une cible sous Python3 directement utilisable. Pour utiliser ce mécanisme, il suffit de cocher l'option CMake PORT_PLUGINS (qui est automatiquement activée lorsqu'on compile avec l'option WITH_QT5 d'ailleurs).</p>
<p>Mais il n'y a pas que la conversion de Python2 vers Python3 à gérer : il y a également l'évolution de PyQt4 vers PyQt5 !</p>
<p>En utilisant la bibliothèque Python future et <a href="https://github.com/qgis/QGIS/blob/master/scripts/qgis_fixes/fix_pyqt.py">un peu de code</a>, on obtient un ensemble de conversions automatiques qui gèrent également la transition PyQt4 vers PyQt5. Pour l'instant, le script fix_pyqt gère correctement le renommage des modules ainsi que le nom des méthodes.</p>
<p>Néanmoins, ce mécanisme n'est pas parfait (il faut bien laisser un peu de travail aux devs quand-même !) : lorsque des méthodes ou des fonctions changent de paramètres ou de retour, fix_pyqt ne gère rien. Il en résulte un résiduel assez important de bugs pas nécessairement faciles à trouver car, dans la majorité des cas, l'ensemble du plugin va se lancer correctement (pas de plantage au lancement) mais c'est uniquement l'activation d'une option précise qui va tout vraquer. Même avec de bons tests unitaires, c'est assez difficile à diagnostiquer… C'est cet ensemble de bugs qu'il faudra gérer et c'est pour cela qu'il y a de fortes chances que le calendrier de la version 3.0 soit décalé par rapport au rythme de publication habituel (qui n'est que de 4 mois).</p>
<p>Pour terminer sur ce port, disons-nous que passer à Python3 va sans doute nous permettre de mettre fin au problème majeur des plugins Python de QGIS : la gestion de l'unicode (mon petit doigt me dit que le simple fait d'avoir un nom de logiciel comme "Nødebo" devrait entraîner une bonne série de commits correctifs :-)) !</p>
<h2 id="toc-conclusions">Conclusions</h2>
<p>Cette version 2.16 continue à consolider le rôle de QGIS comme leader des SIG bureautiques libres. Les nouvelles fonctionnalités sont très nombreuses, sans parler des traditionnelles corrections de bugs. QGIS se place sans problème au niveau des meilleurs SIG (propriétaires et libres) et les professionnels y retrouveront des fonctionnalités qui faciliteront grandement leur travail. Signe qui ne trompe pas: <a href="https://qgis.org/en/site/forusers/visualchangelog216/index.html#sponsors-for-qgis-version-2-16-0">la page des sponsors</a> montre que le financement de QGIS se renforce de version en version et que les acteurs qui contribuent au projet sont de plus en plus nombreux et prêts à mettre un peu d'argent sur la table. Bien entendu, le budget n'a rien à voir avec celui d'un grand groupe mais cela démontre qu'on peut tout à fait financer un gros projet comme QGIS à plusieurs et ce, peu importe sa provenance géographique.</p>
<p>L'avenir s'ouvre également sur de bons auspices avec la version 3.0 qui prend un chemin sérieux. Il y a de grandes chances qu'elle devienne la prochaine version de QGIS et que la version 2.16 soit la dernière de la série 2.x même si un décalage de calendrier est fort probable (publication d'une version officielle tous les 4 mois). La version 3.0, en plus de la remise à niveau de l'environnement technique introduit également des modifications profondes dans l'API de QGIS. Mais ces modifications vont dans le bon sens: nous allons pouvoir nous débarrasser de tout le vieux code qui était nécessaire pour garantir une compatibilité de la chaîne QGIS dans la branche 2.x et nous appuyer sur des objets et des méthodes plus simples à utiliser et offrant un accès plus rapide aux dernières fonctions avancées des différents composants de QGIS. Par ailleurs, la version 3.0 ne sera pas seulement une mise à jour des principales bibliothèques de base (Qt5) mais elle présentera également de nombreuses nouvelles fonctionnalités, comme d'habitude.</p>
<p>Souhaitons aux développeurs que toutes leurs nouvelles implémentations fonctionnent du premier coup et que le code soit fluide sous le clavier !</p>
<p>Malgré les 200 contributeurs sur GitHub, le projet a toujours besoin de contributions dans différents secteurs. Venez nous rejoindre en fonction de vos compétences, vos talents ou votre volonté de nous aider !</p>
<ul>
<li>
<strong>Je suis développeur C+/Qt</strong> : c'est parfait, venez nous aider à améliorer le code et les algorithmes internes de QGIS. Le développement se déroule sur GitHub et n'oubliez pas de lire <a href="https://qgis.org/fr/site/getinvolved/development/index.html">la documentation de développement</a>.</li>
<li>
<strong>Je suis développeur Python</strong> : c'est très bien, QGIS regorge de modules Python et d'extensions internes codées dans ce langage. Si vous n'y connaissez rien en SIG, vous pouvez nous aider en vous concentrant sur la qualité du code ou en écrivant des tests unitaires.</li>
<li>
<strong>Je suis un utilisateur courant de QGIS</strong> : même si vous ne savez pas coder, vous pouvez facilement nous aider. Pour commencer, retenez que nous avons besoin de réaliser des tests approfondis lors de la phase de gel des fonctionnalités qui commence au bout de 3 mois de développement. À ce stade, les nouvelles fonctionnalités doivent être fortement testées avant que nous puissions publier la future version de production. Par ailleurs, il faudra également veiller à ce que ces nouvelles fonctionnalités ne cassent pas quelque-chose qui fonctionnait auparavant. Et pour cet ensemble de tests, rien ne vaut les vraies données, basées sur des cas concrets. Il vous faudra installer les versions compilées toutes les nuits et travailler sur vos données habituelles tout en faisant remonter tout problème via le bugtracker. Plus nous aurons d'utilisateurs pendant cette phase, moins il y aura de problèmes dans la publication de la nouvelle version (nous ne serons donc pas forcément obligés de publier une version corrective en un mois après la sortie de la nouvelle version). Votre rôle ici est très important car les développeurs n'ont forcément que des jeux de tests limités et ils sont concentrés sur la résolution de bugs pendant cette phase qui dure un seul mois. Merci pour votre implication dans les tests. Si vous avez de l'expérience métier, vous pouvez aider les utilisateurs QGIS qui posent des questions, notamment sur StackOverFlow.</li>
<li>
<strong>Je suis étudiant en informatique ou dans les SIG</strong>: pour l'été prochain, si vous n'avez pas grand chose de prévu, sachez que QGIS bénéficie du programme Google Summer of Code. Je vous recommande de trouver un "mentor", membre du projet. Sachez que vous pouvez nous aider sur pas mal de points, y compris en dehors du code ou du domaine des SIG. Ainsi, par exemple pour cette année, un des projets QGIS du Summer of Code consiste à monter une bibliothèque partagée de styles de couches, permettant aux utilisateurs de QGIS de disposer d'une banque commune de représentations graphiques pour leurs projets.</li>
<li>
<strong>Je suis bon en anglais technique (SIG et/ou informatique)</strong> : venez rejoindre l'équipe de traduction de QGIS. Nous sommes nombreux à être inscrits mais nous avons toujours besoin de forces vives pour faire en sorte que QGIS Desktop soit toujours 100 % traduit en français ou que le site web et la documentation restent à jour par rapport à la version en langue anglaise. Ceci est particulièrement vrai lors de la phase de gel des fonctionnalités. Les nouvelles fonctionnalités amènent souvent de la documentation interne ou des chaînes de caractères à traduire. Il faut de plus rester sur le qui-vive pendant toute cette phase car des modifications de texte peuvent intervenir même quelques heures avant la compilation finale. Il serait en effet bon d'atteindre régulièrement les 100 % de traduction de l'application bureautique (ce qui permet de dire à la communauté que QGIS est complètement traduit en français). Mais une fois que la version officielle est compilée et distribuée, il nous faut également beaucoup d'aide pour traduire correctement la page web des changements en image. Cette page est très importante pour les utilisateurs francophones de QGIS car elle permet de leur présenter toutes les nouvelles fonctionnalités dans leur langue maternelle, ce qui leur permet d'avoir une information plus claire sur ce que le nouveau QGIS peut leur apporter. Plus nous serons nombreux à être des traducteurs actifs, plus le travail lourd et fastidieux de traduction sera réparti et plus QGIS sera facilement traduit.</li>
<li>
<strong>Je ne suis rien de tout ça !</strong>: pas de problème, vous pouvez nous aider sur de nombreux points. D'abord, <a>vous pouvez faire un don au projet</a> Votre argent ira abonder le financement de nouvelles fonctionnalités ou encore <a href="https://qgis.org/fr/site/forusers/visualchangelog216/index.html#feature-qgis-paid-bugfixing-programme">le programme de corrections de bugs</a>. Si vous êtes DSI/décideur ou référent technique, n'hésitez pas à demander une étude d'évaluation de QGIS en interne si vous avez des projets informatiques qui intègrent de la géographie. Si vous êtes enseignant/scientifique, n'hésitez pas à faire la promotion de ce SIG libre que vos étudiants pourront installer facilement (et gratuitement) sur leurs machines personnelles. etc.</li>
</ul>
</div><div><a href="https://linuxfr.org/news/sortie-de-qgis-2-16-nodebo.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109287/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qgis-2-16-nodebo#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXBAudLucasJean-Christophe BECQUETpalm123Benoît Sibaudbubar🦥Davy Defaudguitouhttps://linuxfr.org/nodes/109287/comments.atomtag:linuxfr.org,2005:News/370152016-04-14T14:05:42+02:002016-04-23T14:30:53+02:00Sortie de QGIS 2.14 LTR « Essen »Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Le projet QGIS a l’immense plaisir de vous annoncer la publication de la version 2.14 de sa suite logicielle de Système d'Information Géographique (SIG) libre.</p>
<p>QGIS est une suite logicielle de traitement de l'information géographique. Elle permet de générer des cartes, d'analyser des données spatiales et de les publier, en ligne ou sur papier. Elle permet également de réaliser de nombreux traitements et algorithmes sur des données spatiales ou d'autres données liées. En d'autres termes, QGIS est un <a href="https://fr.wikipedia.org/wiki/Syst%C3%A8me_d'information_g%C3%A9ographique">SIG</a> ou Système d'Information Géographique, conçu pour recueillir, stocker, traiter, analyser, gérer et présenter tous les types de données spatiales et géographiques. C'est un projet officiel de la fondation Open Source Geospatial (<a href="http://www.osgeo.org/home">OSGeo</a>). Il est disponible sur les systèmes d'exploitation GNU/Linux, Mac OS X, Windows et Android.</p>
<p>La version 2.14 nommée « Essen » en hommage à la ville du même nom, est disponible depuis le 1er Mars 2016. Cette version est une "LTR", <em>Long-Term-Release</em>, et sera supportée pendant un an. Il s'agira de l'avant dernière version de la lignée 2.x, car il a été décidé de conserver une dernière version (2.16) qui sera suivie de la version 3.0. Depuis début avril 2016, une version 2.14.1 a été publiée. Elle corrige certains bugs de jeunesse de la version 2.14.</p>
<p>Dans la suite de la dépêche, un aperçu des nouveautés vous sera présenté plus en détails, ainsi que les plans actuels pour la future version 3. Pour le public non averti, nous vous invitons à lire le début de la <a href="//linuxfr.org/news/sortie-de-qgis-2-10-pisa#petit-rappel-pour-ceux-qui-ne-connaissent-ni-qgis-ni-les-sig">dépêche sur la sortie de QGIS 2.10</a> pour avoir un petit rappel sur les SIG et sur QGIS…</p></div><ul><li>lien nᵒ 1 : <a title="https://qgis.org/fr/site/index.html" hreflang="fr" href="https://linuxfr.org/redirect/96888">Site principal de QGIS</a></li><li>lien nᵒ 2 : <a title="https://qgis.org/fr/site/forusers/download.html" hreflang="fr" href="https://linuxfr.org/redirect/96889">Page de téléchargement du projet QGIS</a></li><li>lien nᵒ 3 : <a title="https://qgis.org/fr/site/forusers/visualchangelog214/index.html" hreflang="fr" href="https://linuxfr.org/redirect/96890">Principales évolutions en images depuis la dernière version</a></li><li>lien nᵒ 4 : <a title="https://github.com/qgis/QGIS" hreflang="en" href="https://linuxfr.org/redirect/96891">Dépôt git officiel des sources de QGIS</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#les-nouveaut%C3%A9s-dint%C3%A9r%C3%AAt-de-qgis-214">Les nouveautés d'intérêt de QGIS 2.14</a><ul>
<li><a href="#couches-virtuelles">Couches virtuelles</a></li>
<li><a href="#moins-de-clics-plus-defficacit%C3%A9">Moins de clics, plus d'efficacité</a></li>
<li><a href="#contr%C3%B4le-de-formulaire-des-ressources-externes">Contrôle de formulaire des ressources externes</a></li>
<li><a href="#g%C3%A9n%C3%A9rateur-de-symbologie-g%C3%A9om%C3%A9trique">Générateur de symbologie géométrique</a></li>
<li><a href="#ordre-de-trac%C3%A9-des-g%C3%A9om%C3%A9tries">Ordre de tracé des géométries</a></li>
<li><a href="#moteur-de-rendu-25d">Moteur de rendu 2.5D</a></li>
<li><a href="#am%C3%A9lioration-de-la-gestion-des-unit%C3%A9s">Amélioration de la gestion des unités</a></li>
<li><a href="#modules-vnet-dans-processing">Modules v.net dans Processing</a></li>
<li><a href="#m%C3%A9tadonn%C3%A9es-inspire-pour-qgis-server">Métadonnées INSPIRE pour QGIS Server</a></li>
</ul>
</li>
<li>
<a href="#et-pour-la-version-216">Et pour la version 2.16 ?</a><ul>
<li><a href="#syntaxe-des-%C3%A9tiquettes-html">Syntaxe des étiquettes HTML</a></li>
<li><a href="#int%C3%A9gration-des-algorithmes-grass-7-dans-qgis">Intégration des algorithmes GRASS 7 dans QGIS</a></li>
<li><a href="#refonte-du-fournisseur-de-donn%C3%A9es-wfs">Refonte du fournisseur de données WFS</a></li>
</ul>
</li>
<li>
<a href="#ce-quon-peut-dire-sur-la-version-30-de-qgis">Ce qu'on peut dire sur la version 3.0 de QGIS</a><ul>
<li><a href="#choix-de-la-gouvernance-du-projet">Choix de la gouvernance du projet</a></li>
<li><a href="#inclusions-de-python3-et-de-qt5">Inclusions de Python3 et de Qt5</a></li>
</ul>
</li>
<li><a href="#je-veux-aider-le-projet-qgis-que-puis-je-faire">Je veux aider le projet QGIS, que puis-je faire ?</a></li>
<li><a href="#conclusions">Conclusions</a></li>
</ul><p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f353936653765333533373731643238303266303635333532353438653531326238643930326438332e706e67/596e7e353771d2802f065352548e512b8d902d83.png" alt="Splashcreen" title="Source : https://qgis.org/fr/_images/596e7e353771d2802f065352548e512b8d902d83.png"></p>
<h2 id="les-nouveautés-dintérêt-de-qgis-214">Les nouveautés d'intérêt de QGIS 2.14</h2>
<p>Voici une petite sélection des nouveautés de la version 2.14 de QGIS. Si vous voulez découvrir l'intégralité des évolutions, nous vous invitons à consulter <a href="https://qgis.org/fr/site/forusers/visualchangelog214/index.html">la page des changements en image</a> qui est vraiment très complète et qui a l'avantage d'être traduite en français.</p>
<h3 id="couches-virtuelles">Couches virtuelles</h3>
<p>Il s'agit d'un des points majeurs de la nouvelle version de QGIS. Pour faire simple, les couches virtuelles sont des vues dynamiques d'autres couches. Les vues sont des requêtes de sélection qui peuvent agir sur une ou plusieurs couches.</p>
<p>Grâce aux couches virtuelles, on peut maintenant disposer d'un système de vues dynamiques pour toutes les couches de type fichier, ce qui est une grande avancée. Le système de requête utilise la syntaxe de SQLite et les fonctions Spatialite pour la partie géographique. Elle permet donc de nombreux traitements, des résultats variés et ce même pour les formats qui ne gèrent pas de SQL. En plus de la syntaxe SQL, il est également possible d'utiliser le moteur d'expression de QGIS, ce qui enrichit encore plus le panel de fonctions.</p>
<p>Concrètement, vous pouvez créer une couche virtuelle en cliquant sur le bouton concerné. Une boîte de dialogue s'ouvre pour vous permettre de préciser le contenu de la requête, en fonction des couches qui sont actuellement ouvertes dans le projet QGIS. Tout changement dans les couches sources sera automatiquement et immédiatement répercuté dans la couche virtuelle. Ce mécanisme s'approche de celui de MapInfo avec son requêteur SQL interne.</p>
<p>Pour terminer sur le sujet, retenez qu'on peut également exécuter des requêtes SQL virtuelles sous forme de géotraitements, grâce à l'outil <code>Executer SQL</code>, présent dans le fournisseur de traitements QGIS.</p>
<p>Voici une capture d'écran représentant la fenêtre permettant de créer une couche virtuelle :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f353862633161326665613331666538643661623730666633336337363363396464616334306164652e706e672e343030783330305f7138355f63726f702e706e67/58bc1a2fea31fe8d6ab70ff33c763c9ddac40ade.png.400x300_q85_crop.png" alt="Couche virtuelle" title="Source : https://qgis.org/fr/_images/58bc1a2fea31fe8d6ab70ff33c763c9ddac40ade.png.400x300_q85_crop.png"></p>
<h3 id="moins-de-clics-plus-defficacité">Moins de clics, plus d'efficacité</h3>
<p>Du point de vue de l'utilisateur, la version 2.14 de QGIS amène un grand nombre de nouvelles fonctionnalités qui facilitent l'utilisation au quotidien de QGIS. Avec le temps, QGIS fait de plus en plus de choses et même si des efforts sont faits pour conserver une ergonomie utile et cohérente, certaines opérations impliquent d'ouvrir plusieurs fenêtres, ne serait-ce que pour accéder aux éléments de configuration. Il en résulte un parcours d'accès qui peut être parfois assez contraignant pour changer quelques éléments simples.</p>
<p>Dans QGIS 2.14, quelques corrections permettent néanmoins d'aller beaucoup plus vite pour certaines opérations. C'est ce que nous allons voir en détails dans les points qui suivent.</p>
<p>D'abord, on peut maintenant changer la couleur d'une classe directement depuis la légende (l'arbre des couches), sans devoir passer par l'onglet Style des propriétés de la couche. Un simple clic-droit sur la classe concernée ouvre un menu contenant un sélecteur de couleur permettant de choisir directement la couleur concernée (cf illustration suivante). Difficile de faire plus direct !</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f333135393435376134313465613631663866343036353961663563393536313838326134346665312e706e672e343030783330305f7138355f63726f702e6a7067/3159457a414ea61f8f40659af5c9561882a44fe1.png.400x300_q85_crop.jpg" alt="Édition directe de la couleur d'une classe" title="Source : https://qgis.org/fr/_images/3159457a414ea61f8f40659af5c9561882a44fe1.png.400x300_q85_crop.jpg"></p>
<p>Ça n'a l'air de rien, mais c'est au moins 5 clics de souris en moins et deux boîtes de dialogue en moins ! C'est également une méthode plus interactive pour voir directement sur la carte ce qu'un changement de couleur peut avoir sur une classe. Le sélecteur de couleur fonctionne aussi pour les styles gradués.</p>
<p>On peut également avoir accès directement à un éditeur de symbole complet depuis la classe d'une couche, dans la légende. Cela permet de modifier plus que la couleur du symbole, dans une boîte de dialogue dédiée. Pour y avoir accès, il suffit de double-cliquer sur le symbole ou de faire un clic-droit suivi de <code>Modifier le symbole...</code>. Auparavant (cette méthode d'accès reste valide), il fallait aller dans les propriétés de la couche, onglet style et double-cliquer sur le symbole qu'on souhaitait modifier. Cet accès rapide permet également d'avoir une meilleure interaction avec la représentation sur la carte, à l'issue du changement du symbole.</p>
<p>Toujours sur les classes, il est possible de désactiver/activer toutes les classes d'une couche en une seule opération. Il suffit de se placer dans une classe et de faire un clic-droit pour avoir l'accès à cette fonctionnalité directement depuis le menu contextuel. L'interêt est ici de pouvoir désactiver toutes les classes pour pouvoir facilement en activer une seule ou quelques-unes. Auparavant, il fallait décocher une à une toutes les classes ce qui était très fastidieux pour les couches avec de nombreuses classes. Bien entendu, cela fonctionne également pour les classes des styles gradués.</p>
<p>Au niveau du gestionnaire de compositions (les mises en page destinées à être imprimées ou exportées en PDF), on peut maintenant en supprimer ou en ouvrir plusieurs. C'est également quelques clics d'économisés.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f323630336233376336613663636563313066353666333739353164393439346362343463386430612e706e672e343030783330305f7138355f63726f702e6a7067/2603b37c6a6ccec10f56f37951d9494cb44c8d0a.png.400x300_q85_crop.jpg" alt="Compositions multiples" title="Source : https://qgis.org/fr/_images/2603b37c6a6ccec10f56f37951d9494cb44c8d0a.png.400x300_q85_crop.jpg"></p>
<p>Enfin, il est possible de charger un projet directement depuis le panneau d'exploration de QGIS. Cela permet de passer d'un projet à l'autre sans se fatiguer.</p>
<h3 id="contrôle-de-formulaire-des-ressources-externes">Contrôle de formulaire des ressources externes</h3>
<p>Un nouveau contrôle de formulaire vient de faire son apparition. Il concerne principalement les fichiers et vise à remplacer les contrôles déjà existants de sélection de fichiers et d'affichage d'image même si ces deux contrôles ont été conservés.</p>
<p>Dans QGIS, les contrôles de formulaire sont les éléments qui permettent de personnaliser le formulaire de saisie des attributs. À chaque fois que vous créez un objet géographique dans QGIS, ce dernier vous propose de saisir directement ses attributs via le formulaire. C'est une fonctionnalité très intéressante qui permet de relier facilement géométrie et champs d'information. Sur ce point, QGIS est un des SIG les plus avancés, notamment par la richesse des contrôles proposés.</p>
<p>Le contrôle resource externe permet aux champs qui contiennent des liens vers des fichiers d'être mieux gérés. D'abord, on peut maintenant indiquer un ou plusieurs filtres de fichiers pour encadrer la saisie. Par exemple, vous ne voulez ajouter dans un champ que des liens vers des fichiers PDF. Le contrôle resource externe le permet. Il emprunte <a href="https://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileName">la syntaxe de filtre à Qt</a>.</p>
<p>Par ailleurs, il permet de paramétrer un chemin par défaut. C'est très utile lorsqu'on sait que tous les fichiers à référencer sont situés dans des répertoires présents sous une racine commune : l'utilisateur a moins de clics à faire pour trouver son fichier. Le stockage des chemins de fichier dans le champ peut être fait en mode relatif (on ne stocke que ce qui est nécessaire), à partir du chemin par défaut ou du chemin du fichier de projet. C'est intéressant lorsqu'on souhaite enregistrer des noms de fichier dans des champs avec un nombre de caractères limités (les fichiers Shape ne permettent que des champs de moins de 255 caractères de long).</p>
<p>Parmi les nombreuses améliorations apportées par ce contrôle, on peut maintenant présenter les chemins vers les fichiers sous forme de liens cliquables. Cela permet de pouvoir ouvrir le fichier directement depuis QGIS. Voilà de quoi faciliter la vie des utilisateurs qui n'auront plus besoin de faire un copier/coller du chemin pour ouvrir le fichier.</p>
<p>Enfin, les pages HTML et les images peuvent directement être affichées depuis l'interface de QGIS grâce à un visualiseur interne.</p>
<p>Voici un exemple d'affichage sous forme de lien :</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e6c696e66696e6974692e636f6d2f6d656469612f696d616765732f656e74726965732f643230656461623231303364373734663534386135353535326361326462653230616333396536372e706e67/d20edab2103d774f548a55552ca2dbe20ac39e67.png" alt="Ressources externes" title="Source : http://changelog.linfiniti.com/media/images/entries/d20edab2103d774f548a55552ca2dbe20ac39e67.png"></p>
<h3 id="générateur-de-symbologie-géométrique">Générateur de symbologie géométrique</h3>
<p>Comme chaque nouvelle version de QGIS, la version 2.14 amène de nouvelles fonctions dans le moteur d'expression. Pour rappel, ce moteur d'expression permet de manipuler l'ensemble des données attributaires d'une couche, ligne à ligne pour constituer un résultat final. On peut par exemple extraire le premier mot d'un champ contenant du texte. Vous pouvez utiliser le moteur d'expression dès qu'une variable peut être gérée par les données.</p>
<p>Depuis quelques versions (2.12 et 2.14), QGIS dispose d'un grand nombre de fonctions d'expression qui travaillent sur la géométrie. On peut donc utiliser ces dernières pour extraire et modifier des géométries. C'est cet élément qui est utilisé dans le générateur de symbologie. Ce dernier gère les derniers niveaux de couche de symbole (là où on trouve les styles de base comme le remplissage simple, la ligne simple, le motif de points, etc.).</p>
<p>L'intérêt majeur de cette nouvelle fonctionnalité est de pouvoir modifier à la volée la géométrie d'une couche sans toucher aux données source. On peut y avoir accès dans n'importe quel moteur de rendu (symbole unique/gradué/catégorisé/basé sur des règles), via une couche de symbole, dans l'arbre des symboles qui permet de créer le style de représentation des objets de la couche. Il suffit de choisir une couche basse et de changer son type (type de symbole) et choisir Générateur de géométrie.</p>
<p>À partir de ce moment, vous avez accès à une boîte de dialogue d'expression (contenant $geometry par défaut, ce qui renvoie la géométrie de chaque objet) et vous pouvez renseigner une expression générant de la géométrie. Pour ajouter un tampon de 0,5 mètre, utilisez <code>buffer($geometry, 0.5)</code>. Comme le générateur de géométrie se situe au niveau des couches de base de symbologie, on peut bien entendu ajouter d'autres couches ce qui donne des représentations uniques quasi-infinies.</p>
<p>Quelques exemples d'utilisation :</p>
<ul>
<li>J'ai une couche de polygones qui est souvent modifiée et je souhaite systématiquement afficher un tampon de 2m autour des polygones. La couche n'est pas dans une base de données (et je ne peux pas utiliser une vue dans le SGBDRS). Pas de problème, il suffit d'utiliser le générateur avec une expression de type buffer.</li>
<li>Je souhaite faire une anamorphose négative (réduisant la surface d'un polygone) variable selon la valeur d'un champ, j'ai juste à employer la fonction buffer avec un résultat négatif issu d'un champ (ou d'une formule).</li>
<li>Je veux intégrer un motif pour la bordure de mes polygones. La seule solution consiste à créer une géométrie surfacique à partir de ma bordure en faisant la différence entre deux tampons de la géométrie de départ. L'expression sera du type: <code>difference( buffer( $geometry , 250 ), buffer( $geometry, -250 ) )</code>. Ensuite, il suffit d'appliquer un motif de lignes ou de points et le tour est joué !</li>
</ul><p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f623036623662633933363434633035316331336465313632623435643934383662376166373639612e706e672e343030783330305f7138355f63726f702e706e67/b06b6bc93644c051c13de162b45d9486b7af769a.png.400x300_q85_crop.png" alt="Générateur de géométries" title="Source : https://qgis.org/fr/_images/b06b6bc93644c051c13de162b45d9486b7af769a.png.400x300_q85_crop.png"></p>
<p>Bien entendu, il ne s'agit que de visualisation : la donnée source n'est jamais modifiée. QGIS est l'un des seuls logiciels de SIG à permettre ces manipulations directement lors du rendu, de manière dynamique, tout en tenant compte des classes. C'est un grand pas en avant en matière de rendu cartographique. Cette fonctionnalité reste également intéressante pour les SGBDRS car si ces derniers peuvent modifier des géométries à la volée, il est fort probable qu'ils ne puissent pas tenir la charge d'un grand nombre de connexions qui feraient appel à des fonctions de génération de géométrie dynamique. À l'inverse, QGIS permet de déporter le travail sur le client SIG.</p>
<h3 id="ordre-de-tracé-des-géométries">Ordre de tracé des géométries</h3>
<p>Il arrive parfois qu'une couche contienne des objets qui se superposent. Oui, ce n'est pas une bonne pratique SIG mais ça arrive. Dans ce cas de figure, comment gérer l'affichage correctement ? QGIS 2.14 dispose d'une fonctionnalité permettant de gérer ce problème assez facilement. Il suffit d'utiliser une expression pour gérer un index Z. Ce paramètre intitulé « Contrôle de l'ordre de rendu des entités » est disponible dans le bas de l'onglet style.</p>
<p>Il permet de renseigner une ou plusieurs expressions pour gérer l'ordre d'affichage des géométries d'une même couche. Chaque expression permet de gérer un ordre de classement. On peut donc avoir plusieurs champs qui permettent le classement. Cela permet des combinaisons de tri quasiment infinies et finalement, assez simple à renseigner.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f653036636632316133356530373061323863653562336239386339326632666231633162383831642e706e672e343030783330305f7138355f63726f702e706e67/e06cf21a35e070a28ce5b3b98c92f2fb1c1b881d.png.400x300_q85_crop.png" alt="Index-Z" title="Source : https://qgis.org/fr/_images/e06cf21a35e070a28ce5b3b98c92f2fb1c1b881d.png.400x300_q85_crop.png"></p>
<h3 id="moteur-de-rendu-25d">Moteur de rendu 2.5D</h3>
<p>Issu d'un financement collectif (plusieurs collectivités européennes), le moteur de rendu 2.5D permet la simulation de la 3D dans QGIS. On parle de simulation car QGIS ne dispose pas (encore) de module de rendu en 3D qui utiliserait les fonctions 3D des cartes graphiques. C'est donc le moteur de rendu classique qui est utilisé pour déformer les polygones initiaux en objets à l'apparence 3D.</p>
<p>Pour y parvenir, on utilise le générateur de symbologie géométrique (décrit plus haut dans cette dépêche) pour créer les géométries supplémentaires de l'extrusion en hauteur du polygone, pour créer le toit ainsi que l'ombre portée. Bien entendu, on peut faire varier la hauteur selon une expression. Voici à quoi ressemble l'interface qui permet de le créer :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6c75742e696d2f313047684766447359522f536758625554464532723635555a764f2e706e67/SgXbUTFE2r65UZvO.png" alt="Interface de rendu 2.5D" title="Source : https://lut.im/10GhGfDsYR/SgXbUTFE2r65UZvO.png"></p>
<p>En fait, le moteur de rendu 2.5D n'est pas un véritable moteur de rendu à part entière. L'interface présentée est plus un assistant qui se charge de créer un style de symbole unique qui s'articule autour de 3 symbologies générées (toit, mur, ombre). Pour s'en rendre compte, il suffit de configurer le moteur 2.5D puis de basculer vers le moteur de rendu <em>Symbole unique</em>. Vous pourrez alors voir et étudier les 3 styles imbriqués :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6c75742e696d2f416739773357766546752f4f4267536f415571307050566b6749722e706e67/OBgSoAUq0pPVkgIr.png" alt="QGIS 2.5D avancé" title="Source : https://lut.im/Ag9w3WveFu/OBgSoAUq0pPVkgIr.png"></p>
<p>Une des limites de ce mode de fonctionnement est que ce rendu peut être assez consommateur de ressources machine (temps CPU) car contrairement à un symbole simple, QGIS va générer en interne toutes les géométries supplémentaires (3 géométries) ce qui prend forcément plus de temps que de générer un simple polygone. Encore une fois, même si le moteur de rendu de QGIS travaille sur plusieurs fils d'exécution (multi-thread), il ne tire pas parti de l'accélération des cartes 3D (mais les autres SIG bureautique ne le font pas non plus).</p>
<p>Néanmoins, ce mode de fonctionnement par exploitation du moteur 2D classique de QGIS a quand même un avantage majeur : vous pouvez utiliser les moteurs de rendus gradués, catégorisés par un ensemble de règles pour représenter des éléments en 2.5D avec des styles différents, avec des classes différentes. Il vous suffit de basculer dans un de ces modes pour avoir accès aux éléments de configuration habituels mais qui porteront sur une symbologie générée. Donc, pas besoin de retenir les expressions de génération 3D, QGIS s'en occupe pour vous.</p>
<p>Voici un exemple de rendu de bâtiments en 3D par QGIS 2.14 avec des hauteurs différentes selon les bâtiments et une classification de ces derniers par la couleur :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f386436366638383338303131653762633866616535343064353662663965663664623230646236382e6a70672e343030783330305f7138355f63726f702e6a7067/8d66f8838011e7bc8fae540d56bf9ef6db20db68.jpg.400x300_q85_crop.jpg" alt="Rendu 2.5D" title="Source : https://qgis.org/fr/_images/8d66f8838011e7bc8fae540d56bf9ef6db20db68.jpg.400x300_q85_crop.jpg"></p>
<h3 id="amélioration-de-la-gestion-des-unités">Amélioration de la gestion des unités</h3>
<p>C'est une petite évolution mais qui a un intérêt important : QGIS 2.14 gère mieux les unités, du moins de manière plus homogène. Auparavant, chaque outil avait plus ou moins son système d'unité indépendant. Un travail de refactorisation a été entrepris pour corriger ce point.</p>
<p>D'abord, la gestion des unités et de la représentation des coordonnées a été relocalisée dans les propriétés du projet. Ensuite, de nouvelles unités ont fait leur apparition (comme par exemple les hectares pour les mesures de surface) aussi bien pour les mesures de longueur, de surface ou angulaires. Les fonctions d'expression de calcul de longueur, de surface et d'angle renvoient le résultat selon l'unité indiquée dans les paramètres du projet. Enfin, l'affichage des coordonnées dans les différents endroits de QGIS est maintenant unifié et on peut indiquer le nombre de décimales utilisées.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f623038366632333637323065636235636163306161386262373338333237353739396166666666342e706e672e343030783330305f7138355f63726f702e6a7067/b086f236720ecb5cac0aa8bb7383275799affff4.png.400x300_q85_crop.jpg" alt="Unité unifiées" title="Source : https://qgis.org/fr/_images/b086f236720ecb5cac0aa8bb7383275799affff4.png.400x300_q85_crop.jpg"></p>
<h3 id="modules-vnet-dans-processing">Modules v.net dans Processing</h3>
<p>Processing est le module des géotraitements de QGIS. Il propose un ensemble de traitements qui reposent sur les fonctions de QGIS mais également sur d'autres SIG ou d'autres outils SIG tels que GRASS, SAGA, GDAL, Orfeo, etc. L'intégration de ces outils externes est une vrai avancée car cela évite de recréer des algorithmes ou des traitements qui sont déjà éprouvés dans d'autres logiciels. D'un point de vue de développeur, cela permet aussi d'intégrer beaucoup plus de traitements sans devoir ré-implémenter du code pour reproduire ces algorithmes. QGIS 2.14 propose donc environ 300 traitements si on inclue GRASS et GDAL et plus de 500 traitements si on ajoute SAGA.</p>
<p>En ce qui concerne les différents types de traitements disponibles, il manquait de quoi travailler sur des réseaux et de graphes. GRASS propose de nombreux algorithmes travaillant sur ce type de données, via un ensemble de traitements regroupés sous <a href="https://grass.osgeo.org/grass70/manuals/topic_network.html">le module v.net</a>. Ces traitements fonctionnent sur des couches linéaires de réseau (ou de graphe) qui sont des couches linéaires où les segments sont interconnectés entre eux par un seul point (un noeud) et ne s'entrecroisent pas.</p>
<p>QGIS 2.14 donne accès à l'ensemble des traitements v.net de GRASS via Processing. Vous aurez besoin de la version 7 de GRASS d'installée sur votre station de travail, en sachant que c'est la version qui est déployée dans l'installeur pour MS-Windows de QGIS. Pour les utiliser, rien de plus simple : il suffit de disposer d'une couche linéaire de réseau et d'une (ou plusieurs ou pas du tout suivant le traitement employé) couche de points puis de choisir votre traitement dans l'arbre de la boîte à outils de traitements. Ils sont situés dans les commandes GRASS 7, dans la partie Vecteur.</p>
<p>Vous pourrez ainsi réaliser des cartes isochrones, des cartes de répartition de secteur, résoudre les problèmes du voyageur de commerce, calculer les chemins les plus courts entre deux séries de points, etc.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f363535626266636363343939376135613365336431663563373039646135323737656566363030302e706e672e343030783330305f7138355f63726f702e706e67/655bbfccc4997a5a3e3d1f5c709da5277eef6000.png.400x300_q85_crop.png" alt="GRASS7 v.net" title="Source : https://qgis.org/fr/_images/655bbfccc4997a5a3e3d1f5c709da5277eef6000.png.400x300_q85_crop.png"></p>
<h3 id="métadonnées-inspire-pour-qgis-server">Métadonnées INSPIRE pour QGIS Server</h3>
<p>Si QGIS Desktop est souvent mis en avant, QGIS Server continue à évoluer. Ainsi, il peut maintenant renvoyer des métadonnées INSPIRE aux clients WMS et WFS. Attention, toute la norme INSPIRE n'est pas gérée par QGIS. En effet, vous pouvez pour l'instant juste indiquer la langue officielle du service (parmi les 24 langues de l'union européenne) ainsi qu'indiquer une URL permettant l'accès à une fiche de métadonnées externe ou alors les dates de mise à jour des métadonnées.</p>
<p>Ces éléments se configurent dans la partie OWS des paramètres du projet.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f716769732e6f72672f66722f5f696d616765732f346565343435626362356539656162336662396266326564613866396231623831626265323163302e706e672e343030783330305f7138355f63726f702e6a7067/4ee445bcb5e9eab3fb9bf2eda8f9b1b81bbe21c0.png.400x300_q85_crop.jpg" alt="Paramètres OWS server" title="Source : https://qgis.org/fr/_images/4ee445bcb5e9eab3fb9bf2eda8f9b1b81bbe21c0.png.400x300_q85_crop.jpg"></p>
<h2 id="et-pour-la-version-216">Et pour la version 2.16 ?</h2>
<p>La phase de développement n'a débuté que depuis un mois mais certaines nouvelles fonctionnalités sont déjà apparues dans quelques pull-requests ou quelques commits. Voici quelques éléments d'intérêt qui devraient intégrer la prochaine version (2.16 de QGIS).</p>
<h3 id="syntaxe-des-étiquettes-html">Syntaxe des étiquettes HTML</h3>
<p>C'était une grande demande de la part des utilisateurs et un des derniers points du moteur d'étiquettes à revoir, mais c'est en bonne voie d'intégration. Dans la version 2.16 de QGIS, il sera possible de bénéficier d'une syntaxe de style pour les étiquettes. L'intérêt immédiat de ce point est de permettre de styler indépendemment chaque partie de la chaîne de caractères qui compose l'étiquette.</p>
<p>Ainsi, si votre étiquette est composée de plusieurs mots, vous pourrez mettre le premier en gras et en couleur alors que le second sera simplement en noir. La syntaxe des styles d'étiquettes permet d'utiliser le moteur d'expression de QGIS ce qui donne des combinaisons très étendues, voire quasi infinies (on peut concaténer plusieurs champs, changer de style si la valeur d'un champ est supérieur à une valeur).</p>
<p>Cette fonctionnalité devrait permettre plus de richesse dans l'affichage des étiquettes, ne serait-ce que pour changer la couleur d'une étiquette composée de plusieurs mots, ce qui est un cas d'utilisation finalement assez fréquent et qui manquait dans QGIS.</p>
<p>Voici le lien vers <a href="https://github.com/qgis/QGIS/pull/2856">la pull-request pour les plus curieux</a>. Et une petite image d'aperçu de ce que ça pourrait donner :<br><img src="//img.linuxfr.org/img/68747470733a2f2f636c6f75642e67697468756275736572636f6e74656e742e636f6d2f6173736574732f3338313636302f31333432353331392f62386437323439632d646666312d313165352d393437362d3965663133643938643233632e706e67/b8d7249c-dff1-11e5-9476-9ef13d98d23c.png" alt="Style des étiquettes" title="Source : https://cloud.githubusercontent.com/assets/381660/13425319/b8d7249c-dff1-11e5-9476-9ef13d98d23c.png"></p>
<h3 id="intégration-des-algorithmes-grass-7-dans-qgis">Intégration des algorithmes GRASS 7 dans QGIS</h3>
<p>Dans la version 2.14 de QGIS, les géotraitements (appelés aussi algorithmes) v.net de GRASS7 ont été intégrés. Avec eux, a été introduit un mécanisme de code permettant de gérer les traitements de GRASS qui implique des vérifications et des pré-traitements amonts avant que GRASS puisse les dérouler correctement. Ainsi, potentiellement, tous les traitements GRASS sont maintenant intégrables dans Processing.</p>
<p>Ne reste plus qu'à tous les intégrer et c'est en partie réalisé. L'objectif est ici de disposer de tous les algorithmes de GRASS7 directement dans QGIS, sans passer par l'extension GRASS. Pour l'instant, <a href="https://github.com/qgis/QGIS/pull/2865">tous les modules raster (r.*)</a> et <a href="https://github.com/qgis/QGIS/pull/2904">vecteurs (v.*)</a> ont été intégrés. Il reste les modules dédiés aux traitements sur image satellite (i.*) mais on peut espérer que ces derniers soient publiés avant la phase de gel des nouvelles fonctionnalités (qui commence dans 2 mois).</p>
<h3 id="refonte-du-fournisseur-de-données-wfs">Refonte du fournisseur de données WFS</h3>
<p><a href="https://github.com/qgis/QGIS/commit/9040ec1baf33e55a9ba5abcc4fa2ee18d54a4212">Ce commit</a> (ainsi que ceux qui vont suivre) améliore grandement le fournisseur de données WFS. Pour les néophytes, <a href="https://fr.wikipedia.org/wiki/Web_Feature_Service">WFS est un service web</a> permettant de transmettre des données vectorielles à un client. C'est un standard de l'<a href="https://fr.wikipedia.org/wiki/Open_Geospatial_Consortium">OGC</a> qui permet de télécharger à la volée des données vecteur depuis un serveur gérant ce protocole via HTTP. Jusqu'à présent, QGIS avait connu peu d'évolution sur le client WFS interne actuel. Il existait également une extension qui permettait la gestion de la version 2.0 de ce protocole mais elle n'était pas intégrée dans le cœur du projet.</p>
<p>C'est donc maintenant chose faîte avec les fonctionnalités suivantes :</p>
<ul>
<li>Support des protocoles WFS 1.0, 1.1 et 2.0 (toute la norme n'est pas implémentée).</li>
<li>Auto-détection du protocole (évite au client de paramétrer tout ça à la main).</li>
<li>Implémentation d'un cache d'entités pour gérer les couches volumineuses.</li>
<li>Des tests unitaires pour tout ça bien sûr !</li>
</ul><h2 id="ce-quon-peut-dire-sur-la-version-30-de-qgis">Ce qu'on peut dire sur la version 3.0 de QGIS</h2>
<h3 id="choix-de-la-gouvernance-du-projet">Choix de la gouvernance du projet</h3>
<p>QGIS dispose d'<a href="https://qgis.org/fr/site/getinvolved/governance/psc.html">un comité de projet</a>. Ce dernier prend des décisions majeures sur l'orientation de QGIS. Depuis quelques versions maintenant, on parle de la future version 3.0 de QGIS qui devrait permettre de casser la compatibilité avec la branche 2.x tout en améliorant les fonctionnalités. En effet, un certain nombre de nouveautés impliquent de modifier fortement les API pour être implémentées et QGIS essaye de ne rien casser dans la branche 2.x.</p>
<p><a href="http://blog.qgis.org/2016/02/10/qgis-3-0-plans/">Le PSC a donc pris une résolution générale</a> qu'on peut résumer aux conclusions suivantes:</p>
<ul>
<li>Le développement de QGIS v3.0 se fera dans une branche dédiée.</li>
<li>Cette branche accueillera les évolutions techniques qui s'imposent : migration vers Qt5, utilisation de PyQt5 et passage à Python3.</li>
<li>La publication de la version 3.0 de QGIS utilisera le mode de publication : « ça sortira quand ce sera prêt ! ».</li>
<li>Le développement « traditionnel » continue dans la branche 2.x qui conserve son cycle de publication par objectif de temps.</li>
<li>Il y aura une version 2.16.</li>
</ul><p>Le mot d'ordre est d'essayer de commencer dès maintenant à coder dans la branche 3.x les nouvelles fonctionnalités impossibles à intégrer dans la branche 2.x. Le fait de laisser une version 2.16 permet de continuer à faire évoluer QGIS sur les points qui n'ont pas besoin d'un saut technologique majeur tout en permettant de se laisser du temps pour faire une migration propre (qui marche) vers Qt5/Python3.</p>
<h3 id="inclusions-de-python3-et-de-qt5">Inclusions de Python3 et de Qt5</h3>
<p>Depuis quelques semaines maintenant, Python3 et Qt5 sont de la partie dans QGIS. Pour l'instant, ils ne permettent pas de disposer de l'ensemble des fonctionnalités de QGIS avec ces composants techniques mais on peut maintenant dire que l'infrastructure est là.<br>
Il y a pas mal de commits pour effectuer des corrections (notamment les choses qui coincent avec Python3) et on peut dès maintenant compiler QGIS avec Qt5 ainsi qu'intégrer Python3).</p>
<p>Par ailleurs, QGIS utilise Travis-Ci pour effectuer son intégration continue et des évolutions permettent maintenant de compiler (et tester) automatiquement des builds avec Qt5. Tout ça prend une bonne direction même s'il reste du chemin à parcourir tant les fonctionnalités à tester sont nombreuses.</p>
<h2 id="je-veux-aider-le-projet-qgis-que-puis-je-faire">Je veux aider le projet QGIS, que puis-je faire ?</h2>
<p>Passons maintenant au moment propagande… QGIS n'est plus depuis quelques années un logiciel libre développé dans son coin par quelques développeurs disparates. <a href="https://qgis.org/fr/site/forusers/visualchangelog214/index.html#id1">Le nombre de sponsors</a> peut donner quelques pistes sur le sérieux du développement de QGIS. Ainsi, pour la version 2.14, on peut compter plus de 31 sponsors cités, ce qui est loin d'être négligeable. Néanmoins, <strong>QGIS reste un projet ouvert où tout le monde peut participer</strong>. Si vous consultez <a href="https://hub.qgis.org/projects/quantum-gis/issues?set_filter=1">le bugtracker</a>, vous vous rendrez-compte assez facilement qu'il reste beaucoup de place pour améliorer QGIS : il reste 1300 bugs à corriger et 1300 demandes d'évolution à implémenter. Ce chiffre est d'ailleurs en stagnation depuis au moins 6 mois, ce qui montre que même si des bugs sont corrigés et des nouvelles fonctionnalités amenées dans QGIS, il y a vraiment besoin de ressources pour continuer à améliorer le projet.</p>
<p>Selon votre profil, vous pouvez nous rejoindre sur les points qui suivent:</p>
<ul>
<li>
<strong>Je suis développeur C+/Qt</strong> : c'est parfait, venez nous aider à améliorer le code et les algorithmes internes de QGIS. Le développement <a href="https://github.com/qgis/QGIS">se déroule sur GitHub</a> et n'oubliez pas de lire <a href="https://qgis.org/fr/site/getinvolved/development/index.html">la documentation de développement</a>.</li>
<li>
<strong>Je suis développeur Python</strong> : c'est très bien, QGIS regorge de modules Python et d'extensions internes codées dans ce langage. Par exemple, venez nous aider à corriger <a href="https://hub.qgis.org/projects/quantum-gis/issues?query_id=88">les bugs de Processing</a>, cela permettra de répondre aux besoins des utilisateurs de géotraitements. À ce propos, vous pouvez également nous aider sur <a href="https://github.com/qgis/QGIS/tree/master/python/plugins/processing/tests">la création des tests unitaires pour Processing</a> qui ont été publiés avec QGIS 2.14. Sinon, vous pouvez travailler également sur le module DB Manager qui vous permettra de proposer de meilleurs services aux utilisateurs SIG avancés qui veulent faire des requêtes ou gérer leurs bases de données.</li>
<li>
<strong>Je suis un utilisateur courant de QGIS</strong> : même si vous ne savez pas coder, vous pouvez facilement nous aider. Pour commencer, retenez que nous avons besoin de réaliser des tests approfondis lors de la phase de gel des fonctionnalités qui commence au bout de 3 mois de développement. À ce stade, les nouvelles fonctionnalités doivent être fortement testées avant que nous puissions publier la future version de production. Par ailleurs, il faudra également veiller à ce que ces nouvelles fonctionnalités ne cassent pas quelque-chose qui fonctionnait auparavant. Et pour cet ensemble de tests, <strong>rien ne vaut les vraies données</strong>, basées sur des cas concrets. Il vous faudra installer les versions compilées toutes les nuits et travailler sur vos données habituelles tout en faisant remonter tout problème via le bugtracker. Plus nous aurons d'utilisateurs pendant cette phase, moins il y aura de problèmes dans la publication de la nouvelle version (nous ne serons donc pas forcément obligés de publier une version corrective en un mois après la sortie de la nouvelle version). Votre rôle ici est très important car les développeurs n'ont forcément que des jeux de tests limités et ils sont concentrés sur la résolution de bugs pendant cette phase qui dure un seul mois. Merci pour votre implication dans les tests. Si vous avez de l'expérience métier, vous pouvez aider les utilisateurs QGIS qui posent des questions, notamment sur StackOverFlow.</li>
<li>
<strong>Je suis bon en anglais technique (SIG et/ou informatique)</strong> : venez rejoindre <a href="https://www.transifex.com/qgis/qgis-documentation/">l'équipe de traduction de QGIS</a>. Nous sommes nombreux à être inscrits mais nous avons toujours besoin de forces vives pour faire en sorte que QGIS Desktop soit toujours 100 % traduit en français ou que le site web et la documentation restent à jour par rapport à la version en langue anglaise. Ceci est particulièrement vrai lors de la phase de gel des fonctionnalités. Les nouvelles fonctionnalités amènent souvent de la documentation interne ou des chaînes de caractères à traduire. Il faut de plus rester sur le qui-vive pendant toute cette phase car des modifications de texte peuvent intervenir même quelques heures avant la compilation finale. Il serait en effet bon d'atteindre régulièrement les 100 % de traduction de l'application bureautique (ce qui permet de dire à la communauté que QGIS est complètement traduit en français). Mais une fois que la version officielle est compilée et distribuée, il nous faut également beaucoup d'aide pour traduire correctement la page web des changements en image. Cette page est très importante pour les utilisateurs francophones de QGIS car elle permet de leur présenter toutes les nouvelles fonctionnalités dans leur langue maternelle, ce qui leur permet d'avoir une information plus claire sur ce que le nouveau QGIS peut leur apporter. Plus nous serons nombreux à être des traducteurs actifs, plus le travail lourd et fastidieux de traduction sera réparti et plus QGIS sera facilement traduit.</li>
</ul><p>Dans tous les cas, nous saluerons vos contributions par un grand merci et vous pourrez apporter votre pierre à l'édifice QGIS !</p>
<h2 id="conclusions">Conclusions</h2>
<p>Encore une fois, QGIS respecte son rythme soutenu d'intégration de nouvelles fonctionnalités, en continuant à sortir une nouvelle version tous les 4 mois, ce qui est d'autant mieux pour les utilisateurs.</p>
<p>Sur la partie bureautique, on peut maintenant dire que le niveau de QGIS est assez proche des meilleurs outils SIG non libres disponibles sur le marché. Le moteur de rendu est l'un des plus avancés en ce qui concerne les fonctionnalités cartographiques et ses performances sont d'un très bon niveau comparativement à ce qu'on peut trouver pour d'autres logiciels de ce type. Le générateur de symbologie géométrique est une fonctionnalité qui n'existe pas ailleurs. Le moteur d'étiquette continue également à s'améliorer avec le temps. QGIS offre de plus en plus de géotraitements qui permettent de manipuler beaucoup plus facilement les données, même avec des requêtes complexes.</p>
<p>Pourtant, il reste toujours des défis techniques à gérer, notamment, le passage à Qt5 et à Python3. On peut constater (dans le code, il n'y a que ça de vrai) que les développeurs principaux du projet y investissent pas mal de temps et c'est tant mieux pour l'avenir. Avec 191 contributeurs recensés sur GitHub, l'équipe de développement s'étoffe, ce qui montre une certaine forme de vitalité pour le projet.</p>
<p>Souhaitez-nous de construire une excellente version 3.0, en attendant de vous retrouver pour la sortie de QGIS 2.16 dans 3 mois…</p></div><div><a href="https://linuxfr.org/news/sortie-de-qgis-2-14-ltr-essen.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/107824/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qgis-2-14-ltr-essen#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXYves BourguignonNils RatusznikBenoît Sibaudpalm123Vincent Pjcr83https://linuxfr.org/nodes/107824/comments.atomtag:linuxfr.org,2005:News/367762015-10-30T09:15:22+01:002015-10-30T09:15:22+01:00Sortie de QGIS 2.12 "Lyon"Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>QGIS est une suite logicielle de traitement de l'information géographique. Elle permet de générer des cartes, d'analyser des données spatiales et de les publier, en ligne ou sur papier. Elle permet également de réaliser de nombreux traitements et algorithmes sur des données spatiales ou d'autres données liées. En d'autres termes, QGIS est un <a href="https://fr.wikipedia.org/wiki/SIG" title="Définition Wikipédia">SIG</a> ou Système d'Information Géographique, conçu pour recueillir, stocker, traiter, analyser, gérer et présenter tous les types de données spatiales et géographiques.</p>
<p>La version 2.12 nommée « Lyon » en hommage à la ville du même nom, est disponible depuis le 26 octobre 2015.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e6c696e66696e6974692e636f6d2f6d656469612f696d616765732f70726f6a656374732f333634383533393730376430373839393033666466656461633337303535383466313266613661632e706e67/3648539707d0789903fdfedac3705584f12fa6ac.png" alt="QGis Lyon" title="Source : http://changelog.linfiniti.com/media/images/projects/3648539707d0789903fdfedac3705584f12fa6ac.png"></p>
<p>Dans la suite de la dépêche, un aperçu des nouveautés vous sera présenté plus en détails ainsi qu'une esquisse des développements à venir. Pour le public non averti, je vous invite à lire le début de <a href="//linuxfr.org/news/sortie-de-qgis-2-10-pisa">la dépêche sur la sortie de QGIS 2.10</a> pour avoir un petit rappel sur les SIG et sur QGIS…</p></div><ul><li>lien nᵒ 1 : <a title="http://qgis.org/fr/site/" hreflang="fr" href="https://linuxfr.org/redirect/95265">Site principal du projet QGIS</a></li><li>lien nᵒ 2 : <a title="http://qgis.org/fr/site/forusers/download.html" hreflang="fr" href="https://linuxfr.org/redirect/95266">Page de téléchargement du projet QGIS</a></li><li>lien nᵒ 3 : <a title="http://qgis.org/fr/site/forusers/visualchangelog212/index.html" hreflang="fr" href="https://linuxfr.org/redirect/95267">Principales évolutions en images depuis la dernière version</a></li><li>lien nᵒ 4 : <a title="https://github.com/qgis/QGIS" hreflang="en" href="https://linuxfr.org/redirect/95268">Dépôt git officiel des sources de QGIS</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#pr%C3%A9sentation">Présentation</a></li>
<li>
<a href="#nouveaut%C3%A9s-par-rapport-%C3%A0-la-derni%C3%A8re-version">Nouveautés par rapport à la dernière version</a><ul>
<li><a href="#syst%C3%A8me-dauthentification">Système d'authentification</a></li>
<li><a href="#affichage-stylis%C3%A9-des-cellules-des-tables-attributaires">Affichage stylisé des cellules des tables attributaires</a></li>
<li><a href="#%C3%89diteur-avanc%C3%A9-de-param%C3%A8tres"> Éditeur avancé de paramètres</a></li>
<li>
<a href="#am%C3%A9liorations-de-dbmanager">Améliorations de DBManager</a><ul>
<li><a href="#export-vers-dautres-formats-de-fichiers-depuis-dbmanager">Export vers d'autres formats de fichiers depuis DBManager</a></li>
<li><a href="#gestion-doracle-spatial">Gestion d'Oracle Spatial</a></li>
<li><a href="#import-des-entit%C3%A9s-s%C3%A9lectionn%C3%A9es-dans-dbmanager">Import des entités sélectionnées dans DBManager</a></li>
<li><a href="#fen%C3%AAtre-de-requ%C3%AAte-en-onglet">Fenêtre de requête en onglet</a></li>
</ul>
</li>
<li><a href="#plugin-de-v%C3%A9rification-g%C3%A9om%C3%A9trique">Plugin de vérification géométrique</a></li>
<li>
<a href="#am%C3%A9liorations-des-outils-d%C3%A9dition-de-donn%C3%A9es">Améliorations des outils d'édition de données</a><ul>
<li><a href="#cr%C3%A9ation-de-polylignes-circulaires">Création de polylignes circulaires</a></li>
<li><a href="#table-de-n%C5%93uds">Table de nœuds</a></li>
</ul>
</li>
<li>
<a href="#interface-utilisateur">Interface utilisateur</a><ul>
<li><a href="#nouvel-%C3%A9cran-daccueil">Nouvel écran d'accueil</a></li>
<li><a href="#gestion-des-th%C3%A8mes-dinterface-utilisateur">Gestion des thèmes d'interface utilisateur</a></li>
</ul>
</li>
<li><a href="#nouvelles-fonctions-dans-les-expressions">Nouvelles fonctions dans les expressions</a></li>
<li>
<a href="#%C3%89tiquettes">Étiquettes</a><ul>
<li><a href="#am%C3%A9lioration-du-moteur-d%C3%A9tiquettes">Amélioration du moteur d'étiquettes</a></li>
<li><a href="#%C3%89tiquettes-bas%C3%A9es-sur-des-r%C3%A8gles">Étiquettes basées sur des règles</a></li>
<li><a href="#affichage-s%C3%A9lectif-des-%C3%A9tiquettes">Affichage sélectif des étiquettes</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#pour-lavenir">Pour l'avenir</a><ul>
<li><a href="#rythme-des-publications-de-version">Rythme des publications de version</a></li>
<li><a href="#passage-%C3%A0-qt5-et-python3">Passage à Qt5 et Python3</a></li>
<li><a href="#am%C3%A9liorations-du-pilote-postgresql">Améliorations du pilote PostgreSQL</a></li>
<li><a href="#%C3%89volution-des-acc%C3%A8s-r%C3%A9seau"> Évolution des accès réseau</a></li>
<li><a href="#modification-de-linterface-de-cr%C3%A9ation-de-fonctions-dexpressions">Modification de l'interface de création de fonctions d'expressions</a></li>
</ul>
</li>
<li><a href="#conclusions">Conclusions</a></li>
</ul><h2 id="présentation">Présentation</h2>
<p>QGIS est un SIG convivial distribué sous licence publique générale GNU. C'est un projet officiel de la fondation Open Source Geospatial (OSGeo). Il est disponible sur les systèmes d'exploitation GNU/Linux, Mac OS X, Windows et Android et intègre de nombreux formats vecteur, raster, base de données et fonctionnalités.</p>
<p>QGIS est développé en C++ avec la bibliothèque Qt (en version 4 pour le moment). Son architecture lui permet également d'utiliser des extensions codées en Python (version 2) et la très grande majorité des classes du cadriciel de QGIS sont disponibles sous Python.</p>
<p>QGIS est une des applications majeures qui utilisent Qt. Actuellement, l'arborescence des sources (tout confondu) occupe près de 350 Mo. Les contributeurs recensés sur GitHub sont au nombre de 169.</p>
<p>Par ailleurs QGIS s'interface avec de nombreux autres logiciels, que ce soit des bases de données spatiales comme PostgreSQL/PostGIS ou Oracle Spatial, mais également avec un grand nombre de logiciels de SIG libres comme GRASS, SAGA ou encore Orfeo.</p>
<p>Même s'il reste un logiciel libre, QGIS assure en grande partie le financement de son développement via des sponsors divers qui vont d'entreprises ayant besoin de SIG comme des compagnies aériennes à des organisations gouvernementales (y compris le gouvernement français) en passant par des universités et également des particuliers.</p>
<h2 id="nouveautés-par-rapport-à-la-dernière-version">Nouveautés par rapport à la dernière version</h2>
<h3 id="système-dauthentification">Système d'authentification</h3>
<p>Jusqu'à présent, QGIS avait une gestion trop simple de l'authentification. Il était possible de conserver les mots de passe de connexion aux serveurs (SGBDRS comme PostGIS ou Oracle Spatial, ou aux serveurs web WMS/WFS) dans les paramètres de connexion, stockés en clair dans le fichier de projet ou dans la configuration globale de QGIS. Effectivement, cette situation qui dure depuis des années était loin d'être satisfaisante pour les utilisateurs travaillant avec des services imposant une authentification.</p>
<p>En effet, dans ces environnements, les utilisateurs doivent souvent se connecter à des bases de données ou des services web avec des comptes différents. Dans ce genre de situation, la tentation est de cocher la case "Enregistrer le mot de passe" pour éviter de s'authentifier toutes les 2 minutes. Cette pratique pose des vrais problèmes de sécurité et la seule solution était de transmettre la gestion des mots de passe à d'autres logiciels (comme Keepass par exemple).</p>
<p>Avec QGIS 2.12, le problème est en partie réglé avec une première intégration d'un système d'authentification qui permet de garantir un minimum de sécurité au sein de QGIS. Pour faire simple, ce système est proche en termes de fonctionnement de celui de Firefox/Iceweasel qui repose sur un mot de passe principal qui protège les autres.</p>
<p>En termes d'implémentation, une base de données locale d'authentification est utilisée (au format SQLite) et toute la gestion du chiffrement repose sur la bibliothèque <a href="http://delta.affinix.com/qca/">Qt Cryptographic Architecture</a> pour la partie bas niveau. Des classes spécifiques pour QGIS ont été également implémentées pour faciliter la gestion de l'authentification. Ces dernières sont également disponibles sous Python et permettent aux extensions de QGIS d'en bénéficier.</p>
<p>Pour faciliter le développement, le système d'authentification de QGIS est développé de manière modulaire. La base de l'architecture est déployée dans la version 2.12 et elle est accompagnée de quatres modules d'authentification. Ce développement modulaire permettra d'ajouter de nouvelles méthodes d'authentification, en fonction des besoins et des évolutions. Pour l'instant, les deux modules sont les suivants:</p>
<ul>
<li>Le module "basic" gère l'authentification de base sous forme identifiant/mot de passe/domaine. Ce module est disponible pour les connecteurs PostgreSQL et OWS (WMS, WFS, WCS). Pour ce module, l'utilisateur enregistre son identifiant, le mot de passe et un domaine de connexion (si utile). Avec ces informations il est effectivement possible de se connecter à une base de données PostgreSQL et à des services web OGC.</li>
<li>trois modules d'authentification via IGC (plusieurs méthodes d'identification par certificat ou de stockage des certificats). Ces modules permettent d'attaquer les services Web OGC qui reposent sur les mécanismes d'authentification d'HTTP, utilisant les certificats. Pour ces modules, QGIS propose de stocker les certificats directement dans la base d'authentification SQLite, protégée par le mot de passe principal.</li>
</ul><p>Attention, cette nouvelle architecture d'authentification cohabite avec l'ancienne. Concrètement, il faut que la gestion du pilote de donnée intègre les nouvelles méthodes d'authentification (ainsi qu'un moyen graphique de choix de l'authentification). Voilà pourquoi, seuls les pilotes de données PostgreSQL et OWS utilisent cette nouvelle solution d'authentification. Dans les prochaines versions de QGIS, d'autres pilotes de données devraient suivre (il reste Oracle Spatial, MySQL, MS-SQL server, etc.).</p>
<p>Il est donc fort probable que ce premier travail d'incorporation se poursuive dans les futures versions de QGIS et que cette nouvelle solution d'authentification rencontre des bugs ou des failles de sécurité. Néanmoins, cette nouvelle fonctionnalité est un travail d'intérêt qui peut fortement améliorer la partie sécurité de QGIS quand on sait à quel point les logiciels de SIG bureautiques sont souvent à la traîne sur le sujet. Pour l'instant, en plus des interfaces des connecteurs, tout se déroule dans les paramètres de QGIS avec un nouvel onglet dédié à l'authentification:</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f643663393330356138646361656133613561366330333964656334306435306530636166323366662e706e67/d6c9305a8dcaea3a5a6c039dec40d50e0caf23ff.png" alt="Onglet authentification" title="=320x240 | Source : http://changelog.qgis.org/media/images/entries/d6c9305a8dcaea3a5a6c039dec40d50e0caf23ff.png"></p>
<h3 id="affichage-stylisé-des-cellules-des-tables-attributaires">Affichage stylisé des cellules des tables attributaires</h3>
<p>Comme déjà abordé dans la dépêche précédente, il est maintenant possible d'affecter des styles aux cellules de la table attributaire. Cette dernière permet de consulter, de trier, de modifier et de faire des calculs/traitements sur les données alphanumériques d'une couche.</p>
<p>Pour faire simple, il existe maintenant un nouveau panneau (masqué par défaut) dans la table d'attributs qui permet de créer des règles d'affichage. Ces règles permettent de gérer la couleur de fond, la police de caractère (et tout ce qui va avec comme la couleur, la taille, le type de police, etc.) ainsi que de permettre d'afficher une icône dans la cellule. Les règles s'appliquent en fonction du contenu de chaque cellule et elles utilisent le système d'expression de QGIS ce qui permet une grande variété de traitements. Il est possible de créer des règles qui s'appliquent à toutes les lignes et des règles qui s'appliquent uniquement sur une seule colonne.</p>
<p>Les règles sont établies pour une couche et elles sont stockées dans le fichier de projet QGIS (le fichier qui contient tous les paramètres de votre "document" QGIS). Elles s'appliquent donc dès l'ouverture du fichier de projet. Comme ces règles sont dynamiques, si vos données ont été modifiées (par exemple, si elles proviennent d'une table d'un SGBDRS très souvent mise à jour), le style s'appliquera aux nouvelles valeurs.</p>
<p>A quoi peut bien servir cette fonctionnalité ? L'intérêt le plus immédiat est sans doute de commencer à mettre en place une brique permettant d'améliorer l'aspect visuel de la table attributaire qui, il faut bien le reconnaître est assez peu accueillante même si elle reste vraiment très fonctionnelle. L'autre point qui vient naturellement est que cette fonctionnalité permet de repérer plus facilement les valeurs qui dépassent ou qui franchissent un seuil, et ce, d'un simple coup d’œil. Pour certaines utilisations, c'est vraiment très pratique.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e6c696e66696e6974692e636f6d2f6d656469612f696d616765732f656e74726965732f616539616665666461303433643331656637373138353238643530366439386539306537613166372e706e67/ae9afefda043d31ef7718528d506d98e90e7a1f7.png" alt="Aperçu de la colorisation des cellules de la table attributaire" title="=400x | Source : http://changelog.linfiniti.com/media/images/entries/ae9afefda043d31ef7718528d506d98e90e7a1f7.png"></p>
<h3 id="Éditeur-avancé-de-paramètres"> Éditeur avancé de paramètres</h3>
<p>Cet éditeur est un peu le <em>about:config</em> de Firefox/Iceweasel. Concrètement, QGIS stocke ses paramètres internes dans le mécanisme des <a href="http://pyqt.sourceforge.net/Docs/PyQt4/qsettings.html#details">QSettings de Qt</a>.<br>
Avec l'éditeur de paramètres, il est possible d'attaquer tous les paramètres internes de QGIS via une interface graphique. Bien entendu, ces manipulations peuvent entraîner un comportement modifié de QGIS ou encore, vous pouvez perdre certaines configurations (celle des configurations vers les bases de données spatiales par exemple). L'éditeur est assez simple pour le moment: pas de recherche de valeur ou de clef pour l'instant. Son intérêt est de pouvoir modifier le comportement de QGIS sans devoir modifier des fichiers de configuration ou des bases de registre.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f366435393938386266313137323631393235373939313563666631386632623831653366396338662e706e67/6d59988bf11726192579915cff18f2b81e3f9c8f.png" alt="Éditeur avancé de paramètres de QGIS 2.12" title="=400x | Source : http://changelog.qgis.org/media/images/entries/6d59988bf11726192579915cff18f2b81e3f9c8f.png"></p>
<h3 id="améliorations-de-dbmanager">Améliorations de DBManager</h3>
<h4 id="export-vers-dautres-formats-de-fichiers-depuis-dbmanager">Export vers d'autres formats de fichiers depuis DBManager</h4>
<p>Jusqu'à présent, lorsque vous faisiez une requête (géographique ou attributaire) sous DBManager (le gestionnaire/requêteur de bases de données Spatiale aux formats PostGIS/Spatialite/Oracle Spatial), vous ne pouviez exporter vos résultats que directement dans QGIS ou vers un fichier externe forcément au format SHP (<a href="https://fr.wikipedia.org/wiki/Shapefile">ShapeFile</a>, format propriétaire d'ESRI et un des standards de fait de fichiers géographiques). Avec la version 2.12 de QGIS, on peut maintenant choisir un autre format parmi ceux qui sont gérés par la bibliothèque OGR (qui gère un nombre de formats assez conséquent).</p>
<p>QGIS sait bien entendu ouvrir tout fichier géré par OGR depuis des lustres mais cette fonctionnalité permet de moins dépendre du format pivot SHP et de supprimer la majorité du travail de conversion postérieure lorsqu'on souhaite extraire le résultat d'une requête créée avec DBManager.</p>
<h4 id="gestion-doracle-spatial">Gestion d'Oracle Spatial</h4>
<p>Comme annoncé dans la dernière dépêche, DBManager gère maintenant les connexions Oracle. Vous pouvez donc réaliser facilement des requêtes spatiales ou attributaires sur une base de données Oracle. Cette fonctionnalité permet également d'amener un outil de gestion directement intégré à QGIS pour les bases de données Oracle. Vous pouvez en effet créer des tables (si vous avez les droits qui vont bien naturellement), modifier certains champs.</p>
<p>Cette fonctionnalité gère les vues et les vues matérialisées: pour ces "tables" un peu spéciales, des informations supplémentaires sont affichées, notamment la définition de la vue/vue matérialisée ce qui peut être utile en cas de débogage. Vous pouvez également rafraîchir vos vues matérialisées (si vous en avez le droit) directement depuis QGIS (table par table via l'interface graphique ou via une requête SQL). Vous pouvez également définir ou supprimer des index ainsi que mettre à jour l'emprise de la couche (cette information étant stockée dans les tables de métadonnées Oracle Spatial) de manière dynamique.</p>
<h4 id="import-des-entités-sélectionnées-dans-dbmanager">Import des entités sélectionnées dans DBManager</h4>
<p>Autre petite modification qui a son importance, on peut maintenant importer uniquement les entités sélectionnées dans des couches via DBManager. Auparavant, il était indispensable de faire un import global, d'ouvrir la table dans le canevas de carte de QGIS, de faire une sélection, de l'inverser et de supprimer les objets. Voilà pas mal de clics d'économisés !</p>
<h4 id="fenêtre-de-requête-en-onglet">Fenêtre de requête en onglet</h4>
<p>Autre petite modification qui va ravir les "requêteurs" chevronnés: les fenêtres de requête sont maintenant des onglets qui s'ajoutent à la suite des onglets d'information sur la table/vue, l'aperçu des données de la table et l'aperçu géographique. Auparavant, les fenêtres des requêtes étaient flottantes et il était vraiment pénible d'en gérer plus d'une seule. Avec QGIS 2.12, on peut empiler plusieurs fenêtres et passer de l'une à l'autre sans aucun souci.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6c75742e696d2f363179423257535961412f49644c4a75566c47366c4644614231572e706e67/IdLJuVlG6lFDaB1W.png" alt="Requêtes en TAB" title="Source : https://lut.im/61yB2WSYaA/IdLJuVlG6lFDaB1W.png"></p>
<h3 id="plugin-de-vérification-géométrique">Plugin de vérification géométrique</h3>
<p>QGIS avait déjà un outil de vérification géométrique (Vérification de la validité des géométries) mais maintenant, il en dispose d'un autre (Vérifier les géométries). Les deux outils vont sans doute cohabiter pendant plusieurs versions car ils sont différents dans leurs interfaces et leurs contrôles. Le nouveau plugin "Vérifier les géométries" présente une interface assez complète pour configurer un ensemble de règles à vérifier. Par exemple, vous pouvez vérifier que la géométrie ne contient que des polygones ou qu'elle ne contient pas de géométries qui se superposent. Les options à vérifier sont assez complètes et répondent à la majorité des besoins de vérification.</p>
<p>L'autre outil de vérification géométrique est beaucoup plus simple dans son interface car il ne permet pas de choisir ce qui est à vérifier. Il se contente de lancer une batterie de tests et d'annoncer les résultats, sans possibilité de choisir les tests qui seront réalisés. Il y a eu <a href="http://osgeo-org.1560.x6.nabble.com/Geometry-Checker-contra-Topology-Checker-td5227887.html">une petite discussion sur la liste de diffusion des dévéloppeurs</a> sur le sujet à propos de la redondance des deux outils.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f333139313336653635613531633761386437366164616337616566383938303664623137306332652e706e67/319136e65a51c7a8d76adac7aef89806db170c2e.png" alt="Vérifier les géométries" title="=320x240 | Source : http://changelog.qgis.org/media/images/entries/319136e65a51c7a8d76adac7aef89806db170c2e.png"></p>
<h3 id="améliorations-des-outils-dédition-de-données">Améliorations des outils d'édition de données</h3>
<h4 id="création-de-polylignes-circulaires">Création de polylignes circulaires</h4>
<p>Dans la version précédente de QGIS, le moteur géométrique de QGIS a été revu pour intégrer la gestion des géométries curvilignes. Ces dernières permettent de définir une géométrie non pas comme une suite de x/y mais comme la définition d'un centre et d'un rayon. Néanmoins, malgré cet apport, QGIS ne pouvait qu'afficher ces géométries et il n'était pas possible de les créer directement dans le canevas de carte. Ce point est maintenant corrigé: toutes les couches dont le pilote de données gère les géométries courbes (pour l'instant les couches postgreSQL et les couches en mémoire) peuvent être modifiées pour ajouter des géométries courbes via la création de polylignes courbes. QGIS propose pour l'instant deux modes de création: soit en définissant le rayon à la souris, soit en le définissant manuellement via une fenêtre dédié.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f323135656164326464356534336533393464343731363961376664383261613563633038623662362e706e67/215ead2dd5e43e394d47169a7fd82aa5cc08b6b6.png" alt="Polylignes circulaires" title="=300x | Source : http://changelog.qgis.org/media/images/entries/215ead2dd5e43e394d47169a7fd82aa5cc08b6b6.png"></p>
<h4 id="table-de-nœuds">Table de nœuds</h4>
<p>Lorsque vous éditez la géométrie d'un objet avec l'outil de modification de noeuds, QGIS présente maintenant un panneau avec la liste des points et leurs coordonnées. Ce panneau permet de sélectionner et de se déplacer avec précision sur le n-ième point ainsi que de modifier manuellement ses coordonnées (pour avoir plus de précision par exemple).</p>
<p>Cet outil qui a l'air assez anodin est pourtant particulièrement utile lors de la gestion des erreurs géométriques. En effet, c'est un cas assez courant lorsqu'on utilise des SGBDRS d'importer des géométries de divers fichiers qui sont assez laxistes par rapport aux standards du SGBDRS en question. Certains formats de fichiers géographiques admettent par exemple des polygones qui se superposent à eux-mêmes, formant ce qu'on appelle dans le milieu autorisé: un "papillon". Dans la plupart des SGBDRS, ces géométries sont invalides et si elles sont "importables", on ne peut généralement pas réaliser de traitements dessus (requêtes spatiales par exemple). Bien souvent, il faut effectuer des corrections manuelles car certains problèmes ne peuvent pas être automatiquement corrigés. Tout ce que fait le SGBDRS c'est dire: le point n°X dans le polygone P pose problème. Grâce à la table de nœuds de QGIS, on peut facilement retrouver ce point pour le modifier…</p>
<h3 id="interface-utilisateur">Interface utilisateur</h3>
<h4 id="nouvel-écran-daccueil">Nouvel écran d'accueil</h4>
<p>Avant la version 2.12 de QGIS, quand on ouvrait QGIS, on avait droit à un projet vierge: pas de couches chargées, pas de styles chargés, pas de paramètres personnalisés. Il était (c'est encore le cas) possible d'ouvrir les fichiers de projet récents via le menu Fichier.</p>
<p>QGIS 2.12 présente maintenant une page qui récapitule avec une illustration et des informations, les derniers projets sur lesquels vous avez travaillé récemment. Cela permet d'ouvrir plus rapidement les projets récents simplement en visualisant leur aspect général. Un clic d'économisé pour les utilisateurs, c'est toujours bon à prendre et c'est quand même moins austère que la plage blanche !</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e6c696e66696e6974692e636f6d2f6d656469612f696d616765732f656e74726965732f333066326162333266346165306431333561323662366136646462363730356630663664643734612e706e67/30f2ab32f4ae0d135a26b6a6ddb6705f0f6dd74a.png" alt="Nouvel écran d'accueil" title="=400x300 | Source : http://changelog.linfiniti.com/media/images/entries/30f2ab32f4ae0d135a26b6a6ddb6705f0f6dd74a.png"></p>
<h4 id="gestion-des-thèmes-dinterface-utilisateur">Gestion des thèmes d'interface utilisateur</h4>
<p>Depuis très longtemps maintenant, QGIS propose plusieurs styles pour l'interface graphique (Windows, CDE, Motif, Plastique, etc.). Ces styles sont appliqués aux widgets Qt et modifient l'apparence des boutons, des entrées, des contrôles de formulaire, etc. Avec la version 2.12, QGIS utilise maintenant <a href="http://doc.qt.io/qt-4.8/stylesheet.html">les feuilles de style Qt</a> qui permettent d'appliquer des règles de couleur, de taille, d'aspect aux widgets; le tout venant en plus des styles de widget Qt. Pour illustrer cette nouvelle fonctionnalité, un nouveau thème d'interface a été créé. Il se nomme "Night Mapping" et présente une apparence sombre.</p>
<p>Si vous voulez créer un thème, pas de problème, il vous suffit de créer un fichier .qss (l'équivalent d'un CSS pour Qt) en utilisant <a href="http://doc.qt.io/qt-5/stylesheet-reference.html">la référence sur le sujet</a>. Voici l'apparence du thème d'interface "Night Mapping":</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f326563333032623132613362306462386537613636343635616663636232323762633534336133652e706e67/2ec302b12a3b0db8e7a66465afccb227bc543a3e.png" alt="Thème d'interface Night Mapping" title="=300x | Source : http://changelog.qgis.org/media/images/entries/2ec302b12a3b0db8e7a66465afccb227bc543a3e.png"></p>
<h3 id="nouvelles-fonctions-dans-les-expressions">Nouvelles fonctions dans les expressions</h3>
<p>De nouvelles fonctions font leur apparition dans le moteur des expressions. Les expressions de QGIS permettent de manipuler les valeurs de certains champs pour obtenir des filtres plus complexes. Pour cette version, on trouve des nouveautés du côté des fonctions qui s'occupent de la géométrie des objets:</p>
<ul>
<li>
<strong>num_points(geometry)</strong> permet de calculer le nombre de noeuds d'une géométrie.</li>
<li>les fonctions <strong>area(geom)</strong>, <strong>length(geom)</strong> and <strong>perimeter(geom)</strong> permettent de calculer la surface, la longueur et le périmètre de n'importe quelle géométrie. Auparavant, il n'était possible d'utiliser ces fonctions que sur la géométrie en cours de traitement.</li>
<li>
<strong>start_point(geom)</strong>, <strong>end_point(geom)</strong>, <strong>point_n(geom)</strong> permettent de retrouver le premier, le dernier et le nième point d'une géométrie.</li>
<li>La fonction <strong>make_point(x,y)</strong> permet de créer manuellement une géométrie de type point.</li>
<li>Enfin, les fonctions <strong>x(geom)</strong> et <strong>y(geom)</strong> retournent les coordonnées x et y des géométries ponctuelles ou bien les coordonnées x et y du centroïde pour les géométries qui ne sont pas ponctuelles.</li>
</ul><p>On peut également noter l'arrivée de nouvelles fonctions d'expression qui travaillent sur la couleur. Grâce à ces dernières, il est possible d'affecter précisément une couleur donnée en fonction de la valeur de certains champs ou du résultat d'autres fonctions d'expression:</p>
<ul>
<li>La fonction <strong>project_color</strong> permet de récupérer les valeurs de couleur en fonction d'une classification stockée dans le fichier de projet (.qgs). Car il est maintenant possible de définir une palette de couleur spécifique au projet (dans les propriétés de ce dernier). Il sera alors possible d'y faire référence par un simple nom (et non sa définition complète qui implique de connaître les valeurs RGBA). </li>
<li>La fonction <strong>color_part</strong> permet de retrouver une seule composante d'une couleur.</li>
</ul><p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e6c696e66696e6974692e636f6d2f6d656469612f696d616765732f656e74726965732f623536663532396166373862326439373066303537633263323562613839623837613835636538352e706e67/b56f529af78b2d970f057c2c25ba89b87a85ce85.png" alt="Exemple de la fonction x(geom)" title="=400x | Source : http://changelog.linfiniti.com/media/images/entries/b56f529af78b2d970f057c2c25ba89b87a85ce85.png"></p>
<h3 id="Étiquettes">Étiquettes</h3>
<h4 id="amélioration-du-moteur-détiquettes">Amélioration du moteur d'étiquettes</h4>
<p>Une des nouveautés importantes de cette version est l'amélioration de la gestion des étiquettes. Ces dernières sont des éléments de texte (issus des données attributaires de la table) qui sont affichés au dessus des couches vectorielles. Cela permet d'afficher le nom des rues sur une carte par exemple. QGIS gère les étiquettes depuis très longtemps maintenant et le moteur d'étiquettes a subi une grosse refonte lors du passage à la version 2.0, rendant l'étiquetage beaucoup plus facile à gérer et proposant plus d'options pour gérer le maximum de cas de figure.</p>
<p>Néanmoins, il restait encore des cas particuliers qui avaient tendance à revenir de plus en plus souvent de la part des utilisateurs. La version 2.12 tente de répondre à ces problèmes avec notamment les deux points qui sont présentés en détails ci-dessous (parmi d'autres améliorations apportées par cette version). Ces évolutions ont également été répercutées au niveau de l'API dédiée aux étiquettes.</p>
<p>À ce stade de développement, il ne manque plus guère que la possibilité de gérer la mise en forme des étiquettes via une expression (pour permettre d'afficher le premier mot d'une étiquette en rouge et le troisième mot en bleu avec une police différente par exemple)…</p>
<h4 id="Étiquettes-basées-sur-des-règles">Étiquettes basées sur des règles</h4>
<p>De la même manière que QGIS permet de gérer le style d'affichage des couches en fonction de règles, on peut maintenant utiliser ces mêmes règles pour les étiquettes. Concrètement, cette fonctionnalité permet de désactiver l'affichage à certains seuils d'échelle ou de n'afficher les étiquettes que pour certains objets géographiques d'une couche, en fonction d'une expression. Vous pouvez également affecter un style aux étiquettes en fonction des règles (genre afficher le nom des rues principales en gras avec une police différente des rues secondaires).</p>
<p>Avec cette fonctionnalité, on peut répondre à vraiment beaucoup de cas d'usages différents simples ou complexes et les possibilités d'affichage des étiquettes sont presque sans limite.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f383834366635376630333935653766366232353433613932613563353562363765386231393932332e706e67/8846f57f0395e7f6b2543a92a5c55b67e8b19923.png" alt="Étiquettes basées sur des règles" title="=400x | Source : http://changelog.qgis.org/media/images/entries/8846f57f0395e7f6b2543a92a5c55b67e8b19923.png"></p>
<h4 id="affichage-sélectif-des-étiquettes">Affichage sélectif des étiquettes</h4>
<p>Un des problèmes qui restait à gérer dans les étiquettes était le positionnement de ces dernières. Dans des cas simples, on souhaite juste placer des étiquettes pour qu'elles soient visibles. Donc, il faut les afficher au dessus de toutes les couches. Mais comment fait-on si on souhaite qu'elles ne s'affichent pas lorsqu'elles sont au-dessus d'un polygone d'une autre couche (qui sert à masquer certaines étiquettes) ? Comment fait-on pour gérer l'affichage des étiquettes avec plusieurs couches (est-ce que les étiquettes des noms de rues doivent être affichées au dessus des étiquettes des numéros de rue ?) ?</p>
<p>QGIS vous permet maintenant de répondre à ces points particuliers grâce aux options qui suivent:</p>
<ul>
<li>On peut maintenant choisir de <strong>ne plus afficher les étiquettes qui débordent</strong> du polygone étiqueté. Cela permet d'éviter que des étiquettes débordent d'une couche et aillent "polluer" les étiquettes d'une autre couche.</li>
<li>Il est également possible de <strong>définir la priorité d'affichage de l'étiquette de chaque objet</strong> en fonction d'une valeur ou d'une expression. En règle générale, lorsqu'on affiche une couche, on utilise un algorithme de placement qui affiche les étiquettes suivant la place disponible (c'est l'option par défaut). De fait, certaines étiquettes sont ainsi non affichées pour ne pas surcharger l'affichage (de toute manière, on n'y voit plus rien). Jusqu'à présent, QGIS ne permettait pas de définir la priorité d'affichage de chacun des objets au sein d'une même couche. C'est maintenant corrigé. Concrètement, on peut utiliser une expression ou la valeur d'un champ pour indiquer la priorité d'affichage de chaque objet d'une couche. Bien entendu, cette priorité est également en concurrence avec les priorités des objets des autres couches. Par exemple, si vous souhaitez afficher en priorité les noms des villes qui ont le plus d'habitants, il vous suffit de faire varier la priorité d'affichage en fonction de la population (moyennant une petite mise à l'échelle linéaire).</li>
<li>On peut aussi paramétrer des <strong>couches d'obstacles</strong>. Il s'agit de couches sur lesquelles les étiquettes doivent éviter de recouvrir la couche. J'ai bien employé les mots "doit éviter" car, s'il n'y a pas moyen de faire autrement, l'étiquette recouvrira l'objet de la couche d'obstacle. Cette fonctionnalité permet d'améliorer le rendu des étiquettes en évitant le plus possible de recouvrir des objets dont l'affichage est important. Vous pouvez par exemple l'utiliser pour éviter que les numéros des habitations ne soient affichés sur les linéaires des rues. Attention, si vous avez une couche de polygone, il sera impossible de ne pas la recouvrir d'étiquettes. Les couches d'obstacle sont plus des couches d'évitement pour les étiquettes et cet évitement n'est pas absolu.</li>
<li>
<strong>Chaque couche d'obstacle dispose de son niveau de priorité</strong>. Entre deux couches qui ont un niveau de priorité d'obstacle différent, celle qui aura le niveau le plus élevé aura moins de chance d'être recouverte par une étiquette.</li>
<li>Enfin, en combinaison avec les couches d'obstacles, les couches de polygones peuvent être paramétrées pour décourager l'affichage des étiquettes sur les limites des polygones. Cela permet d'encourager que les étiquettes des autres couches s'affichent au maximum à l'intérieur des polygones et non à cheval sur leurs limites. Cela permet généralement un affichage plus net où la géométrie des polygones est bien visible. Néanmoins, il ne s'agit que d'un encouragement : s'il n'y a pas le choix, les limites des polygones seront recouvertes.</li>
</ul><p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f646531656165313335396365393230343564353163366661396263336630313461336633616536372e706e67/de1eae1359ce92045d51c6fa9bc3f014a3f3ae67.png" alt="Couches d'obstacles" title="=400x300 | Source : http://changelog.qgis.org/media/images/entries/de1eae1359ce92045d51c6fa9bc3f014a3f3ae67.png"></p>
<h2 id="pour-lavenir">Pour l'avenir</h2>
<h3 id="rythme-des-publications-de-version">Rythme des publications de version</h3>
<p>Comme depuis longtemps sur la liste de diffusion des développeurs QGIS, et ce, à chaque publication d'une nouvelle version, de nombreux développeurs font remonter que le rythme est un peu trop soutenu. En effet, tous les 4 mois, le projet crée une nouvelle version. Le processus est lui-même découpé en deux phases:</p>
<ul>
<li>introduction des nouvelles fonctionnalités (3 mois).</li>
<li>gel des fonctionnalités et correction des bugs (1 mois).</li>
</ul><p>Pourtant, dans la pratique, voici ce qu'on peut constater:</p>
<ul>
<li>De nombreux développeurs n'ont pas assez de temps pour introduire de nouvelles fonctionnalités pendant les 3 mois.</li>
<li>Bien souvent, des développeurs demandent une à deux semaines de délai pour le gel des fonctionnalités dans le but d'incorporer correctement leurs pull-requests.</li>
<li>Certaines pull-requests n'ont pas le temps d'être revues ni fusionnées dans le dépôt avant la publication officielle de la branche principale.</li>
<li>Lors de sa sortie, QGIS publie généralement (c'est le cas depuis au moins 3 versions consécutives), une version 2.xx.1 qui corrige des bugs majeurs qui n'avaient pas été testés lors de la phase de gel.</li>
</ul><p>Donc, à chaque publication, on a droit à <a href="http://osgeo-org.1560.x6.nabble.com/Release-schedule-discussion-again-td5229448.html">ce genre de messages</a> ! Pour prendre des décisions plus éclairées et éviter le flamewar inhérent à ce genre de problème (certains sont satisfaits du rythme actuel, d'autres voudraient revenir à deux publications par an), des membres du PSC (Direction du projet) ont lancé un questionnaire en ligne pour les utilisateurs de QGIS afin de leur demander ce qu'ils attendent en termes de publication de versions et leurs utilisations des dernières versions ou de la version LTR. Le questionnaire étant maintenant clos, vous pouvez néanmoins consulter <a href="https://docs.google.com/forms/d/1z_SzovpkxXj_zrtXTzfJGt2MNJMyaq4XVyWsualujWg/viewanalytics">les résultats pour les utilisateurs français qui ont répondu</a>.</p>
<p>Il reste à voir comment les résultats vont être interprétés et si une décision va être prise sur le sujet. En cas de stagnation, je pense qu'on aura droit aux même messages récurrents sur la durée entre les publications…</p>
<h3 id="passage-à-qt5-et-python3">Passage à Qt5 et Python3</h3>
<p>Récemment, une QEP est sortie sur la transformation technique la plus importante dans l'avenir de QGIS: le passage à Qt5 et à Python3. Dans le projet QGIS, une QEP est une QGIS Enhancement Proposition (une proposition d'amélioration de QGIS en bon français). Normalement, lorsqu'un point de développement demande discussion entre développeurs, une QEP est produite. Ce document détaille l'objectif du changement proposé et raconte comment y parvenir sans rentrer trop loin dans les détails de l'implémentation. Un vote a ensuite lieu et la fonctionnalité est intégrée ou non en fonction du résultat. Par exemple, le système d'authentification a fait l'objet d'<a href="https://github.com/qgis/QGIS-Enhancement-Proposals/pull/17">une QEP</a> en amont de son intégration dans la version 2.12 de QGIS.</p>
<p>Cette fois, <a href="https://github.com/qgis/QGIS-Enhancement-Proposals/pull/24">une proposition de QEP</a> est sortie sur la programmation de l'intégration de Qt5 et de Python3 dans la future version 3.0 de QGIS. Globalement, elle indique qu'il ne devrait pas y avoir de version 2.16 de QGIS mais une version 3.0 qui intégrerait obligatoirement Qt5 et si possible Python3. Cette version autoriserait le cassage de l'API 2.0 en cas de besoin. L'avenir nous dira si cette QEP passe du stade de projet au stade validé. Vous pouvez retrouver <a href="http://osgeo-org.1560.x6.nabble.com/QEP-Proposal-for-QGIS-3-0-after-2-14-td5231556i20.html">les discussions de la liste de diffusion des développeurs sur le sujet</a>.</p>
<h3 id="améliorations-du-pilote-postgresql">Améliorations du pilote PostgreSQL</h3>
<p>La <a href="https://github.com/qgis/QGIS/pull/2322">Pull-Request suivante</a> apporte quelques modifications sur le pilote de données PostgreSQL/PostGIS pour mieux gérer les couches polyhédrales et les <a href="https://en.wikipedia.org/wiki/Triangulated_irregular_network">TIN</a> stockées dans PostGIS. Un TIN est un modèle numérique de terrain vectoriel. Jusqu'à présent, QGIS sait gérer des MNE ou des MNT au format raster (chaque cellule/pixel contient la donnée d'élévation ou de terrain).</p>
<h3 id="Évolution-des-accès-réseau"> Évolution des accès réseau</h3>
<p>En consultant les Pull-Requests de QGIS sur github, on voit qu'un certain nombre d'extensions Python sont en train de migrer vers le système de gestion réseau interne de QGIS. L'intérêt de cette transition est de pouvoir utiliser ces extensions dans des environnements où la configuration réseau repose sur l'utilisation d'un serveur mandataire (proxy). QGIS gère la configuration réseau en interne (il peut utiliser celle du système d'exploitation). La plupart des pilotes de données qui ont besoin d'accéder à Internet (WMS/WFS/WCS/etc.) utilisent une classe de QGIS pour accéder au réseau (<a href="http://qgis.org/api/classQgsNetworkAccessManager.html">QgsNetworkAccessManager</a> qui est une surcouche de la classe Qt QNetworkAccessManager. L'intérêt d'utiliser cette classe est de disposer d'un accès réseau sans devoir en gérer les paramètres, ces derniers étant intégrés au niveau de l'application QGIS elle-même.</p>
<p>Mais la plupart des extensions Python qui avaient besoin d'accéder au réseau utilisaient encore urllib2 où la configuration du proxy est certes possible mais dont la préparation implique de nombreuses lignes de codes pour récupérer la configuration réseau dans les paramètres de QGIS. Néanmoins, plusieurs extensions ou parties d'extension commencent à migrer vers QgsNetworkAccessManager ce qui permet leur utilisation dans des environnements d'entreprises ou d'administrations ou encore pour des entités utilisant un serveur mandataire. Ainsi par exemple, on peut dès maintenant <a href="https://github.com/qgis/QGIS/commit/8b11d43f5719bfe924c2f018a1cebe8d0f1340e8">récupérer l'aide des géo-traitements</a> depuis Internet. On devrait sans doute pouvoir <a href="https://github.com/qgis/QGIS/pull/2403">récupérer les scripts de géo-traitement du dépôt GitHub</a> ainsi que <a href="https://github.com/qgis/QGIS/pull/2299">consulter un catalogue CSW derrière un proxy</a>.</p>
<h3 id="modification-de-linterface-de-création-de-fonctions-dexpressions">Modification de l'interface de création de fonctions d'expressions</h3>
<p>Les expressions de QGIS permettent de faire des tris, des sélections et des traitements de données attributaires et géographiques. Elles constituent le coeur de toute la logique utilisateur pour travailler avec les données gérées dans QGIS, en plus des géo-traitements qui réalisent des opérations un peu complexes. Quasiment tous les éléments de contrôle et d'affichage dans QGIS peuvent être modifiés par une expression ce qui permet des réalisations quasiment infinies. Vous pouvez par exemple définir la dimension de chaque point représenté sur la carte en fonction d'une règle complexe (ex: convertit deux champs en entier, fait la moyenne et multiplie par 5 pour déterminer la taille du symbole utilisé pour représenter le point).</p>
<p>Avec le temps, les fonctions disponibles dans les expressions se sont globalement enrichies. Au début, on ne pouvait faire que quelques opérations mais maintenant, il existe même des fonctions qui calculent un score de similarité entre deux chaînes de caractères ou qui réalisent <a href="http://docs.qgis.org/testing/en/docs/user_manual/working_with_vector/expression.html#functions-list">des mises à l'échelle en fonction d'une plage</a>. Chaque nouvelle version de QGIS voit arriver son lot de nouvelles fonctions.</p>
<p>Néanmoins, ce n'est pas suffisant dans certains cas où aucune fonction ou combinaison de fonctions d'expression ne peut vous faire obtenir le résultat escompté. Pour répondre à ce problème, QGIS permet <a href="http://www.qgis.org/fr/site/forusers/visualchangelog28/index.html#feature-custom-expression-function-editor">depuis la version 2.8</a> de créer des fonctions en Python qui seront utilisées par le moteur d'expression. Ainsi, si vous avez besoin d'un algorithme qui n'existe pas (encore) dans QGIS, vous êtes libre de le coder.</p>
<p>L'ergonomie de l'interface d'édition de code des fonctions d'expression va sans doute <a href="https://github.com/qgis/QGIS/pull/2402">être revue dans la prochaine version de QGIS</a> car il faut bien reconnaître qu'elle peut être améliorée. Il devrait y avoir un panneau permettant d'appeler les derniers fichiers Python utilisés pour construire la fonction d'expression. Un système de test de la fonction devrait être mis en place pour tester rapidement le résultat de la fonction (ce qui permet un développement plus simple). A voir si la PR passe ou pas dans les 3 mois à venir…</p>
<h2 id="conclusions">Conclusions</h2>
<p>Encore une fois, la nouvelle version de QGIS est pleine de nouvelles fonctionnalités. Espérons que cette dépêche vous permettra d'y voir plus clair. Ceux qui veulent plus de détails peuvent se tourner vers <a href="http://changelog.qgis.org/qgis/version/2.12.0/">le changelog visuel</a> qui est bien plus complet. Merci d'ailleurs à l'équipe de développement de QGIS de faire l'effort de publier en images les principaux changements de chaque version (c'est un vrai travail).</p>
<p>Même si avec le temps QGIS devient un logiciel de SIG mûr, il reste encore pas mal de secteurs de l'application à renforcer. Par exemple, les géo-traitements (Processing) sont quand même beaucoup moins nombreux que ceux d'ArcGIS et il arrive souvent que certaines implémentations d'algorithmes plantent ou retournent des résultats erronés. Il faudra encore un peu de temps (et de code) pour arriver au niveau des meilleurs outils de SIG sur le sujet. Par ailleurs, la documentation des géo-traitements est vraiment minimale. Il faudrait veiller à l'améliorer fortement pour ne plus avoir à se demander à quoi sert tel ou tel traitement.</p>
<p>Autre exemple d'amélioration possible: la mise à niveau des fonctionnalités des différents pilotes d'accès aux SGBDRS. Pour l'instant, on peut sans mal affirmer que le pilote de données PostgreSQL est celui qui présente le plus de fonctionnalités (gestion de l'authentification QGIS, gestion des géométries courbes, simplification de la géométrie du côté serveur, gestion des expressions du côté serveur, etc.). C'est sans doute normal car PostgreSQL et PostGIS sont très facilement déployables sur toute machine (y compris machine de dev) en quelques lignes de commandes. Néanmoins, il serait bon que les autres pilotes de données ne soient pas trop à la traîne (dans l'ordre des fonctionnalités: Oracle Spatial, MySQL et MS-SQL Server). Le support renforcé et à iso-fonctionnalités de ces SGBDRS par QGIS serait un facteur important de migration. Mais, effectivement, maintenir le code pour ces 3 autres bases de données prend du temps que la communauté des développeurs QGIS n'est sans doute pas capable de fournir. Des volontaires ?</p>
<p>Si vous souhaitez contribuer à l'essor de QGIS voici quelques idées d'action:</p>
<ul>
<li>Si vous êtes un scientifique habitué à travailler avec des géo-algorithmes, lancez vous dans <a href="https://github.com/qgis/QGIS-Documentation/tree/master/source/docs/user_manual/processing_algs">la documentation des géo-traitements de QGIS</a> car cette dernière est vraiment à la traîne <a href="http://desktop.arcgis.com/fr/desktop/latest/tools/spatial-statistics-toolbox/multi-distance-spatial-cluster-analysis.htm">comparée à d'autres</a>.</li>
<li>Si vous êtes bon en C++, vous pouvez vous plonger dans <a href="https://github.com/qgis/QGIS/tree/master/src/core">le code principal de QGIS</a> pour voir s'il n'y aurait pas quelques améliorations à apporter.</li>
<li>Si vous êtes bon en Python, vous pouvez travailler sur <a href="https://github.com/qgis/QGIS/tree/master/python/plugins/processing">Processing</a>. Il s'agit du moteur des traitements géographiques. Vous pouvez en améliorer le cœur mais aussi (et surtout) créer ou corriger <a href="https://github.com/qgis/QGIS/tree/master/python/plugins/processing/algs">tous les algorithmes présents</a>.</li>
<li>Si vous ne savez pas coder, vous pouvez nous aider à <a href="https://www.transifex.com/qgis/QGIS/">maintenir la traduction française à 100% sur transifex</a>, notamment après le gel des fonctionnalités afin de nous assurer d'avoir une version complètement traduite en français.</li>
<li>Si vous êtes bon en matière de formation, n'hésitez pas à proposer <a href="https://github.com/qgis/QGIS-Documentation/pulls">des améliorations sur la documentation QGIS</a>, elle en a bien besoin.</li>
<li>Dans tous les autres cas, vous pouvez simplement installer la dernière version de QGIS (si possible la dernière version de développement) et faire du <a href="http://hub.qgis.org/projects/quantum-gis/issues">triage de bugs</a> (il y en a un peu plus de 2700 à suivre).</li>
<li>Enfin, n'hésitez pas à faire découvrir QGIS à votre entourage…</li>
</ul><p>Rendez-vous dans 4 mois pour la prochaine version !</p>
<p>PS: si vous souhaitez participer à la rédaction de la future dépêche, n'hésitez pas à venir traîner sur la partie rédaction collaborative de linuxfr après le gel des fonctionnalités (dans 3 mois). Cela permettra de réduire la charge de travail sur la dépêche et de mettre en avant des éléments qui vous tiennent à cœur.</p></div><div><a href="https://linuxfr.org/news/sortie-de-qgis-2-12-lyon.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/107026/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qgis-2-12-lyon#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXZeroHeurepalm123bubar🦥Nÿcohttps://linuxfr.org/nodes/107026/comments.atomtag:linuxfr.org,2005:News/366662015-09-02T13:35:52+02:002015-09-02T14:55:11+02:00Cartopartie sur le thème du vélo à Nantes le 19/09/2015Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Dans le cadre de la <a href="http://www.nantesdigitalweek.com">Digital Week nantaise</a>, <a href="http://www.nantesmetropole.fr/">Nantes Métropole</a>, <a href="http://www.openstreetmap.fr/">OpenStreetMap France</a> et <a href="http://www.placeauvelo-nantes.fr/">Place au Vélo</a> organisent le samedi 19 septembre 2015 une cartopartie sur le thème du vélo à Nantes et sur quelques communes limitrophes.</p>
<p>Notre objectif est de relever de manière exhaustive l'ensemble des points d'appui (les stationnements) vélo dans OpenStreetMap sur la métropole nantaise.</p>
<p>Cette journée est ouverte à tous, que vous soyez néophyte d'<a href="https://osm.org">OpenStreetMap</a> et des SIG ou contributeur invétéré. Elle se déroulera dans les locaux de l'<a href="http://www.assomediagraph.fr/">association MediaGraph</a> situés sur <a href="https://www.openstreetmap.org/?mlat=47.221325039863586&mlon=-1.5634945034980774#map=19/47.22133/-1.56349">cette carte</a> à l'adresse suivante:</p>
<p><strong>Médiagraph, 1 rue d’Auvours.</strong><br><strong>44000 NANTES</strong></p>
<p>N'hésitez pas à lire la suite de cette riche dépêche pour plus d'informations sur cet événement et sa préparation…</p></div><ul><li>lien nᵒ 1 : <a title="http://www.nantesdigitalweek.com/evenement-2015/carto-partie-openstreetmap/" hreflang="fr" href="https://linuxfr.org/redirect/94881">Cartopartie sur le site de la Digital Week</a></li><li>lien nᵒ 2 : <a title="https://wiki.openstreetmap.org/wiki/Nantes/Evenements/Cartopartie_V%C3%A9lo_19_Septembre_2015" hreflang="fr" href="https://linuxfr.org/redirect/94882">Page Wiki OpenStreetMap sur la cartopartie</a></li><li>lien nᵒ 3 : <a title="https://www.openstreetmap.org/?mlat=47.221325039863586&mlon=-1.5634945034980774#map=19/47.22133/-1.56349" hreflang="fr" href="https://linuxfr.org/redirect/94883">Localisation du QG</a></li><li>lien nᵒ 4 : <a title="https://framadate.org/pttyu2iuu8tybhmn" hreflang="fr" href="https://linuxfr.org/redirect/94884">Pour s'inscrire</a></li><li>lien nᵒ 5 : <a title="http://u.osmfr.org/m/51330/" hreflang="fr" href="https://linuxfr.org/redirect/94885">Les secteurs à parcourir</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#openstreetmap-cest-quoi">OpenStreetMap, c'est quoi ?</a></li>
<li><a href="#organisation-de-la-cartopartie">Organisation de la cartopartie</a></li>
<li><a href="#date-et-lieu-de-rendez-vous">Date et lieu de rendez-vous</a></li>
<li><a href="#ce-qui-sera-relev%C3%A9-sur-le-terrain">Ce qui sera relevé sur le terrain</a></li>
<li><a href="#un-peu-de-contenu-exclusif-pour-linuxfrorg">Un peu de contenu exclusif pour LinuxFr.org</a></li>
<li><a href="#apr%C3%A8s-la-cartopartie">Après la cartopartie</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul><h2 id="openstreetmap-cest-quoi">OpenStreetMap, c'est quoi ?</h2>
<p>Pour ceux qui ne sont pas (encore) familiers avec OpenStreetMap (OSM), OpenStreetMap est un projet collaboratif international fondé en 2004 dans le but de créer une carte libre du monde. Les données sont collectées dans le monde entier sur les routes, voies ferrées, les rivières, les forêts, les bâtiments et bien plus encore !</p>
<p>Chacun peut y contribuer en corrigeant une petite erreur près de chez lui, en ajoutant des informations manquantes comme un nom de rue, un nouveau sens unique, en traçant de nouveaux objets (rues, routes, chemins, bâtiments, points d'intérêt) à partir d'images aériennes ou d'enregistrements issus de GPS, de photos géolocalisées ou encore de relevés de terrain.</p>
<h2 id="organisation-de-la-cartopartie">Organisation de la cartopartie</h2>
<p>Deux rôles principaux sont distingués lors de l'évènement :</p>
<ul>
<li>Les arpenteurs qui vont sur le terrain avec leur carte et qui font le relevé des stationnements vélo en prenant soin de noter la position ainsi qu'un certain nombre d'attributs (nombre de places, type d'accroche, stationnement couvert, matériau du point d'appui). Pas besoin d'être un contributeur OSM pour faire ce job: il suffit de savoir écrire, lire une carte et se déplacer.</li>
<li>Les contributeurs OpenStreetMap qui sont principalement au QG. Ils réalisent la saisie dans OSM via l'éditeur de leur choix (<a href="https://github.com/systemed/iD/">iD</a> ou <a href="http://josm.openstreetmap.de/">Josm</a>) des cartes papier ramenées par les arpenteurs. Cette saisie est interactive avec l'arpenteur qui peut voir comment on fait pour manipuler des données dans OSM tout en bénéficiant d'explications et surtout, qui permet de lever tout frein technique pour l'arpenteur. Il n'est bien sûr pas interdit à un contributeur OSM de devenir arpenteur et vice-versa.</li>
</ul><p>Avec un peu de persuation et de formation, on espère que les arpenteurs néophytes sur OSM deviendront des contributeurs réguliers d'OSM.</p>
<p>Pour plus d'informations sur le contenu et la préparation de cette journée, vous pouvez consulter <a href="https://wiki.openstreetmap.org/wiki/Nantes/Evenements/Cartopartie_V%C3%A9lo_19_Septembre_2015">la page du Wiki dédiée</a>.</p>
<h2 id="date-et-lieu-de-rendez-vous">Date et lieu de rendez-vous</h2>
<p>La cartopartie aura lieu le 19 septembre 2015. Les arpenteurs peuvent venir quand ils le souhaitent (si possible au début de chaque heure) à partir de 9h et jusqu'à 16h.</p>
<p>Le QG est situé dans les locaux de l'<a href="http://www.assomediagraph.fr/">association MediaGraph</a> situés sur <a href="https://www.openstreetmap.org/?mlat=47.221325039863586&mlon=-1.5634945034980774#map=19/47.22133/-1.56349">cette carte</a> à l'adresse suivante:</p>
<p><strong>Médiagraph, 1 rue d’Auvours.</strong><br><strong>44000 NANTES</strong></p>
<p>Les arpenteurs n'ont pas besoin d'être présents pendant toute la journée. Prévoyez au minimum 2h30 dans votre journée pour aller sur le terrain, revenir au QG et faire la saisie en compagnie d'un contributeur OSM.</p>
<p>Pour planifier un peu mieux l'événement, nous avons décidé de faire un petit relevé d'inscriptions (via <a href="https://framadate.org/pttyu2iuu8tybhmn">ce framadate</a>]. Vous pouvez bien sûr venir sur le pouce sans inscription (même si ça ne vous prendra que 30 secondes pour vous inscrire).</p>
<h2 id="ce-qui-sera-relevé-sur-le-terrain">Ce qui sera relevé sur le terrain</h2>
<p>Nous souhaitons avoir une vision la plus exhaustive possible sur le sujet du stationnement vélo. Nantes Métropole fourni déjà un grand nombre de données en OpenData sur son site dédié mais elle ne dispose que d'informations très partielles sur les points de stationnement vélo.</p>
<p>Vous pouvez vous familiariser avec ce qui sera saisi dans la base en consultant <a href="https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dbicycle_parking">cette page</a>.</p>
<h2 id="un-peu-de-contenu-exclusif-pour-linuxfrorg">Un peu de contenu exclusif pour LinuxFr.org</h2>
<p>Une cartopartie, c'est un évènement qui se prépare en amont. Dans notre cas, nous avons besoin que le relevé soit le plus exhaustif possible. Il faut donc que les arpenteurs passent dans toutes les rues.</p>
<p>Nous avons utilisé <a href="http://qgis.org">le logiciel QGIS</a> (dont j'ai déjà parlé dans <a href="//linuxfr.org/news/sortie-de-qgis-2-10-pisa">la dépêche suivante</a>) pour définir les secteurs et réaliser l'intégralité des cartes qui seront distribuées aux arpenteurs.</p>
<p>La méthode de définition des secteurs est assez empirique: nous avons délimité un secteur d'environ 9 km de linéaire de rues et nous l'avons parcouru (sur le terrain) dans son intégralité pour voir le temps que ça prenait: à peu près 1h. Nous avons ensuite défini manuellement des secteurs englobant un ensemble de rues où le linéaire à parcourir était de l'ordre de 9 km. Au total, 78 secteurs ont été définis et vous pouvez les consulter sur <a href="http://u.osmfr.org/m/51330/">cette carte</a>. Nous avons utilisé le géo-algorithme "<a href="http://docs.qgis.org/2.8/en/docs/user_manual/processing_algs/qgis/vector_analysis_tools/sumlinelengths.html">Sum Line Length</a>" de QGIS pour faire les calculs.</p>
<p>Pour la réalisation des cartes, nous avons utilisé les merveilleuses capacités de QGIS pour la composition de cartes, notamment <a href="http://docs.qgis.org/2.8/fr/docs/user_manual/print_composer/print_composer.html#atlas-generation">la fonctionnalité d'Atlas</a> qui permet de définir un modèle global qui sera ensuite appliqué à chaque secteur (vous vous doutez bien qu'on n'allait pas faire les cartes des 78 secteurs à la main. Ce qui est bien avec QGIS, c'est qu'on peut également ajouter des éléments qui ne sont pas des cartes, notamment un modèle de tableau attributaire qui permet d'avoir sur un simple A4 (ou A3 pour les secteurs vélo) la carte et le tableau d'attributs à remplir.</p>
<p>Les données qui ont été mobilisées sont celles issues de la base d'OSM qui est exhaustive sur les routes et les rues, les bâtiments ainsi que les adresses (Licence ODBl).</p>
<p>Bref, cet événement a été préparé avec 100% de logiciels et de données libres…</p>
<h2 id="après-la-cartopartie">Après la cartopartie</h2>
<p>Un relevé des données saisies lors de la cartopartie sera réalisé et intégré dans le Système d'Informations Géographiques de Nantes Métropole. Selon le succès de l'évènement, d'autres cartoparties sur le même thème pourront avoir lieu ultérieurement. Car l'objectif principal reste de géolocaliser les 6500 places de stationnement vélo de la métropole nantaise !</p>
<h2 id="conclusion">Conclusion</h2>
<p>Geeks de la métropole nantaise, on sait que ce week-end sera vraiment bien complet pour vous avec la Digital Week ! Mais si vous voulez essayer quelque chose de plus contributif et que vous avez 2 ou 3 heures à tuer, venez nous rejoindre (ou nous faire un petit coucou)…</p>
<p>Courrez tous <a href="https://framadate.org/pttyu2iuu8tybhmn">vous inscrire ici</a>, priez pour que la météo nous soit favorable, préparez votre vélo et venez nous aider à parcourir exhaustivement les 78 secteurs (y a du boulot).</p></div><div><a href="https://linuxfr.org/news/cartopartie-sur-le-theme-du-velo-a-nantes-le-19-09-2015.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/106676/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/cartopartie-sur-le-theme-du-velo-a-nantes-le-19-09-2015#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXNÿcopalm123Benoît Sibaudbubar🦥https://linuxfr.org/nodes/106676/comments.atomtag:linuxfr.org,2005:News/365682015-07-28T21:36:06+02:002015-07-28T21:36:06+02:00Sortie de QGIS 2.10 « Pisa »Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Le projet QGIS a l’immense plaisir de vous annoncer la publication de la version 2.10 de sa suite logicielle de Système d'Information Géographique (SIG) libre.</p>
<p>QGIS est un SIG convivial distribué sous licence publique générale GNU. C'est un projet officiel de la fondation Open Source Geospatial (<a href="http://www.osgeo.org/home">OSGeo</a>). Il est disponible sur les systèmes d'exploitation GNU/Linux, Mac OS X, Windows et Android et intègre de nombreux formats vecteur, raster, base de données et fonctionnalités.</p>
<p>QGIS est développé en C++ avec la bibliothèque Qt (en version 4 pour le moment). Son architecture lui permet également d'utiliser des extensions codées en Python (version 2) et la très grande majorité des classes du cadriciel de QGIS sont disponibles sous Python.</p>
<p>QGIS est une des applications majeures qui utilisent Qt. Actuellement, l'arborescence des sources (tout confondu) occupe près de 350 Mo. Les contributeurs recensés sur GitHub sont au nombre de 159.</p>
<p>Même s'il reste un logiciel libre, QGIS assure en grande partie le financement de son développement via <a href="http://qgis.org/fr/site/about/sponsorship.html">des sponsors</a> divers qui vont d'entreprises ayant besoin de SIG comme des compagnies aériennes à des organisations gouvernementales (y compris le gouvernement français) en passant par des universités et également des particuliers.</p>
<p>Par ailleurs QGIS s'interface avec de nombreux autres logiciels, que ce soit des bases de données spatiales comme PostgreSQL/PostGIS ou Oracle Spatial, mais également avec un grand nombre de logiciels de SIG libres comme <a href="http://grass.osgeo.org/">GRASS</a>, <a href="http://www.saga-gis.org/en/index.html">SAGA</a> ou encore <a href="https://www.orfeo-toolbox.org/">Orfeo</a>.</p>
<p>Dans la suite de la dépêche, un aperçu des nouveautés vous sera présenté plus en détails ainsi qu'une esquisse des développements à venir. Pour le public non averti, la suite de la dépêche offre également un petit focus sur les SIG et sur QGIS…</p>
<p>Note : le nom du projet est bien QGIS en majuscules et non Quantum GIS ou QGis.</p></div><ul><li>lien nᵒ 1 : <a title="http://qgis.org/fr/site/" hreflang="fr" href="https://linuxfr.org/redirect/94563">Site principal de QGIS</a></li><li>lien nᵒ 2 : <a title="http://qgis.org/fr/site/forusers/download.html" hreflang="fr" href="https://linuxfr.org/redirect/94564">Page de téléchargement du projet QGIS</a></li><li>lien nᵒ 3 : <a title="http://qgis.org/fr/site/forusers/visualchangelog210/index.html" hreflang="fr" href="https://linuxfr.org/redirect/94565">Principales évolutions en images depuis la dernière version</a></li><li>lien nᵒ 4 : <a title="https://github.com/qgis/QGIS" hreflang="en" href="https://linuxfr.org/redirect/94670">Dépôt git officiel des sources de QGIS</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#petit-rappel-pour-ceux-qui-ne-connaissent-ni-qgis-ni-les-sig">Petit rappel pour ceux qui ne connaissent ni QGIS ni les SIG</a><ul>
<li><a href="#qgis-cest-quoi">QGIS, c'est quoi ?</a></li>
<li><a href="#que-signifie-sig">Que signifie SIG ?</a></li>
<li><a href="#quels-sont-les-logiciels-de-la-suite-qgis">Quels sont les logiciels de la suite QGIS ?</a></li>
<li><a href="#qui-utilise-des-sig">Qui utilise des SIG ?</a></li>
</ul>
</li>
<li>
<a href="#nouveaut%C3%A9s-par-rapport-%C3%A0-la-derni%C3%A8re-version">Nouveautés par rapport à la dernière version</a><ul>
<li><a href="#nouveau-moteur-g%C3%A9om%C3%A9trique">Nouveau moteur géométrique</a></li>
<li><a href="#ajout-dun-constructeur-de-requ%C3%AAtes-pour-dbmanager">Ajout d'un constructeur de requêtes pour DBManager</a></li>
<li><a href="#fonction-logarithmes-dans-la-calculatrice-raster">Fonction logarithmes dans la calculatrice raster</a></li>
<li><a href="#am%C3%A9lioration-des-exports-dxf">Amélioration des exports DXF</a></li>
<li><a href="#les-champs-virtuels-peuvent-maintenant-%C3%AAtre-mis-%C3%A0-jour">Les champs virtuels peuvent maintenant être mis à jour</a></li>
<li><a href="#les-filtres-dexpression-peuvent-%C3%AAtre-jou%C3%A9s-depuis-le-serveur-postgresql">Les filtres d'expression peuvent être joués depuis le serveur PostgreSQL</a></li>
<li><a href="#auto-compl%C3%A9tion-des-donn%C3%A9es-relationnelles-dans-les-formulaires-de-saisie">Auto-complétion des données relationnelles dans les formulaires de saisie</a></li>
<li><a href="#assistant-de-graduation-de-la-taille-des-symboles">Assistant de graduation de la taille des symboles</a></li>
<li><a href="#effets-de-style-pour-les-couches-et-les-symboles">Effets de style pour les couches et les symboles</a></li>
</ul>
</li>
<li>
<a href="#pour-lavenir">Pour l'avenir</a><ul>
<li><a href="#dbmanager-pour-les-bases-de-donn%C3%A9es-oracle-spatial">DBManager pour les bases de données Oracle Spatial</a></li>
<li><a href="#formatage-conditionnel-des-cellules-de-la-table-attributaire">Formatage conditionnel des cellules de la table attributaire</a></li>
<li><a href="#traduction-des-noms-et-des-groupes-de-g%C3%A9o-algorithmes-processing">Traduction des noms et des groupes de géo-algorithmes (Processing)</a></li>
<li><a href="#export-des-symboles-aux-formats-png-et-svg">Export des symboles aux formats PNG et SVG</a></li>
<li><a href="#quelques-d%C3%A9fis-%C3%A0-relever">Quelques défis à relever</a></li>
</ul>
</li>
<li><a href="#petit-retour-sur-la-publication-de-qgis-210">Petit retour sur la publication de QGIS 2.10</a></li>
<li><a href="#conclusions">Conclusions</a></li>
</ul><h2 id="petit-rappel-pour-ceux-qui-ne-connaissent-ni-qgis-ni-les-sig">Petit rappel pour ceux qui ne connaissent ni QGIS ni les SIG</h2>
<h3 id="qgis-cest-quoi">QGIS, c'est quoi ?</h3>
<p>QGIS est une suite logicielle de traitement de l'information géographique. Elle permet de générer des cartes, d'analyser des données spatiales et de les publier, en ligne ou sur papier. Elle permet également de réaliser de nombreux traitements et algorithmes sur des données spatiales ou d'autres données liées.</p>
<h3 id="que-signifie-sig">Que signifie SIG ?</h3>
<p>Le sigle <a href="https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27information_g%C3%A9ographique">SIG</a> — en anglais GIS — signifie Système d'Information Géographique. </p>
<p>Le traitement de l'information géographique est une niche spécifique des technologies de l'information, au même titre que l'informatique décisionnelle ou l'informatique du calcul scientifique. L'information géographique a pour particularité essentielle de traiter des données spatiales (avec des coordonnées sur un plan ou dans l'espace), souvent combinées avec des données alphanumériques plus classiques.</p>
<p>Un SIG est constitué :</p>
<ul>
<li>de données géographiques et alphanumériques, stockées dans des bases de données spatiales (PostGIS ou Spatialite en logiciels libres, Oracle Spatial/MSSQL en logiciels propriétaires) ou dans des fichiers. Ces données sont souvent gérées sous forme de couches empilables les unes sur les autres pour former des cartes (selon l'ordre d'empilage).</li>
<li>d'outils pour afficher, publier et traiter ces données.</li>
</ul><p>Les données traitées dans un SIG peuvent être réparties en trois types distincts :</p>
<ul>
<li>Les données vectorielles : elles sont stockées sous la forme d'ensemble de points et peuvent définir des points, des lignes (ou ensemble de lignes) et des surfaces (polygones).</li>
<li>Les données raster : il s'agit de données stockées sous forme matricielle (tableau/bitmap).</li>
<li>Les données alphanumériques : on peut ajouter des attributs à un objet vectoriel ou matriciel. Il s'agit d'informations plus classiques qu'on retrouve souvent dans les SGBDR ou les fichiers de tableur (ODS/CSV par exemple).</li>
</ul><p>Pour être plus concret, un SIG et les données qui y sont stockées permettent de répondre à des questions du type (du plus simple au plus complexe) :</p>
<ul>
<li>Quelle est la surface de cet ensemble de bâtiments ?</li>
<li>Où sont situées les populations de <a href="https://fr.wikipedia.org/wiki/Vip%C3%A8re_d%27Orsini">Vipera ursinii</a> ?</li>
<li>Quelle est la distance moyenne entre les bâtiments d'une commune et les routes de catégorie nationale ?</li>
<li>Qui ne respecte pas les limites de traitement à proximité des cours d'eau ?</li>
<li>Au cours des 50 dernières années, comment a évolué la morphologie urbaine d'une commune ?</li>
</ul><p>Si vous voulez en savoir davantage sur les SIG, je vous invite à lire <a href="http://docs.qgis.org/2.8/fr/docs/gentle_gis_introduction/">la rapide introduction aux SIG</a> du projet QGIS qui est très bien faite et agnostique au niveau des outils (et traduite en français qui plus est).</p>
<h3 id="quels-sont-les-logiciels-de-la-suite-qgis">Quels sont les logiciels de la suite QGIS ?</h3>
<p>Le projet QGIS est composé de plusieurs logiciels différents qu'il convient de présenter pour mieux comprendre les différents éléments de la suite logicielle :</p>
<ul>
<li>Le logiciel bureautique QGIS (<strong>QGIS Desktop</strong>) : c'est l'outil principal, le plus important et le plus développé. Il constitue l'interface la plus utilisée. Il permet d'afficher des données, de les traiter et de créer des mises en pages (cartes). QGIS Desktop permet de générer des fichiers projet qui font le lien entre les données, la représentation de ces données, les traitements à effectuer.</li>
<li>Le navigateur de données (<strong>QGIS Browser</strong>) : il permet de parcourir le catalogue des données disponibles. En règle générale, les SIG peuvent traiter un grand nombre de données différentes. Par exemple, une collectivité publique (mairie/conseil régional/métropole) peut facilement héberger plus d'un millier de couches différentes qui sont créées en interne ou récupérées depuis différents partenaires. Pour mieux accéder à cette "masse" d'information, il est essentiel de pouvoir la cataloguer pour faciliter les options de recherche et de sélection. Le navigateur de données QGIS permet de parcourir ce catalogue et de mieux connaître son patrimoine de données géographiques.</li>
<li>Le serveur de données <a href="https://fr.wikipedia.org/wiki/Open_Geospatial_Consortium">OGC</a> (<strong>QGIS Server</strong>) : il s'agit d'un binaire destiné à présenter des services Web cartographiques à partir des fichiers de projet générés avec QGIS Desktop. Les services web cartographiques visent principalement à fournir des données à des clients via HTTP, en utilisant des protocoles normalisés par l'OGC (<a href="https://fr.wikipedia.org/wiki/Web_Map_Service">WMS</a>, <a href="https://fr.wikipedia.org/wiki/Web_Feature_Service">WFS</a>, etc.). Ces clients peuvent être des clients lourds (comme QGIS Desktop) ou des navigateurs web via l'utilisation de bibliothèques Javascript dédiées (<a href="http://openlayers.org/">OpenLayers</a>, <a href="http://leafletjs.com/">Leaflet</a>, etc.).</li>
<li>Le client Web (<strong>QGIS Web Client</strong>) : QGIS Server ne fournit que des services Web, pas l'enrobage. Pour l'affichage d'une carte dans un navigateur web, il faut un client Javascript dédié et c'est l'objet du client web de QGIS. Ce dernier est aujourd'hui traité un peu à part du client Desktop et du serveur (il dispose d'<a href="https://github.com/qgis/QGIS-Web-Client">un dépôt dédié</a> et ne fait pas l'objet de publications régulières comme les trois autres parties de QGIS évoquées ci-dessus).</li>
</ul><h3 id="qui-utilise-des-sig">Qui utilise des SIG ?</h3>
<p>Les logiciels de SIG sont utilisés par un grand nombre d'acteurs :</p>
<ul>
<li>Les services de l'État et les collectivités utilisent fortement les logiciels de SIG. Les ministères français en charge de l'écologie et de l'agriculture utilisent QGIS au sein de leurs services et établissements. Ils financent d'ailleurs <a href="http://changelog.linfiniti.com/qgis/version/2.10/#308">certaines fonctionnalités</a>.</li>
<li>Les agences d'urbanisme.</li>
<li>Les entreprises qui ont besoin de gérer un territoire (agriculteurs/forestiers).</li>
<li>Les entreprises de logistique (gérer/optimiser les trajets).</li>
<li>Les SIG sont utilisés et enseignés dans la plupart des disciplines scientifiques qui traitent de territoire.</li>
<li>Vous-même lorsque vous utilisez OpenStreetMap (SIG communautaire) ou Google Maps (c'est une partie du SIG de Google).</li>
</ul><h2 id="nouveautés-par-rapport-à-la-dernière-version">Nouveautés par rapport à la dernière version</h2>
<p>Je vous invite à parcourir le « <em>visual changelog</em> » qui est plus complet que cette dépêche. Néanmoins, voici quelques-uns des éléments phares des nouveautés apparues dans cette nouvelle version.</p>
<h3 id="nouveau-moteur-géométrique">Nouveau moteur géométrique</h3>
<p>Cette version de QGIS amène des changements profonds dans le moteur chargé de gérer les différents types de géométrie des objets. Jusqu'à présent, QGIS ne gérait pas les géométries courbes (CURVE) qui sont souvent utilisées dans les données de DAO (AutoCAD DXF). Le stockage de l'information de ce type de géométrie est spécifique. Par exemple, on représente souvent un cercle ou un arc de cercle en utilisant uniquement la définition du point central et du rayon et on laisse au logiciel le soin de gérer sa représentation.</p>
<p>Pour afficher des cercles, il fallait construire une polyligne fermée qui prenait la forme d'un polygone régulier avec de nombreux segments (pour "émuler" un cercle). Avec la version 2.10, il est maintenant possible d'afficher des objets courbes de manière plus fine, au moins ceux qui sont stockés dans une base de données PostGIS. Cela permet d'économiser de la place dans la base de données (moins de segments à stocker) mais également d'améliorer le rendu (cercle parfait au lieu de polygone régulier) et la précision.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f7468756d626e61696c732f346630373065343037356234373033656462343064386362393164356662353237643164336139332e706e672e343030783330305f7138355f63726f702e706e67/4f070e4075b4703edb40d8cb91d5fb527d1d3a93.png.400x300_q85_crop.png" alt="Ronds-points dans QGIS avec une géométrie courbe" title="Source : http://changelog.qgis.org/media/images/entries/thumbnails/4f070e4075b4703edb40d8cb91d5fb527d1d3a93.png.400x300_q85_crop.png"></p>
<h3 id="ajout-dun-constructeur-de-requêtes-pour-dbmanager">Ajout d'un constructeur de requêtes pour DBManager</h3>
<p>QGIS propose une extension Python pour gérer des bases de données. Cette extension (nommée DBManager) est installée par défaut et permet de lister les tables d'une (ou plusieurs) base(s) de données, d'afficher des informations sur la structure de la table, de ses index, de ses déclencheurs, etc. Elle permet également de construire des requêtes et d'en exporter le résultat directement dans le canevas de cartes de QGIS.</p>
<p>Le requêteur était jusqu'à présent assez orienté vers les spécialistes du SQL (et de ses variantes spatiales). QGIS 2.10 propose maintenant un constructeur de requêtes qui simplifie le travail pour les débutants en offrant un module de création de requête assisté. Ce module est basé sur l'interface présentée par le logiciel propriétaire MapInfo.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f663561643966383161633337666634646366613735346638336432336332373030616434633966382e706e67/f5ad9f81ac37ff4dcfa754f83d23c2700ad4c9f8.png" alt="Query builder" title="Source : http://changelog.qgis.org/media/images/entries/f5ad9f81ac37ff4dcfa754f83d23c2700ad4c9f8.png"></p>
<h3 id="fonction-logarithmes-dans-la-calculatrice-raster">Fonction logarithmes dans la calculatrice raster</h3>
<p>La calculatrice raster est un outil permettant de réaliser des opérations matricielles sur les couches raster (cf définition plus haut). La version 2.10 de QGIS ajoute les fonctions logarithmes à cette calculatrice (Ln et Log10).</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f313363363531303061623537656438663937666132336230383730346361373236613763333364612e706e67/13c65100ab57ed8f97fa23b08704ca726a7c33da.png" alt="Calculatrice raster" title="Source : http://changelog.qgis.org/media/images/entries/13c65100ab57ed8f97fa23b08704ca726a7c33da.png"></p>
<h3 id="amélioration-des-exports-dxf">Amélioration des exports DXF</h3>
<p>DXF est un format utilisé en DAO. Il est souvent utilisé pour stocker des dessins de plans. Cela fait maintenant trois versions de suite que l'export DXF est amélioré. Au menu de cette version, en plus des corrections de bugs, le module d'export DXF permet:</p>
<ul>
<li>de choisir les couches ou les groupes de couches du projet à exporter.</li>
<li>d'exporter l'ensemble des données situées dans l'étendue affichée.</li>
<li>d'exporter la symbologie de chaque couche exportée.</li>
<li>d'exporter les étiquettes et les polices utilisées.</li>
<li>conversion automatique des symboles (formes basiques ou SVG) en blocs DXF.</li>
</ul><p>L'image ci-dessous présente une vue sous QGIS à gauche et l'affichage de l'export DXF dans AutoDesk TrueView sur la droite.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f623565653862643761333431326534323937383261356535363935346461626565303563333666662e706e67/b5ee8bd7a3412e429782a5e56954dabee05c36ff.png" alt="Vue comparative: QGIS/Autodesk trueview" title="Source : http://changelog.qgis.org/media/images/entries/b5ee8bd7a3412e429782a5e56954dabee05c36ff.png"></p>
<h3 id="les-champs-virtuels-peuvent-maintenant-être-mis-à-jour">Les champs virtuels peuvent maintenant être mis à jour</h3>
<p>Depuis QGIS 2.8, il est maintenant possible d'ajouter des champs virtuels aux couches de données. Ces champs permettent de réaliser des calculs ou des traitements alphanumérique à la volée. Par exemple, vous pourriez vouloir créer un champ affichant le périmètre de chacun des objets (polygones) d'une couche.</p>
<p>Les champs virtuels peuvent se greffer à n'importe quelle couche (qu'elle vienne de fichier à plat ou d'un SGBDRS) et sont stockés dans le fichier du projet. Leur expression est calculée à la volée et le contenu de ces champs est donc dynamique (évolue en fonction des données contenues dans la couche).</p>
<p>Mais lorsque vous vouliez changer l'expression de calcul du champ virtuel, vous étiez obligé de détruire le champ pour le recréer avec la nouvelle expression. Ce n'est plus le cas pour la version 2.10 où vous pouvez changer cette expression directement dans les propriétés de la couche.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f663435643561343434376632386439366132633563346363366332376238343238353039366130322e706e67/f45d5a4447f28d96a2c5c4cc6c27b84285096a02.png" alt="Champ virtuel modifiable" title="Source : http://changelog.qgis.org/media/images/entries/f45d5a4447f28d96a2c5c4cc6c27b84285096a02.png"></p>
<h3 id="les-filtres-dexpression-peuvent-être-joués-depuis-le-serveur-postgresql">Les filtres d'expression peuvent être joués depuis le serveur PostgreSQL</h3>
<p>QGIS utilise des expressions pour réaliser des calculs, des tris ou des sélections sur les données alphanumériques. Le moteur d'expression de QGIS est riche et s'étoffe de plus en plus. On peut comparer le système des expressions au système des opérateurs et des fonctions dans le tableur Calc de LibreOffice.</p>
<p>Voici un exemple d'expression:<br><code><br>
length("NAME" || ' ' || "SURNAME") > 50<br></code><br>
Appliquée à l'outil de sélection, elle permet de sélectionner les objets dont la longueur de la concaténation des champs "NAME" et "SURNAME" (avec un espace entre les deux) est supérieur à 50. Appliquée à l'outil de mise à jour des champs (ou dans un champ virtuel), elle permet d'afficher True ou False selon que la longueur du contenu des champs est supérieure à 50 ou non.</p>
<p>Le moteur d'expression de QGIS a été développé de manière indépendante des différentes sources de données et il comporte donc son propre langage (plutôt un ensemble d'opérateurs et de fonctions proches de ce qu'on trouve dans SQL) ,indépendant des formats de données. L'intérêt est de pouvoir utiliser le moteur d'expression pour tout type de données.</p>
<p>Mais l'inconvénient majeur est que pour faire une sélection d'objets géographiques en fonction d'une expression, il est nécessaire de rapatrier les valeurs des attributs concernés par l'expression et ce, pour chaque objet. Pour une base de données avec plusieurs millions d'enregistrements, les temps peuvent être assez longs.</p>
<p>Pour éviter ce problème, les développeurs de QGIS ont commencé à implémenter la transformation des expressions en filtres SQL qui seront directement joués au niveau du serveur de SGBDR, évitant le parcours de toute la table. Pour l'instant seul PostgreSQL/PostGIS est géré mais les bases du code permettront également de l'implémenter pour les autres SGBDR connectables à QGIS (respectivement Oracle/MS-SQL Server et MySQL).</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f346434303736353739656363306235616163653330666132373433663631366139623639316130322e706e67/4d4076579ecc0b5aace30fa2743f616a9b691a02.png" alt="Expression par le moteur PostgreSQL" title="Source : http://changelog.qgis.org/media/images/entries/4d4076579ecc0b5aace30fa2743f616a9b691a02.png"></p>
<h3 id="auto-complétion-des-données-relationnelles-dans-les-formulaires-de-saisie">Auto-complétion des données relationnelles dans les formulaires de saisie</h3>
<p>Une des richesses de QGIS est d'offrir un grand nombre de contrôles de formulaire pour la saisie des informations alphanumériques. Par exemple, lorsque vous dessinez une parcelle cadastrale, vous aurez besoin de saisir dans la foulée un tas d'attributs tels que le numéro de parcelle, le nom de la commune sur laquelle elle se trouve, le numéro de section, etc. Pour faciliter ce travail fastidieux, QGIS construit des formulaires de saisie pour guider cette dernière. Par exemple, plutôt que d'écrire manuellement le nom de la commune, QGIS affichera (suivant le paramétrage dans le fichier de projet) une liste déroulante avec les noms des communes. C'est à la fois plus pratique et plus sécurisant pour l'utilisateur qui créé la donnée.</p>
<p>Pour faciliter la création des contrôles de type liste déroulante, QGIS propose d'aller chercher les données dans une table (autre fichier ou table de DB) pour disposer d'une liste toujours à jour (on parle alors de valeur relationnelle).</p>
<p>La version 2.10 de QGIS introduit la possibilité de proposer de l'auto-complétion lors de la saisie d'une valeur relationnelle. Au lieu d'avoir une liste déroulante, on a une entrée texte dont la modification entraîne l'apparition d'une liste déroulante dynamique:</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f343631306463306162363461383561653032306165623232623463626663633864343564306466332e706e67/4610dc0ab64a85ae020aeb22b4cbfcc8d45d0df3.png" alt="Auto-completion" title="Source : http://changelog.qgis.org/media/images/entries/4610dc0ab64a85ae020aeb22b4cbfcc8d45d0df3.png"></p>
<h3 id="assistant-de-graduation-de-la-taille-des-symboles">Assistant de graduation de la taille des symboles</h3>
<p>Sous QGIS, la taille d'un symbole peut être fixe ou dépendante d'un attribut de l'objet. Par exemple, on peut vouloir représenter le nombre d'habitants d'une ville par un cercle dont le rayon est proportionnel au nombre d'habitants.</p>
<p>Jusqu'à présent, le paramétrage de cette taille était assez basique et il n'était pas possible de visualiser en avance la taille des symboles sans appliquer le style à l'ensemble de la couche et de visualiser le résultat dans la canevas de cartes.</p>
<p>Avec la version 2.10, QGIS permet de construire très finement la taille dynamique du symbole en fonction d'une expression et de pré-visualiser l'aspect global des tailles dans une boîte de dialogue dédiée (un assistant). Cela permet de mieux prévoir la taille des symboles et de gérer leur dimension sans devoir faire de nombreux tests fastidieux.</p>
<p>Dans l'illustration qui suit, on calcule la taille du symbole (un carré en couleur) en fonction d'une formule (somme de plusieurs champs). L'échelle de la taille des symboles est calculée suivant une distribution linéaire des valeurs calculées par la formule. Dans la partie droite, on a un pré-affichage de la taille des symboles sur plusieurs valeurs pour mieux se rendre compte.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f333066343339323538333430306130656432666264616533343638323635623931663339653637352e706e67/30f4392583400a0ed2fbdae3468265b91f39e675.png" alt="Assistant taille des symboles" title="Source : http://changelog.qgis.org/media/images/entries/30f4392583400a0ed2fbdae3468265b91f39e675.png"></p>
<h3 id="effets-de-style-pour-les-couches-et-les-symboles">Effets de style pour les couches et les symboles</h3>
<p>QGIS dispose déjà de nombreux paramètres pour l'affichage des géométries ponctuelles (symboles) ou linéaires et polygonales. Mais régulièrement, des nouveautés font leur apparition. Dans la version 2.10, il s'agit de l'ajout des effets de style.</p>
<p>Ces effets permettent d'améliorer l'affichage global du symbole ou de la couche en permettant:</p>
<ul>
<li>la création d'une ombre portée ou interne en fonction de nombreux paramètres (rayon, rayon de floutage, transparence, couleur de l'ombre, etc).</li>
<li>le rendu d'une luminescence interne ou externe.</li>
</ul><p>Voici un exemple d'ombre portée qui augmente la visibilité des objets bâtiments:<br><img src="//img.linuxfr.org/img/687474703a2f2f6368616e67656c6f672e716769732e6f72672f6d656469612f696d616765732f656e74726965732f326365333331626438383463313437363439383963316263356533633464316638306563353838632e706e67/2ce331bd884c14764989c1bc5e3c4d1f80ec588c.png" alt="Ombre portée" title="Source : http://changelog.qgis.org/media/images/entries/2ce331bd884c14764989c1bc5e3c4d1f80ec588c.png"></p>
<h2 id="pour-lavenir">Pour l'avenir</h2>
<p>QGIS évolue assez rapidement. Le rythme de publication des nouvelles versions est assez intense : tous les 4 mois (environ), une nouvelle version est publiée. Pour ceux qui voudraient avoir une vision plus pointue du futur contenu de QGIS, voici quelques points notables pour la future version de QGIS. Sachant que le gel des nouvelles fonctionnalités est prévu pour la fin septembre 2015, il est probable qu'il y ait d'autres ajouts…</p>
<h3 id="dbmanager-pour-les-bases-de-données-oracle-spatial">DBManager pour les bases de données Oracle Spatial</h3>
<p>Pour rappel (cf point sur le constructeur de requêtes), DBManager permet de lister les tables d'une (ou plusieurs) base(s) de données, d'afficher des informations sur la structure de la table, de ses index, de ses déclencheurs, etc. Elle permet également de construire des requêtes et d'en exporter le résultat directement dans le canevas de cartes de QGIS.</p>
<p>Depuis la version 2.2, QGIS permet de se connecter à des bases de données Oracle (avec son extension spatiale nommée Spatial) mais le plugin DBManager ne supportait pas ces dernières. Ce problème est réglé avec <a href="https://github.com/qgis/QGIS/commit/644bdf046fc305ddd068b7d31b08080baaba859a">l'intégration du support des bases de données Oracle Spatial dans DBManager</a>.</p>
<h3 id="formatage-conditionnel-des-cellules-de-la-table-attributaire">Formatage conditionnel des cellules de la table attributaire</h3>
<p>La table attributaire de QGIS permet de consulter les valeurs des données alphanumériques des données géographiques (pour les couches qui en ont). Jusqu'à présent, cette table d'attributs était assez basique: son rôle était de présenter les données de manière brute.</p>
<p>Dans les versions à venir de QGIS, il sera possible d'utiliser le moteur d'expression pour enjoliver les cellules de la table d'attributs. Au delà de la fonction esthétique, cela permet de visualiser plus rapidement les valeurs qui intéressent l'utilisateur.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f636c6f75642e67697468756275736572636f6e74656e742e636f6d2f6173736574732f3338313636302f383733363934322f36633664613637302d326336302d313165352d383862362d6166373133356239633437342e706e67/6c6da670-2c60-11e5-88b6-af7135b9c474.png" alt="Coloration et style de police des cellules de la table attributaire" title="Source : https://cloud.githubusercontent.com/assets/381660/8736942/6c6da670-2c60-11e5-88b6-af7135b9c474.png"></p>
<h3 id="traduction-des-noms-et-des-groupes-de-géo-algorithmes-processing">Traduction des noms et des groupes de géo-algorithmes (Processing)</h3>
<p>Les géo-traitements (Processing) sont arrivés dans la version 2.0 de QGIS. Il s'agit d'algorithmes spécifiques (ou non) à l'information géographique comme <a href="https://fr.wikipedia.org/wiki/Probl%C3%A8me_du_voyageur_de_commerce">l'algorithme du voyageur de commerce</a> ou encore <a href="http://grass.osgeo.org/grass64/manuals/r.watershed.html">l'algorithme de création de bassin versant</a> sur des données raster. Ils permettent d'effectuer des traitements (ou une série de traitements chaînés) sur un ensemble de données géographiques.</p>
<p>Jusqu'à présent, les noms et la définition des traitements ainsi que des groupes de traitement n'était pas traduisibles. Cela peut poser des problèmes de compréhension car les termes employés par les traitements peuvent être vraiment très spécifiques et très proches du métier qu'ils recouvrent. De plus l'interface de QGIS est généralement bien traduite (<a href="https://www.transifex.com/projects/p/QGIS/">cf les statistiques sur Transifex</a>) et tout le panneau des géo-traitements paraissait à part depuis de nombreuses versions.</p>
<p>C'est maintenant réglé: <a href="https://github.com/qgis/QGIS/pull/2213">le code a été modifié</a> pour permettre la traduction. Il ne reste plus qu'à traduire le tout…</p>
<h3 id="export-des-symboles-aux-formats-png-et-svg">Export des symboles aux formats PNG et SVG</h3>
<p>QGIS est très riche en ce qui concerne le style des symboles. Avec <a href="https://github.com/qgis/QGIS/pull/2198">ce commit</a>, il sera possible d'exporter les symboles du gestionnaire de style de QGIS sous forme d'image PNG ou SVG.</p>
<p>L'intérêt est de pouvoir réutiliser facilement ces images dans des légendes personnalisées (y compris dans le gestionnaire de composition de QGIS) ou dans d'autres documents.</p>
<h3 id="quelques-défis-à-relever">Quelques défis à relever</h3>
<p>Parmi les choses "sous le capot" qui n'apportent pas grand chose à l'utilisateur final, on peut relever au moins deux challenges de taille pour les développeurs QGIS:</p>
<ul>
<li><p><strong>La migration vers Qt5</strong>: depuis assez longtemps, QGIS utilise la bibliothèque Qt dans sa version 4. On sait tous que la version 4 de Qt <a href="http://blog.qt.io/blog/2015/05/26/qt-4-8-7-released/">n'évoluera plus</a> et que la fin du support, c'est fin décembre 2015. Surtout, <a href="https://lists.debian.org/debian-devel-announce/2015/05/msg00001.html">la prochaine version stable de Debian ne devrait pas embarquer Qt4</a> (<a href="https://packages.debian.org/jessie-backports/qgis">QGIS est empaqueté sous Debian</a>).</p></li>
<li><p><strong>La migration vers Python3</strong>: QGIS est certes codé en C++ mais son système d'extension est en Python et il propose l'accès à 95% de son API avec des bindings Python. Néanmoins, QGIS utilise encore Python 2 dont <a href="https://hg.python.org/peps/rev/76d43e52d978">la fin de vie est programmée pour dans 5 ans</a>.</p></li>
</ul><p>La migration vers Qt5 est <a href="http://osgeo-org.1560.x6.nabble.com/QGIS-master-compiles-against-Qt5-td5174207.html">en cours depuis au moins deux versions</a> mais actuellement, la version 2.10 de QGIS utilise Qt4 par défaut. Il y a des chances que ce travail aboutisse pour la version 3.0 de QGIS (prévue on ne sait pas encore pour quand mais on s'en rapproche un peu plus chaque jour !).</p>
<p>Le passage vers Qt5 amènera sans doute <a href="http://doc.qt.io/qt-5/android-support.html">plus de stabilité pour la version Android de QGIS</a>.</p>
<p>La migration vers Python3 implique le passage du code de toutes les extensions QGIS (<a href="https://plugins.qgis.org/plugins/">et elles sont nombreuses !</a>) de Python2 vers Python3. Ces extensions étant développées de manière libre par rapport au cœur de projet, il faudra un effort substantiel de la part de l'ensemble des mainteneurs. Il y aura sans doute de la casse à prévoir…</p>
<h2 id="petit-retour-sur-la-publication-de-qgis-210">Petit retour sur la publication de QGIS 2.10</h2>
<p>QGIS a un rythme de publication par dates. Tous les 4 mois, une nouvelle version est publiée. Dans ces 4 mois, il y a une période de 3 mois qui permet d'inclure de nouvelles fonctionnalités. Ensuite, arrive une période d'un mois de gel des nouvelles fonctionnalités qui permet de se concentrer sur la résolution des bugs, permettant de livrer une version avec des nouveautés et avec un minimum de bugs. Dans la période du dernier mois, la version "release-candidate" est rendue disponible dans les "nightly-builds".</p>
<p>Les utilisateurs habituels de QGIS auront remarqué qu'en fait, la version 2.10 de QGIS est sortie vers le 28/06 alors que l'annonce officielle <a href="http://osgeo-org.1560.x6.nabble.com/Announcing-the-release-of-QGIS-2-10-Pisa-td5216426.html">a été publiée le 22/07</a>. Néanmoins, depuis quelques versions maintenant (la 2.6), on assiste au phénomène suivant: à la suite de la publication de la version 2.x.0, des bugs majeurs sont remontés; ils n'ont pas été détectés dans la release-candidate. Dans la foulée, ces bugs sont corrigés et environ un mois après la publication initiale, une version 2.x.1 est publiée en remplacement de la version 2.x.0. Pourtant, QGIS a fortement recours aux tests unitaires automatisés (via Travis CI).</p>
<p>C'est encore une fois le cas avec la version 2.10 et cette dernière a été officiellement annoncée par le release manager une fois que tous les paquets binaires de la version 2.10.1 ont été construits et rendus disponibles sur le site de téléchargement.</p>
<p>Cette technique permet d'éviter de rameuter les utilisateurs finaux sur une version qui présente encore des bugs. Néanmoins ce fonctionnement est pervers: la version 2.x.0 est censée être la bonne !</p>
<p>L'origine du problème semble être le fait que les utilisateurs ne font pas assez de tests sur la version "release-candidate". Cette dernière s'installe pourtant assez facilement: il existe un installeur dédié pour MS-Windows et <a href="http://qgis.org/fr/site/forusers/alldownloads.html#debian-ubuntu">des dépôts spécifiques</a> pour les OS GNU/Linux. Néanmoins, il semble que la majorité des utilisateurs finaux ne fassent de vrais tests qu'une fois la version stable livrée ce qui décale d'autant la découverte de bugs importants.</p>
<p>Si vous êtes utilisateur de QGIS, <strong>je ne peux donc que vous encourager à prendre du temps pour tester la version candidate dès le 26/09/2015</strong>. Si vous êtes sous Debian, je vous invite à configurer le dépôt nigthly (<a href="http://qgis.org/debian-nightly-release">http://qgis.org/debian-nightly-release</a>) et à jouer de l'<code>apt-get upgrade</code> aussi souvent que possible. Si vous êtes sous MS-Windows, vous pouvez utiliser <a href="http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe">l'installeur OSGeo4W</a> et installer le paquet <strong>qgis-rel-dev</strong> ou <strong>qgis-dev</strong>. Ces deux paquets n'auront aucune influence sur votre installation stable de QGIS. Vous pouvez également utiliser les versions hebdomadaires des paquets d'installation prêts à l'emploi de QGIS: <a href="http://qgis.org/downloads/weekly/?C=M;O=D">http://qgis.org/downloads/weekly/?C=M;O=D</a> (la bonne version est la 2.11).</p>
<p>Bien entendu, n'hésitez pas à utiliser <a href="http://hub.qgis.org">le bugtracker de QGIS</a> pour remonter les problèmes.</p>
<h2 id="conclusions">Conclusions</h2>
<p>Au fur et à mesure du temps qui passe, les fonctionnalités de QGIS s'améliorent et s'enrichissent, comme peuvent le montrer les évolutions de cette dernière version stable.</p>
<p>Le rythme de publication de QGIS est assez soutenu et il est parfois difficile de suivre ce rythme pour certaines structures ou pour des utilisateurs non avertis. Dans ce cas, ils peuvent se tourner vers la version "support à long terme" (LTR) qui est la version 2.8 et qui devrait connaître une nouvelle publication (2.8.3) dans les jours à venir.</p>
<p>Petit à petit, QGIS se hisse au niveau des meilleurs logiciels propriétaires de SIG et les dépasse déjà sur certaines fonctionnalités, notamment sur la gestion des styles et sur la gestion multi-threads du rendu graphique.</p>
<p>Voilà, si vous avez envie de vous lancer dans le traitement de données géographiques, n'hésitez pas à utiliser la dernière version de QGIS. Pour éviter d'être déçu par la complexité inhérente au sujet (l'information géographique) et à l'interface du logiciel, je vous recommande de lire <a href="http://docs.qgis.org/2.8/fr/docs/training_manual/">le tutoriel/manuel d'apprentissage</a> qui est traduit dans sa très grande majorité en français.</p>
<p><strong>Note:</strong> QGIS est un logiciel SIG généraliste. Si vous voulez travailler pour/avec les données du projet OpenStreetMap, il est sans doute préférable de travailler avec les outils dédiés d'OpenStreetMap comme <a href="https://josm.openstreetmap.de/">JOSM</a> ou <a href="https://wiki.openstreetmap.org/wiki/ID">iD</a> même si QGIS sait lire les fichiers issus d'OSM.</p></div><div><a href="https://linuxfr.org/news/sortie-de-qgis-2-10-pisa.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/106233/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qgis-2-10-pisa#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXpalm123Benoît SibaudNÿcoBAudJean-Christophe BECQUETlejocelynesdeemjcr83tuiu polhttps://linuxfr.org/nodes/106233/comments.atomtag:linuxfr.org,2005:Diary/357362015-03-28T15:38:28+01:002015-03-28T15:38:28+01:00On vient de passer un seuil économique pour la sauvegarde en ligne !Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Hello,</p>
<p>ces derniers jours, plusieurs annonces de baisse de prix sur le stockage en ligne viennent de nous faire passer un cap en ce qui concerne la sauvegarde.</p>
<p>En effet, <a href="https://www.amazon.com/clouddrive/unlimited/">Amazon a annoncé un service de stockage illimité pour 60$ par an</a>.</p>
<p>Aujourd'hui, <a href="https://hubic.com/fr/offres/">OVH annonce 10 To pour 50€/an sur son service Hubic</a>. L'ancien prix était de 120€ par an.</p>
<p>Ces niveaux de prix sont maintenant plus compétitifs que de nombreuses solutions de sauvegardes à la maison. Faisons un rapide calcul avec un petit exemple de solution simple à mettre en place pour un administrateur système averti…</p>
<p>Nous voulons un dispositif de sauvegarde qui permette de sauvegarder 10 To avec un niveau de service qui peut approcher celui des deux fournisseurs évoqués plus haut. Concrètement, cela revient à mettre en place un serveur physique dédié équipé de plusieurs disques en RAID (1 ou 10 pour un cas simple). Le RAID permet de pallier rapidement à une déficience d'un ou de plusieurs disques. Mais cette solution n'est pas suffisante: en cas de sinistre complet sur le serveur, les données sont perdues. Il faut donc également un dispositif d'externalisation qui prendra la forme de disque(s) externe(s) sur lesquels on réalise à une fréquence donnée (1 fois par trimestre ou par mois selon le niveau de sécurité exigé) une copie complète des données du serveur (cela peut prendre la forme d'une copie différentielle par exemple). Pour ma part, l'externalisation est véritablement indispensable si l'on veut pouvoir approcher (sans l'égaler bien sûr mais avec un niveau de service acceptable) le niveau de service des deux fournisseurs sus-cités. En termes de durée de vie, nous allons considérer que les disques seront en fin de vie au bout de 5 ans (c'est parfois la durée de la garantie constructeur).</p>
<p>En étudiant rapidement les prix des disques durs du marché, on se rend compte que le meilleur coût au To est situé dans les disques durs de 3To qui sont à peu près à 100€ pièce. A ce niveau, on peut envisager d'obtenir une capacité protégée par un RAID6 avec 5 disques durs (6 disques pour du RAID10). On obtient 9To disponibles, ce qui est un peu inférieur aux 10To mais qui permet de limiter les coûts d'achats (mes calculs veulent juste montrer raisonnablement que même en rognant sur de nombreux postes, les offres des fournisseurs sont plus avantageuses). Avec 6 disques on obtient une capacité protégée de 12To ce qui dépasse ce qu'offre Hubic. Je mets de côté le problème du nombre de connecteurs SATA indispensables à la mise en oeuvre physique de ce stockage.</p>
<p>Pour l'externalisation, on retiendra 3 disques de 3To chacun. Au total, on doit disposer de 8 disques dur de 3To à 100€ chacun, ce qui donne un total de 800€ environ pour l'achat des disques.</p>
<p>Il faut également considérer la consommation électrique du serveur. Nous allons prendre une machine qui consomme peu. Elle peut prendre la forme d'un plugcomputer ou une carte SOC telle que le BeagleBone Black ou le RaspBerry Pi, à la condition qu'ils disposent de suffisamment de connecteurs disques (ce qui n'est pas gagné). Sur une autre forme, on peut envisager la récupération d'une machine normale (desktop) qui dispose souvent de plusieurs connecteurs SATA. En allumant la machine uniquement pour la sauvegarde, on peut tout à fait maîtriser le coût de l'énergie. Mon calcul montre que la consommation électrique d'une machine de 100W qui fonctionne 3h par semaine (le temps de faire une sauvegarde hebdomadaire d'au moins 500Go de données modifiées depuis la dernière sauvegarde) monte à près de 16kWh/an. A 14,4 centimes d'€ le kWh (tarif de base EDF), on obtient un coût électrique d'environ 2,3 € ce qui est (presque) marginal. Disons que le coût d'acquisition de la machine se situe aux alentours de 200€ (CM+RAM+CPU+Alim).</p>
<ul>
<li>Achat des disques: 800 €</li>
<li>Boiters d'externalisation: 3x20 € = 60€</li>
<li>Achat du serveur: 200€</li>
<li>Consommation électrique annuelle: 2,3 €</li>
</ul><p>Si on fait la somme sur 5 ans on obtient les chiffres suivants:</p>
<ul>
<li>Sauvegarde à la maison (coût total d'achat): 1060 €</li>
<li>Sauvegarde à la maison (consommation d'énergie sur 5 ans): 11,5 € (on peut sans doute augmenter ce poste)</li>
<li>Sauvegarde à la maison (total): 1071,5 €</li>
<li>OVH Hubic: 50€ * 5 = 250 €</li>
<li>OVH Hubic (anciens tarifs): 120€ * 5 = 600 €</li>
<li>Amazon: 60€ * 5 = 300 €</li>
</ul><p>D'un point de vue purement économique, Hubic et Amazon sont bien largement en dessous de ce qu'on peut faire chez soi, à capacité presque équivalente. De plus les calculs simplifiés ne prennent pas en compte les cas de pannes: changer un seul disque dur demande de rajouter 100€.</p>
<p>On peut néanmoins diminuer le poste de sauvegarde à la maison en jouant sur plusieurs tableaux. Par exemple, on peut avoir besoin de stocker moins que 10To. Pour stocker 3To de données, par exemple, il faudra beaucoup moins de matériel (3 disques de 3To au lieu de 8) et on peut également envisager de recycler une machine périmée à condition qu'elle dispose d'au moins 2 connecteurs SATA (ce qui est généralement le cas). Pour ma part, j'arrive à un coût quasi-minimal de 325€ pour une solution de stockage de 3To avec externalisation en utilisant une machine recyclée qui m'a coûté 10€. On voit que même ce montant est supérieur à ce que propose OVH et Amazon, ce qui n'était pas le cas avant (600€ pour l'ancien tarif d'Hubic).</p>
<p>Je reste sincèrement et éthiquement partisan de l'auto-hébergement mais, ma conclusion est que, d'un point de vue purement économique, l'auto-hébergement d'une solution de sauvegarde pour particulier n'est plus du tout rentable depuis ces derniers jours…</p>
<p>On peut néanmoins aller un peu plus loin en essayant d'évaluer quels sont les avantages qui restent d'une solution de sauvegarde auto-hébergée par rapport aux offres des fournisseurs sus-cités ? </p>
<p>J'en vois rapidement un qui me semble majeur: pour les personnes disposant d'un accès à Internet avec un débit montant faible (typiquement l'ADSL), le temps de chargement initial sera forcément très long.<br>
Un rapide calcul montre qu'avec un débit montant de 100ko/s (c'est le débit de crête de mon abonnement par exemple), le chargement de 10 To prendra environ 1240 jours (soit environ 3 ans et demi).<br>
Un débit montant 10 fois plus rapide mettra environ 4 mois, ce qui reste très long. A l'inverse, un débit montant de 50Mbits/s (débit montant typique de la fibre) permettra de réaliser le chargement complet au bout de 19 jours ce qui est beaucoup plus raisonnable.</p>
<p>Le temps de restauration doit également être pris en compte. Avec mon abonnement ADSL, j'ai un débit descendant de 500ko/s et la restauration des 10To devrait me prendre environ 8 mois. Avec la fibre, on descend à des temps bien inférieurs (12 jours environ).</p>
<p>Bien entendu, ces temps correspondent à la mobilisation de toute l'offre (celle d'Hubic au moins) ce qui n'est pas forcément le cas de figure de tout le monde. Pour ma part, mes besoins de sauvegarde se situent aux alentours de 3To ce qui comprend le stockage des données sur plusieurs sauvegardes (4 sauvegardes hebdomadaires et 6 sauvegardes mensuelles conservées en permanence). Sur mon abonnement ADSL, mes temps de sauvegarde totale et de restauration sont respectivement d'un peu plus d'un an et d'un peu plus de 2 mois, ce qui reste très long. Avec une sauvegarde à la maison, je peux monter jusqu'à un débit de 70Mo/s ce qui prend respectivement 12h à sauvegarder et 12h à restaurer. Ces temps sont déjà beaucoup plus intéressants.</p>
<p>Un autre point d'intérêt de la solution de sauvegarde "à la maison", c'est le fait qu'on puisse dédupliquer le contenu des sauvegardes permettant de diminuer sensiblement la quantité d'espace disque utilisée pour stocker des données qui sont redondantes. Par exemple, le système des sauvegardes hebdomadaires et mensuelles sur un espace disque dédupliqué consommera vraiment peu d'espace car les ratios de déduplication observés pour ce genre de sauvegardes qui stockent souvent la même chose à un delta près sont vraiment très bons (facteur de 1 à 10). Il existe maintenant de nombreux logiciels libres qui gère la déduplication (ZFS, Obnam, Attic, etc.).</p>
<p>Enfin, et pour rester sur l'aspect sécurité, disposer d'une sauvegarde à la maison c'est également une meilleure assurance pour lutter contre l'arrêt brutal d'un service. Effectivement, il est possible (même si j'en doute fortement) que ces tarifs soient uniquement des offres d'appel destinées à attirer le chaland et qu'ils vont augmenter par la suite. Peut-être encore, qu'Amazon ou OVH peuvent suspendre assez sèchement votre compte pour de nombreuses raisons (le compte a été piraté; il est utilisé pour stocker des choses répréhensibles par la loi; vous stockez finalement trop de données, pas en "bon père de famille", etc.). Enfin, on peut penser qu'à ce niveau de prix, si l'offre rencontre un réel succès et qu'une grande majorité de comptes stocke à la limite de la capacité, le fournisseur révise sa politique de prix ou limite le nombre de nouveaux abonnements.</p>
<p>Pour conclure sur ce sujet, je pense que l'on vient de franchir un seuil économique. Si jusqu'à présent, sauvegarder physiquement à la maison était souvent plus rentable, ce n'est maintenant plus du tout le cas. D'ailleurs, mes calculs mettent clairement de côté le facteur de temps humain. Même si on dispose d'une solution entièrement automatisée, je pense qu'administrer une machine de sauvegarde reste plus long (et nécessite plus de compétences) qu'utiliser un compte de service de sauvegarde externe. Je pense aussi qu'il est fort possible que ces tarifs baissent à l'avenir, sans doute, plus rapidement encore que les tarifs d'achat des disques durs.</p>
<p>Le cap est franchi, reste à voir quelles seront les conditions d'évolution de ces offres sur du moyen et du long terme (car la sauvegarde est bien un sujet de long terme)…</p><div><a href="https://linuxfr.org/users/medspx/journaux/on-vient-de-passer-un-seuil-economique-pour-la-sauvegarde-en-ligne.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/105250/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/medspx/journaux/on-vient-de-passer-un-seuil-economique-pour-la-sauvegarde-en-ligne#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/105250/comments.atomtag:linuxfr.org,2005:News/357332014-10-01T09:39:56+02:002014-10-12T13:04:34+02:00systemd pour les administrateurs, parties 3, 4 et 5Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>On vous parle depuis longtemps de systemd. On vous dit que c’est très bien. De nombreuses distributions l’ont adopté (dont Fedora, openSUSE, Mageia, Frugalware et ArchLinux), vont l’adopter (Debian, Ubuntu) ou vous permettent de l’utiliser de manière optionnelle (Gentoo par exemple). Mais savez‐vous l’utiliser ?</p>
<p>Voici la suite d'<a href="/news/systemd-pour-les-administrateurs-partie-1-et-2">une série d’articles</a> didactiques pour apprendre à utiliser systemd et vous permettre de mieux l’appréhender et de comprendre les avantages qu’il apporte par rapport aux systèmes précédents.</p>
<p>Les informations ci‐dessous sont tirées, traduites et adaptées du <a href="http://0pointer.de/blog/">blog de Lennart Poettering</a> et sont accessibles dans la langue de Shakespeare aux adresses ci‐dessous :</p></div><ul><li>lien nᵒ 1 : <a title="http://0pointer.net/blog/projects/systemd-for-admins-3.html" hreflang="en" href="https://linuxfr.org/redirect/91708">systemd for Administrators, Part III</a></li><li>lien nᵒ 2 : <a title="http://0pointer.net/blog/projects/systemd-for-admins-4.html" hreflang="en" href="https://linuxfr.org/redirect/91709">systemd for Administrators, Part IV</a></li><li>lien nᵒ 3 : <a title="http://0pointer.net/blog/projects/three-levels-of-off.html" hreflang="en" href="https://linuxfr.org/redirect/91710">systemd for Administrators, Part V</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#partie-3-convertir-un-script-dinit-sysv-en-fichier-de-service-systemd">Partie 3: Convertir un script d'init SysV en fichier de service systemd ?</a><ul>
<li><a href="#plongeons-nous-dedans">Plongeons-nous dedans</a></li>
<li>
<a href="#un-peu-dexplications-du-contenu-de-ce-fichier">Un peu d'explications du contenu de ce fichier</a><ul>
<li><a href="#la-section-unit">La section <code>[Unit]</code></a></li>
<li><a href="#la-section-service">La section <code>[Service]</code></a></li>
<li><a href="#la-derni%C3%A8re-section-est-install">La dernière section est <code>[Install]</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#partie-4-tuer-des-services">Partie 4: Tuer des services</a></li>
<li>
<a href="#partie-5-trois-niveaux-de-off">Partie 5: Trois niveaux de "Off"</a><ul>
<li><a href="#arr%C3%AAter-un-service">Arrêter un service</a></li>
<li><a href="#d%C3%A9sactiver-un-service">Désactiver un service</a></li>
<li><a href="#masquer-un-service">Masquer un service.</a></li>
</ul>
</li>
<li><a href="#notes-de-bas-de-page">Notes de bas de page</a></li>
</ul><h2 id="partie-3-convertir-un-script-dinit-sysv-en-fichier-de-service-systemd">Partie 3: Convertir un script d'init SysV en fichier de service systemd ?</h2>
<p>Traditionnellement, les services Unix et Linux (<em>les démons</em>) sont démarrés par des scripts d'init SysV. Il s'agit de scripts pour le shell Bourne qui résident généralement dans un répertoire tel que <code>/etc/rc.d/init.d/</code> et qui, lorsqu'ils sont appelés avec un des quelques arguments standards (verbes) tels que <code>start</code>, <code>stop</code> ou <code>restart</code>, respectivement démarrent, arrêtent ou relancent le service en question. Pour le démarrage, cela implique généralement d'invoquer le binaire du démon qui forke un processus en tâche de fond (plus précisément, qui devient un démon). Les scripts shell ont tendance à être lents, assez lourds à lire, très verbeux et fragiles. Bien qu'ils soient immensément flexibles (après tout, ce n'est jamais que du code), certaines choses sont difficiles à réaliser avec des scripts shell, comme mettre en ordre une exécution en parallèle, superviser correctement des processus ou encore simplement configurer les contextes d'exécution dans leurs moindres détails. </p>
<p>Systemd fournit des éléments de compatibilité avec ces scripts shell mais, en raison des points négatifs invoqués précédemment, il est recommandé d'installer des fichiers de service systemd pour l'ensemble des démons installés. </p>
<p>De plus, en contraste avec les scripts d'init SysV qui ont besoin d'être adaptés à la distribution, les fichiers de service systemd sont compatibles avec n'importe quelle distribution exécutant systemd (ce qui arrive de plus en plus fréquemment ces derniers temps…). </p>
<p>Dans ce qui suit, vous trouverez un guide succinct sur comment convertir un script d'init SysV en un fichier de service natif systemd. Dans l'idéal, les projets en amont devraient distribuer et installer des fichiers de service dans leur archives tar. Si vous avez converti avec succès un script SysV en suivant les recommandations, il serait de bon ton de soumettre un patch au projet amont. La préparation d'un tel patch sera discutée lors d'une prochaine session et il suffit de vous informer que la page de manuel de <a href="http://0pointer.de/public/systemd-man/daemon.html">daemon(7)</a>, distribuée avec systemd contient de nombreuses informations utiles sur ce sujet.</p>
<h3 id="plongeons-nous-dedans">Plongeons-nous dedans</h3>
<p>À titre d’exemple, nous allons convertir le script d'init du démon ABRT en fichier de service systemd. ABRT est un composant standard de toute installation de Fedora et il s'agit d'un acronyme pour Automatic Bug Reporting Tool, ce qui décrit bien mieux ce dont il s'agit, à savoir, un service pour collecter les dumps de crash. <a href="http://0pointer.de/public/abrtd">Le fichier de script SysV est disponible ici</a>.</p>
<p>La première étape à suivre pour convertir un tel script consiste simplement à le lire (!) et à récupérer l'information essentielle distillée tout au long de ce script volumineux. Dans la majorité des cas, le script est formé d'un ensemble de code qui est assez similaire dans tous les scripts d'init et il est généralement copié-collé d'un script à l'autre. Extrayons maintenant l'information essentielle du script ci-dessus:</p>
<ul>
<li>Une chaîne de caractère qui décrit le service: "<em>Daemon to detect crashing apps</em>". Les commentaires de l'en-tête du script présentent plusieurs chaînes de description, certaines décrivant davantage le script d'init réalisant le démarrage du service que le service en lui-même. Les services systemd ont également besoin d'une description et ils devraient décrire le service et non le fichier de service.</li>
<li>L'en-tête LSB<sup id="fnref1"><a href="#fn1" rel="footnote">1</a></sup> contient les informations de dépendance. Grâce à son architecture basée sur l'activation par socket, systemd n'a généralement pas besoin (ou un tout petit peu) de définir manuellement les dépendances. (Pour plus d'informations sur l’activation par socket <a href="http://0pointer.de/blog/projects/systemd.html">lisez l'article originel du blog</a>.) Dans ce cas, la dépendance vis-à-vis de <code>$syslog</code> (qui indique que arbtd a besoin d'un démon syslog) est la seule information d'intérêt. Même si l'en-tête indique une autre dépendance (<code>$local_fs</code>), celle-ci est redondante dans systemd car les services normaux systemd sont toujours démarrés lorsque tous les systèmes de fichiers locaux sont disponibles.</li>
<li>L'en-tête LSB suggère que ce service doit être démarré dans les runlevels 3 (multi-utilisateur) et 5 (graphique).</li>
<li>Le binaire du démon est <code>/usr/sbin/abrtd</code>.</li>
</ul><p>Et c'est déjà tout ! Le reste de ce script de 115 lignes est simplement du code générique ou redondant: du code qui gère la synchronisation et l'ordonnancement du démarrage (du code qui gère les fichiers de lock) ou qui génère des messages d'état (le code qui appelle echo), ou simplement qui analyse les arguments (le gros bloc du case).</p>
<p>À partir de l'information extraite ci-dessus, nous pouvons maintenant écrire notre fichier de service systemd:</p>
<pre><code class="ini"><span class="k">[Unit]</span>
<span class="na">Description</span><span class="o">=</span><span class="s">Daemon to detect crashing apps</span>
<span class="na">After</span><span class="o">=</span><span class="s">syslog.target</span>
<span class="k">[Service]</span>
<span class="na">ExecStart</span><span class="o">=</span><span class="s">/usr/sbin/abrtd</span>
<span class="na">Type</span><span class="o">=</span><span class="s">forking</span>
<span class="k">[Install]</span>
<span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span></code></pre>
<h3 id="un-peu-dexplications-du-contenu-de-ce-fichier">Un peu d'explications du contenu de ce fichier</h3>
<h4 id="la-section-unit">La section <code>[Unit]</code>
</h4>
<p>Elle contient de l'information générique sur le service. Systemd gère des services systèmes mais également des périphériques, des points de montage, des timers, et d'autres composants du système. Le terme générique pour tous ces objets dans systemd est une unité (<em>Unit</em>). La section <code>[Unit]</code> stocke l'information qui s'applique non seulement aux services mais également à tous les autres types d'unité systemd. Dans notre cas, nous ajoutons les paramètres d'unité suivants: nous ajoutons une chaîne de caractère de description et nous configurons que le démon doit être lancé après Syslog<sup>2,</sup> de la même manière à ce qui est indiqué dans l'en-tête LSB du script d'init originel. Pour gérer cette dépendance à Syslog, nous créons une dépendance de type <code>After=</code> sur l'unité systemd nommée <code>syslog.target</code>. Cette dernière est une unité particulière et elle représente le nom standard pour l'implémentation de syslog dans systemd. Pour plus d'informations sur ces noms standardisés, consultez la page de manuel <a href="http://0pointer.de/public/systemd-man/systemd.special.html">systemd.special(7)</a>. Notez qu'une dépendance du type <code>After=</code> représente seulement une suggestion d'ordre de démarrage; elle ne se traduit pas par le démarrage de syslog lorsque abrtd démarre. C'est exactement ce que nous voulons puisque abrtd fonctionne correctement, même lorsque syslog n'est pas disponible. Néanmoins, si les deux sont démarrés (c'est généralement le cas), alors l'ordre dans lequel ils sont lancés est contrôlé avec cette dépendance.</p>
<h4 id="la-section-service">La section <code>[Service]</code>
</h4>
<p>Elle s'occupe de l'information sur le service en lui-même. Elle contient tous les paramètres qui s'appliquent uniquement à des services et non aux autres types d'unité systemd (points de montage, périphériques, timers, …). Deux paramètres sont utilisés ici: <code>ExecStart=</code> qui stocke le chemin vers le binaire pour l'exécuter lorsque le service doit être démarré. Avec <code>Type=</code>, on configure la manière dont le service notifie le système d'init qu'il a terminé son démarrage. Étant donné que les démons traditionnels Unix le font en émettant un code de retour au processus parent après avoir forké et initialisé un démon en tâche de fond, nous utilisons le type forking ici. Cela indique à systemd d'attendre jusqu'à ce que le binaire de démarrage envoie un code retour et de gérer les processus qui tournent toujours après ceux du démon.</p>
<h4 id="la-dernière-section-est-install">La dernière section est <code>[Install]</code>
</h4>
<p>Elle stocke l'information sur comment devrait être l'installation suggérée, c’est-à-dire, dans quelles circonstances et par quels déclencheurs le service devrait être démarré. Dans notre cas, nous indiquons simplement que le service doit être démarré lorsque l'Unit <code>multi-user.target</code> est activée. Il s'agit également d'une Unit spéciale qui prend globalement le rôle du Runlevel 3<sup id="fnref2"><a href="#fn2" rel="footnote">2</a></sup> de SysV. Le paramètre <code>WantedBy=</code> a peu d'effet sur le fonctionnement courant du démon. Il est uniquement lu par la commande <code>systemctl enable</code> qui est le moyen recommandé d'installer un service dans systemd. Cette commande s'assure simplement que notre service est automatiquement activé dès que l'Unit <code>multi-user.target</code> est requise, ce qui est le cas lors des séquences de boot normales<sup id="fnref3"><a href="#fn3" rel="footnote">3</a></sup>.</p>
<p>Et c'est tout ! Nous avons maintenant un fichier de service systemd fonctionnel et simple. Pour le tester, il faut le copier dans <code>/etc/systemd/system/abrtd.service</code> et lancer <code>systemctl daemon-reload</code>. Cela permettra à systemd de prendre en compte notre fichier et dès cet instant, nous pouvons démarrer ce service en lançant: <code>systemctl start abrtd.service</code>. Nous pouvons en vérifier l'état grâce à <code>systemctl status abrtd.service</code>. Et nous pouvons arrêter le service via <code>systemctl stop abrtd.service</code>. Finalement, nous pouvons l'installer de manière à ce qu'il soit activé par défaut lors des prochains boots avec la commande <code>systemctl enable abrtd.service</code>.</p>
<p>Le fichier de service ci-dessus, bien que suffisant et représentant une traduction globale du script d'init SysV, peut encore être amélioré. En voici une petite mise à jour:</p>
<pre><code class="ini"><span class="k">[Unit]</span>
<span class="na">Description</span><span class="o">=</span><span class="s">ABRT Automated Bug Reporting Tool</span>
<span class="na">After</span><span class="o">=</span><span class="s">syslog.target</span>
<span class="k">[Service]</span>
<span class="na">Type</span><span class="o">=</span><span class="s">dbus</span>
<span class="na">BusName</span><span class="o">=</span><span class="s">com.redhat.abrt</span>
<span class="na">ExecStart</span><span class="o">=</span><span class="s">/usr/sbin/abrtd -d -s</span>
<span class="k">[Install]</span>
<span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span></code></pre>
<p>Voyons ce qui a changé. Deux choses: nous avons amélioré la description et, plus important, nous avons changé le type de service à dbus et configuré le nom D-Bus du service. Pourquoi avoir fait cela ? Comme déjà évoqué précédemment, les services classiques SysV deviennent des démons après le démarrage ce qui implique généralement un double fork et le fait de se détacher de tout terminal. Bien que cette approche soit utile et nécessaire lorsque les démons sont lancés par un script, elle est non nécessaire (et lente) ainsi que contre-productive lorsqu'un système efficace de gestion des processus tel que systemd est employé. La raison à cela est que le processus du démon qui a forké n'a généralement plus de lien avec le processus démarré par systemd (la procédure de transformation en démon consiste à supprimer ce lien), ce qui rend difficile pour systemd de distinguer, après le fork, dans les processus appartenant au service, lequel est le processus principal et quels sont les processus auxiliaires. Cette information est pourtant cruciale pour disposer d'une gestion de processus aux petits oignons, c’est-à-dire pour superviser un processus, le relancer automatiquement lors des arrêts anormaux, collecter l'information de crash et les codes de sortie. Pour que systemd puisse facilement repérer quel est le processus principal, nous avons changé le type de service à dbus. La syntaxe de ce type de service est faite pour tous les services qui prennent un nom sur le bus système D-Bus comme dernière étape de leur initialisation <sup id="fnref4"><a href="#fn4" rel="footnote">4</a></sup>. ABRT est un de ces services. Avec ce paramètre, systemd lancera le processus ABRT qui ne forkera plus (configuré via les options <code>-d -s</code> du démon) et systemd considérera le service comme complètement démarré dès que <code>com.redhat.abrt</code> apparaîtra sur le bus. Ainsi, le processus lancé par systemd sera le processus principal du démon et systemd dispose d'un moyen fiable pour vérifier si le démon est complètement démarré; systemd pourra le superviser plus facilement.</p>
<p>Et c'est tout ce qu'il y a besoin de faire. Nous avons un simple fichier de service systemd qui fournit plus d'information dans 10 lignes que le script SysV originel en 115 lignes. Dès maintenant, il reste encore une grande marge d'amélioration en utilisant plus de fonctionnalités de systemd. Par exemple, nous pourrions configurer <code>Restart=restart-always</code> pour indiquer à systemd de relancer automatiquement le service lorsque celui-ci échoue. Ou encore, nous pourrions utiliser <code>OOMScoreAdjust=-500</code> pour demander au noyau de laisser ce processus lorsque OOM killer est employé. Ou bien, nous pourrions utiliser <code>CPUSchedulingPolicy=idle</code> pour s'assurer qu'abrtd traite les traces de crash en tâche de fond uniquement, en autorisant le noyau à donner sa préférence à tout ce qui fonctionne et qui a besoin de temps CPU.</p>
<p>Pour plus d'informations sur les options de configuration mentionnées ci-dessus, consultez les pages de manuel respectives <a href="http://0pointer.de/public/systemd-man/systemd.unit.html">systemd.unit(5)</a>, <a href="http://0pointer.de/public/systemd-man/systemd.service.html">systemd.service(5)</a>, <a href="http://0pointer.de/public/systemd-man/systemd.exec.html">systemd.exec(5)</a>. Ou bien, consultez <a href="http://0pointer.de/public/systemd-man/">toutes les pages de manuel systemd</a>.</p>
<p>Bien sûr, tous les scripts SysV ne se convertissent pas aussi facilement que celui que nous avons étudié. Néanmoins une grande majorité devrait pouvoir l'être.</p>
<p>C'est tout pour aujourd'hui, à bientôt pour la prochaine session de cette série.</p>
<h2 id="partie-4-tuer-des-services">Partie 4: Tuer des services</h2>
<p>Tuer un service, c'est simple non ? Ou pas ?</p>
<p>Bien entendu, tant que votre démon est constitué d'un seul processus, c'est généralement vrai. Vous tapez <code>killall rsyslogd</code> et le démon syslog n'est plus. Néanmoins, c'est un peu sale de faire ainsi étant donné que cela tuera tous les démons qui s'appellent ainsi, incluant ceux qu'un utilisateur malchanceux aurait nommé ainsi par accident. Une version plus correcte aurait été de lire le fichier <code>.pid</code>, c'est-à-dire <code>kill $(cat /var/run/syslogd.pid)</code>. Cela nous avance un peu mais néanmoins est-ce vraiment ce que nous souhaitons ?</p>
<p>Dans la majorité des cas en fait, cela ne se passera pas ainsi. Considérons des services tels qu'Apache, crond ou atd qui, dans leur fonctionnement courant, engendrent des processus fils. Généralement, il s'agit de processus fils configurables par l'utilisateur tels que des tâches cron ou at ou encore des scripts CGI, y compris des serveurs d'application complets. Si vous tuez le processus principal Apache/crond/atd cela pourra ou non tuer l'ensemble des processus fils également et c'est à chacun de ces processus de savoir s'ils veulent continuer à tourner ou s'ils doivent s'arrêter. Dans la pratique, cela signifie que mettre fin à Apache pourrait très bien laisser ces scripts CGI fonctionner, réaffectés comme enfants du processus init, ce qui est difficile à tracer.</p>
<p><a href="http://www.freedesktop.org/wiki/Software/systemd">Systemd</a> vient à la rescousse: avec <code>systemctl kill</code>, vous pouvez facilement envoyer un signal à tous les processus d'un service. Par exemple:</p>
<pre><code># systemctl kill crond.service
</code></pre>
<p>Cela assurera que SIGTERM est envoyé à tous les processus du service crond, pas uniquement au processus principal. Bien entendu, vous pouvez également envoyer un signal différent si vous le souhaitez. Par exemple, si vous êtes mal luné, vous aurez peut-être envie d'envoyer SIGKILL de cette manière:</p>
<pre><code># systemctl kill -s SIGKILL crond.service
</code></pre>
<p>Et voilà, le service sera complètement stoppé brutalement, peu importe combien de fois il a été forké ou qu'il essaye d'échapper à la supervision par un fork double ou par un bombardement de forks.</p>
<p>Parfois, vous avez juste besoin d'envoyer un signal spécifique au processus principal d'un service, par exemple parce que vous voulez déclencher un rechargement du service par le signal SIGHUP. A la place de retrouver le fichier de PID, voici un moyen plus simple d'y parvenir:</p>
<pre><code># systemctl kill -s HUP --kill-who=main crond.service
</code></pre>
<p>Encore une fois, qu'y-a-t-il de nouveau et de fantaisiste dans la manière de tuer des processus avec systemd ? Eh bien, pour la première fois sous Linux, nous pouvons le faire proprement. Les précédentes solutions dépendaient toutes de la bonne coopération des démons pour qu'ils arrêtent tous les processus qu'ils avaient engendrés lorsqu'ils devaient se terminer. Néanmoins si vous voulez employer SIGTERM ou SIGKILL, vous le faites parce qu'ils ne coopèrent pas correctement avec vous.</p>
<p>Qu'est-ce-que ça a à voir avec <code>systemctl stop</code> ? <code>kill</code> envoie directement un signal à chacun des processus situés dans le groupe; <code>stop</code>, pour sa part, utilise le moyen officiellement configuré pour arrêter le service, c'est-à-dire qu'il lance la commande configurée avec <code>ExecStop=</code> dans le fichier de service. En général, <code>stop</code> devrait être suffisant. <code>kill</code> reste la méthode forte à utiliser dans les cas ou vous ne voulez pas utiliser la commande <code>shutdown</code> d'un service ou bien lorsque le service est complètement en carafe.</p>
<p>(C'est à vous bien entendu d'indiquer ou non les noms de signaux avec le préfixe SIG avec ou sans l'option -s. Les deux fonctionnent.)</p>
<p>C'est assez surprenant d'être parvenu jusqu'ici sous Linux sans disposer d'un moyen efficace de tuer des services. Systemd permet pour la première fois de le faire proprement.</p>
<h2 id="partie-5-trois-niveaux-de-off">Partie 5: Trois niveaux de "Off"</h2>
<p>Dans systemd, il y a trois niveaux pour arrêter un service (ou d'autres unités). Voyons voir quels sont-ils:</p>
<h3 id="arrêter-un-service">Arrêter un service</h3>
<p>Cela termine simplement l'instance du service qui fonctionne et cela ne fait que ça. Si pour d'autres raisons d'activation (telles que le lancement manuel, l'activation par socket, par le bus, par le boot du système ou par un interrupteur machine) le service est demandé après cet arrêt, il sera à nouveau lancé. Arrêter un service est donc une opération simple, temporaire et superficielle. Voici un exemple avec le service NTP:</p>
<pre><code>$ systemctl stop ntpd.service
</code></pre>
<p>C'est globalement équivalent à la commande traditionnelle disponible sur la plupart des systèmes basés sur SysV:</p>
<pre><code>$ service ntpd stop
</code></pre>
<p>Dans les faits, sur Fedora 15, si vous exécutez cette dernière commande, elle sera convertie de manière transparente en la première.</p>
<h3 id="désactiver-un-service">Désactiver un service</h3>
<p>Cela détache le service de ses déclencheurs. Cela signifie que, selon votre service, il ne sera plus activé au démarrage de la machine, par socket, par bus ou par un interrupteur machine (ou tout autre déclencheur qui s'y applique). Néanmoins, vous pouvez quand même le lancer manuellement si vous le désirez. S'il y a déjà une instance du service démarrée, désactiver un service ne l'arrêtera pas. Voici un exemple de comment désactiver un service:</p>
<pre><code>$ systemctl disable ntpd.service
</code></pre>
<p>Sur les systèmes traditionnels Fedora, c'est globalement l'équivalent de la commande qui suit:</p>
<pre><code>$ chkconfig ntpd off
</code></pre>
<p>Ici également, sur Fedora 15, la commande précédente sera convertie de manière transparente en la première, si nécessaire.</p>
<p>Bien souvent, vous souhaitez combiner arrêt et désactivation du service, de manière à supprimer l'instance courante et faire en sorte que le service ne soit pas relancé (sauf par action manuelle):</p>
<pre><code>$ systemctl disable ntpd.service
$ systemctl stop ntpd.service
</code></pre>
<p>Les commandes précédentes sont lancées par exemple lors de la désinstallation du paquet d'un service systemd sur Fedora.</p>
<p>Désactiver un service est un changement permanent; tant que vous ne le réactivez pas, ce changement sera conservé même après le redémarrage de la machine.</p>
<h3 id="masquer-un-service">Masquer un service.</h3>
<p>C'est comme le désactiver mais en plus fort. Cela fait en sorte d'être sûr que le service ne sera plus jamais démarré automatiquement mais assure également qu'un service ne puisse plus être démarré manuellement. C'est une fonctionnalité cachée dans systemd puisqu'elle n'est pas utilisé couramment et qu'elle peut être mal interprétée par un utilisateur. Néanmoins, voilà comment vous devriez procéder:</p>
<pre><code>$ ln -s /dev/null /etc/systemd/system/ntpd.service
$ systemctl daemon-reload
</code></pre>
<p>En créant un lien symbolique d'un fichier de service vers <code>/dev/null</code>, vous indiquez à systemd de ne jamais démarrer le service en question et vous bloquez complètement son exécution. Les fichiers d'unité stockés dans <code>/etc/systemd.system</code> remplacent ceux qui sont situés dans <code>/lib/systemd/system</code> qui portent le même nom. Le premier répertoire relève de l'administrateur système, le second relève du responsable de paquet. En installant un lien symbolique dans <code>/etc/systemd/system/ntpd.service</code>, vous pouvez être sûr que systemd ne lira jamais le fichier de service situé dans <code>/lib/systemd/system/ntpd.service</code>.</p>
<p>Systemd reconnaîtra les unités liées vers <code>/dev/null</code> et les indiquera comme étant masquées. Si vous essayez de lancer de tels services manuellement (via <code>systemctl start</code> par exemple), cela se terminera par une erreur.</p>
<p>Un mécanisme similaire n'existe pas (officiellement) pour les systèmes SysV. Néanmoins, il existe quelques trucs officieux comme éditer le script d'init et en indiquant un exit 0 au début ou bien encore en enlevant le bit exécutable. Néanmoins ces solutions présentent différents inconvénients comme le fait qu'elles interfèrent avec ce que le responsable de paquet a prévu.</p>
<p>Masquer un service est un changement permanent, un peu comme désactiver un service.</p>
<p>Maintenant que nous savons comment gérer l'arrêt de services sur ces trois niveaux, il reste encore une question: commet les réactiver. Eh bien, c'est assez similaire. Utilisez <code>systemctl start</code> pour revenir en arrière de la commande <code>systemctl stop</code>. Utilisez <code>systemctl enable</code> pour revenir en arrière de la commande <code>systemctl disable</code> et utilisez <code>rm</code> pour supprimer les liens symboliques.</p>
<p>C'est tout pour aujourd'hui, Merci de votre attention !</p>
<h2 id="notes-de-bas-de-page">Notes de bas de page</h2>
<p>Note du rédacteur: ce serait bien que l'ensemble des traductions relatives à systemd du blog de Lennart Poettering puissent être traduites sur LinuxFr.org (sauf peut-être celles sur journald qui est un composant optionnel de systemd). Cela permettrait de rendre plus accessible et démystifier un peu ce composant système devenu maintenant quasi-incontournable ainsi que d'apporter quelques articles techniques (pas forcément de haut niveau) sur LinuxFr.org.</p>
<div class="footnotes">
<hr>
<ol>
<li id="fn1">
<p>L'en-tête LSB des scripts d'init est une convention qui permet d'inclure des métadonnées sur le service dans des blocs de commentaires des scripts d'init SysV. Elle est <a href="http://refspecs.freestandards.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html">définie dans la Linux Standard Base</a>. L'objectif était de standardiser les scripts d'init parmi les différentes distributions. Bien que la majorité des distributions ont adopté ce schéma, la gestion des en-têtes varie beaucoup d'une distribution à l'autre et dans les faits, il est souvent nécessaire d'adapter chaque script d'init pour chacune des distributions. La spécification LSB sur ce point n'a jamais atteint la promesse qu'elle s'était fixée au départ. <a href="#fnref1" rev="footnote">↩</a></p>
</li>
<li id="fn2">
<p>Au moins de la manière utilisée pour sa définition dans Fedora. <a href="#fnref2" rev="footnote">↩</a></p>
</li>
<li id="fn3">
<p>Veuillez noter que dans systemd, le boot graphique (<code>graphical.target</code> qui prend le rôle du RunLevel 5 de SysV) est un sur-ensemble de la séquence de boot dédiée au mode console seule (<code>multi-user.target</code>, c’est-à-dire le RunLevel 3). Cela signifie que rattacher un service dans cette dernière le rattachera également à la première séquence de boot (`graphical.target). <a href="#fnref3" rev="footnote">↩</a></p>
</li>
<li id="fn4">
<p>En fait, la majorité des services de l'installation par défaut de Fedora utilisent maintenant un nom sur le bus après démarrage. <a href="#fnref4" rev="footnote">↩</a></p>
</li>
</ol>
</div></div><div><a href="https://linuxfr.org/news/systemd-pour-les-administrateurs-parties-3-4-et-5.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103460/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/systemd-pour-les-administrateurs-parties-3-4-et-5#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXBenoît Sibaudpalm123NeoXOntologiaNils Ratusznikhttps://linuxfr.org/nodes/103460/comments.atomtag:linuxfr.org,2005:News/288712011-12-14T15:02:55+01:002011-12-14T15:02:55+01:00Pour Noël, faites un cadeau au projet OpenStreetMap !Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>La fondation OpenStreetMap a lancé depuis le 1er décembre 2011 une campagne de financement. Elle est destinée principalement à l'acquisition d'un serveur de sauvegarde supplémentaire. L'objectif est de récolter 15 000 £, soit un peu moins de 18 000 €.</p>
<p>Pour les néophytes, OpenStreetMap est un projet collaboratif qui a pour objectif de créer une base de données spatiale du monde sous licence libre, en utilisant les systèmes de positionnement satellite ainsi que d'autres données libres. Ces données peuvent être utilisées pour produire des cartes, faire des analyses et des statistiques de territoire, etc. C'est en quelque sorte le Wikipédia de l'information géographique.</p></div><ul><li>lien nᵒ 1 : <a title="http://donate.openstreetmap.org/server2011/" hreflang="en" href="https://linuxfr.org/redirect/74232">Pour donner !</a></li><li>lien nᵒ 2 : <a title="http://blog.osmfoundation.org/2011/12/01/funding-drive/" hreflang="en" href="https://linuxfr.org/redirect/74233">L'annonce de la campagne de financement</a></li><li>lien nᵒ 3 : <a title="https://wiki.openstreetmap.org/wiki/New_server_and_fund_raising_drive_2011" hreflang="en" href="https://linuxfr.org/redirect/74234">Des détails sur le serveur à financer</a></li><li>lien nᵒ 4 : <a title="http://old.opengeodata.org/2009/02/12/hardware-upgrade-appeal-thank-you/index.html" hreflang="en" href="https://linuxfr.org/redirect/74235">Informations sur la campagne de 2009</a></li><li>lien nᵒ 5 : <a title="http://www.osmfoundation.org/wiki/Donate" hreflang="en" href="https://linuxfr.org/redirect/74237">Pour payer avec autre chose que Paypal</a></li><li>lien nᵒ 6 : <a title="http://www.openstreetmap.org/index.html" hreflang="en" href="https://linuxfr.org/redirect/74238">Consulter la carte d'OpenStreetMap</a></li></ul><div><p>Contrairement à ce qu'il s'est passé lors de la campagne de financement (en 2009), les caisses se remplissent plus lentement. À l'époque, les 10 000 £ avaient été atteints en moins de 3 jours. Ce n'est pas le cas en 2011, d'où l'objet de cette dépêche. En plus, la période des fêtes se prête allègrement à cet exercice de dons...</p>
<p>Chose intéressante, à l'inverse d'autres fondations (dont Wikimédia), cette somme d'argent est mise en priorité sur du matériel qui servira directement l'infrastructure technique du projet et pourra fortement améliorer le service rendu aux utilisateurs et aux contributeurs d'OpenStreetMap. Votre contribution ira donc directement dans du matériel et ne sera pas emmagasinée sur le compte en banque de la fondation ou utilisée pour d'autres postes de dépenses plus indirects tel que le financement des plans de communication ou les billets d'avion des intervenants (même si ces postes sont très utiles pour faire avancer le projet).</p>
<p>De plus, la fondation OpenStreetMap est propriétaire de son matériel ce qui lui assure une plus grande indépendance par rapport à un prestataire qui déciderait de changer subitement les règles ou qui ferait faillite.</p>
<p>Voilà donc une opportunité (<del>en or</del> en €) à saisir pour contribuer directement au projet. Si ça fait longtemps que vous n'avez pas déposé de données dans OpenStreetMap, vous avez une chance supplémentaire de vous rattraper ! </p>
<p>En ce qui concerne les dons, ceux-ci peuvent se faire par PayPal, en livres Sterling ou en Euros. Les personnes qui souhaitent éviter cet opérateur de transfert d'argent peuvent toujours effectuer un virement (même si c'est plus cher mais quand on a des principes, on ne compte pas ;-)) selon les modalités indiquées par la fondation.</p>
<p>Souhaitons, avec un peu d'avance, un joyeux Noël à ce projet libre de référence !</p></div><div><a href="https://linuxfr.org/news/pour-noel-faites-un-cadeau-au-projet-openstreetmap.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/88623/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/pour-noel-faites-un-cadeau-au-projet-openstreetmap#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXLucas BonnetMaliciaNÿcohttps://linuxfr.org/nodes/88623/comments.atomtag:linuxfr.org,2005:Diary/303782010-10-28T00:11:44+02:002010-10-28T00:11:44+02:00Oeuvres visuelles orphelines et licence libre
Cher journal,<br />
<br />
je viens de tomber sur le communiqué de presse de l'AFUL en ce qui concerne le projet de loi du Sénat sur les oeuvres visuelles orphelines. Vous pouvez lire ce communiqué ici: <a href="http://aful.org/communiques/senat-organise-viol-droits-auteur">http://aful.org/communiques/senat-organise-viol-droits-auteu(...)</a><br />
<br />
Pour résumer le communiqué (qui lui-même résume le projet de loi), les propositions de la haute assemblée visent à permettre l'exploitation par une société civile de perception et de répartition des droits d'auteur (SCPRD) des oeuvres visuelles orphelines (en gros les images dont on ne peut retrouver trace de l'auteur).<br />
<br />
A priori, de ce que j'en ai compris, aujourd'hui les oeuvres orphelines sont exploitées gratuitement et sans problème juridique. Le projet de loi semble viser la remise en circulation de ces oeuvres dans le but de faire du fric. Mon opinion (et visiblement celle de l'AFUL): premier mauvais point...<br />
<br />
Ensuite, on peut se poser la question des images libres et passer au deuxième mauvais point. En effet, dès lors qu'un auteur est introuvable, peut-on considérer l'oeuvre comme orpheline, peu importe sa licence ? Concrètement, je créé une image et désire la mettre en licence libre (CC-BY-SA). Je la publie sur mon site web, elle est reprise dans un tas de sites différents qui en assurent la diffusion. Mais comme je créé de l'art pour l'art, je ne passe pas trop de temps à gérer l'image. Comme elle est reprise à droite et à gauche, peut-être qu'un jour, une SCPRD passera dans le coin et dira: "pas mal, l'adresse de l'auteur n'est pas mentionné, après recherche, impossible de le contacter... Bon, la licence semble être libre mais comme l'oeuvre est orpheline, à nous la gestion et faisons fi de la licence !!!" Au final, on passerait d'une licence libre à une gestion de droits complètement fermée. Ou pour résumer: comment faire du copyright avec du copyleft !<br />
<br />
Bien entendu, le projet de loi précise que si l'auteur se manifeste, la gestion des droits par la SCPRD s'arrête. Mais le risque est grand de passer complètement à côté... Imaginons, une petite procédure simple qui cherche les images dans Wikimedia Commons [<a href="http://commons.wikimedia.org/wiki/Accueil">http://commons.wikimedia.org/wiki/Accueil</a>] dont les comptes des auteurs sont non valides ou fermés. A priori, même si la licence est explicite, du moment que l'auteur n'est pas joignable (pas d'adresse email valide par exemple), rien n'empêche, à la lumière du projet de loi, une SCPRD d'en gérer les droits et donc de réclamer de la monnaie sonnante et trébuchante pour que Wikimedia Commons continue à la publier.<br />
<br />
De plus, n'oublions pas qu'une SCPRD a des moyens financiers et humains bien plus importants que les citoyens individuels qui auraient sans doute des difficultés à réclamer leurs droits, qui plus est sur des oeuvres libres dont ils auront permis une large diffusion dans un objectif non pécunier. A priori, qui dit oeuvre libre, dit gestion plus "libre" (plus légère): les droits et les devoirs de l'auteur sont moins encadrés dans les licences libres que dans les licences fermées. Avec le projet de loi, les auteurs d'oeuvres libres auraient donc de plus grandes responsabilités, notamment, celle de veiller à être joignable facilement ce qui est assez couteux (en temps ou en €) comparativement à la démarche plus légère qui consiste à choisir une licence libre et à "balancer" l'oeuvre dans le cyberspace...<br />
<br />
Mon analyse qui est peut-être alarmiste (mais peut-être pas en fait) me laisse penser qu'en l'état, le projet de loi n'est pas recevable: il va falloir en modifier les termes, au moins pour veiller à préserver les droits des oeuvres libres qui ont une vie en dehors de l'auteur...<div><a href="https://linuxfr.org/users/medspx/journaux/oeuvres-visuelles-orphelines-et-licence-libre.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/56652/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/medspx/journaux/oeuvres-visuelles-orphelines-et-licence-libre#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/56652/comments.atomtag:linuxfr.org,2005:Diary/303582010-10-23T15:22:51+02:002010-10-23T15:22:51+02:00Piratage et logiciel libre
Chers journaux,<br />
<br />
En ce moment sur Linuxfr, de nombreux sujets évoquent le piratage. Ainsi, il n'est quasiment plus un seul sujet qui ne parle d'HADOPI, de copyright, de respect des licences. Si j'en crois l'article sur Thierry Lhermite [<a href="https://linuxfr.org/~RedFox/30344.html">https://linuxfr.org/~RedFox/30344.html</a>], celui sur l'éloge du vol [<a href="https://linuxfr.org/~julo4lfr/30353.html">https://linuxfr.org/~julo4lfr/30353.html</a>], celui sur Oxmo Pucino [<a href="https://linuxfr.org/~marciUn/30294.html">https://linuxfr.org/~marciUn/30294.html</a>] ou encore celui sur la revue du P2P [<a href="https://linuxfr.org/~SamWang/30315.html">https://linuxfr.org/~SamWang/30315.html</a>], le débat sur le piratage est relativement bien chargé en ce moment.<br />
<br />
Pour continuer à nourrir ce débat malgré les vacances qui se profilent, je vous propose une petite traduction d'un article de notre ami Benjamin Mako Hill [<a href="http://mako.cc">http://mako.cc</a>]. Vous pouvez le lire en anglais ici: [<a href="http://mako.cc/copyrighteous/20101011-00">http://mako.cc/copyrighteous/20101011-00</a>]. L'article original étant en CC-BY-SA, cette traduction le sera également !<br />
Bien entendu, elle est perfectible et j'espère ne pas avoir fait trop de contresens ! Pour des raisons de lisibilité, je n'ai pas mis tous les liens présents dans l'article.<br />
<br />
Voici la traduction:<br />
<cite><br />
Piratage et logiciel libre:<br />
<br />
Dans "Pourquoi le logiciel ne devrait pas avoir de propriétaires [<a href="http://www.gnu.org/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>]", Richard Stallman explique que lorsqu'un ami vous demande un bout de logiciel et que sa licence vous empêche de le partager, vous devrez alors choisir entre violer la licence ou être un mauvais ami. Stallman suggère que les utilisateurs choisiront le moindre mal en violant la licence. Il fait remarquer qu'il est injuste de demander à un utilisateur de faire un tel choix.<br />
<br />
Ces dernières années, les partis pirates ont émergé un peu partout dans le monde moderne. Bien entendu, le piratage reste le principal moyen de distribution de contenus à travers le reste du monde. Les activistes de l'accès à l'information se sont fédérés et organisés sous la bannière "pirate", représentants du choix de partager avec des amis sans respecter les termes des licences.<br />
<br />
Les mouvements du logiciel libre (FLOSS) et de la culture libre semblent avoir des réactions variées et confuses à propos de tout cela. D'un côté, les promoteurs les plus influents de nombreux partis pirates sont des fidèles du logiciel et de la culture libre et plusieurs partis pirates font de l'activisme autour du logiciel libre un élément de leur discours politique. Le rejet des brevets logiciels et des DRM de la part des partis pirates est porteur dans les communautés du libre. D'un autre côté, les leaders du mouvement du logiciel libre, y compris Stallman, nous mettent en garde à propos des stratégies "pirates" anti-copyright [<a href="http://www.gnu.org/philosophy/pirate-party.html">http://www.gnu.org/philosophy/pirate-party.html</a>]. Les leaders de la culture libre, tels que Lawrence Lessig, ont constamment et fortement dénoncé le piratage, allant même jusqu'à considérer que toute annonce d'association avec le piratage était un affront. Ils ont systématiquement mis de la distance entre leurs travaux et le piratage.<br />
<br />
Les mouvements du logiciel libre et de la culture libre devraient-ils considérer les pirates comme des compagnons de combat ou devraient-ils les condamner ? Devons-nous choisir d'être pour ou contre les pirates ? Nos communautés semblent ne pas encore avoir trouvé de consensus clair et argumenté sur ce sujet.<br />
<br />
Intuitivement, je pense que si vous prenez une position de principe [<a href="http://www.advogato.org/article/1012.html">http://www.advogato.org/article/1012.html</a>] en faveur de la liberté de l'information et que vous faîtes la distinction entre les principes et la stratégie, il est possible de trouver une réponse nuancée et plus consensuelle. A la lumière du principe que les utilisateurs devraient pouvoir échanger de l'information, nous pouvons conclure qu'il n'y a rien d'éthiquement négatif à pirater. Les licences ont le pouvoir de la loi mais elles sont protégées par d'injustes règlements sur la "propriété intellectuelle". Ceci-dit, les principes ne sont pas les seules raisons de faire des choses pour les activistes. De nombreuses manipulations politiques sont de mauvaises idées non parce qu'elles sont fausses mais parce qu'elles ne fonctionnent pas et qu'elles ont des effets négatifs. La stratégie a également de l'influence. Même s'il n'y a peut-être rien d'éthiquement mauvais à propos du piratage du point de vue du logiciel libre ou de la culture libre, il reste peut-être quand même une mauvaise idée. Il existe au moins trois raisons essentielles qui peuvent motiver le logiciel libre et la culture libre à ne pas encourager ou participer aux mouvement et à la politique pro-pirates.<br />
<br />
D'abord, <strong>un non-respect systématique du copyright sape tout respect pour l'ensemble des licences</strong>, lesquelles ont été d'un bénéfice essentiel pour le logiciel libre et un important facteur de succès de la culture libre. Les licences Copyleft telles que la GPL ou la CC-BY-SA ont du pouvoir uniquement parce que le copyright en a également. Comme Stallman l'a suggéré, les actions anti-copyright sont anti-copyleft. Mais ça n'est pas un argument contre les tentatives de limitation du copyright. En fait, je pense que nous devons limiter et réduire le copyright. Mais nous devons procéder avec précaution. Dans le climat actuel sur le copyright, je pense que le copyleft offre un net avantage. Pourquoi les autres devraient respecter nos licences si nous ne respectons pas les leurs ? Sur le long terme, nous devons peser le pour et le contre entre promouvoir la violation systématique des licences propriétaires et l'adhésion au logiciel libre et la la culture libre.<br />
<br />
Ensuite, <strong>le piratage est fondamentalement réactionnaire</strong>. Une partie de sa résonance en tant que symbole politique vient du fait que le piratage représente un moyen de défense pour les consommateurs de contenus contre plusieurs compagnies qui les ont attaqués -- avec des poursuites judiciaires, avec les systèmes de DRM et aussi leur propagande démoniaque -- pour partager de la manière dont la plupart des consommateurs pensent qu'il est naturel et socialement positif. Mais le piratage se focalise davantage sur la réaction plutôt que sur l'importance fondamentale du partage. En résultat, la majorité des pirates n'encouragent pas , voire ne sont pas même familiers avec, l'approche de principe de l'accès à l'information. Ainsi, de nombreux activistes pirates qui critiquent les DRM sur les DVDs utiliseront aussi bien NetFlix pour streamer des films sous DRM pour 5$ par mois que le téléchargement libre. Les meilleurs appels au ralliement ne se traduisent pas forcément dans les mouvements les plus robustes.<br />
<br />
Enfin, à travers cette focalisation sur la réaction, <strong>le discours sur le piratage évite de s'engager sur les questions difficiles à propos de ce qui remplacera le système actuel de copyright</strong>. Une position de principe suggère qu'il est de notre prérogative éthique de créer des modèles alternatifs. Le mouvement du logiciel libre a rencontré le succès car il a créé une telle prérogative et, avec le temps, a fourni des exemples fonctionnels d'alternatives. L'approche de principe du logiciel libre n'impose pas de fournir de nouveaux systèmes immédiatement fonctionnels mais il fait du développement d'une approche créatrice et durable une priorité. Attaquer le système sans même mentionner des modes alternatifs de production est non durable (unsustainable). Le logiciel libre et la culture libre appellent à une révolution. Le piratage appelle seulement à une révolte.<br />
<br />
Après ces trois arguments, le piratage peut être perçu comme stratégiquement imprudent, sans être pour autant sans aucune éthique. En prenant cette position de principe, nous pouvons construire et aller plus loin que le commentaire de RMS. Selon les termes du logiciel libre et de la culture libre, on peut dire que le piratage n'est pas éthiquement mauvais mais qu'il est un moyen déviant d'essayer de promouvoir le partage. Sans être hypocrites, nous pouvons dire: "Je ne pense pas que le piratage soit sans éthique. Mais je ne l'encourage pas."<br />
</cite><br />
<br />
Mon avis sur la question rejoint celui de l'auteur, c'est pourquoi j'ai souhaité vous faire profiter de son approche.<br />
<br />
Les partis pirates et le piratage ont sans doute une certaine utilité dans le sens où certains de leurs activistes mettent en lumière des problèmes de société et de conflits entre des groupes puissants et des citoyens désemparés à la fois par la technique et la machine juridique. Toutefois, sur le sujet précis du logiciel libre, très clairement, encourager le piratage revient à se couper l'herbe sous le pied.<br />
<br />
À un autre niveau, pour tous les libristes que nous sommes, habitués à utiliser, à développer et à distribuer des logiciels libres, le piratage des oeuvres culturelles n'est pas non plus à souhaiter. Mettons plus nos efforts dans la construction d'une culture libre qui, à l'inverse de son homologue traditionnelle et commerciale, a besoin de contenus et de forces vives... En ce sens, dessiner des images libres, écrire des chansons libres, réaliser des courts métrages libres est du même acabit que le fait de coder du logiciel libre.<div><a href="https://linuxfr.org/users/medspx/journaux/piratage-et-logiciel-libre.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/56632/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/medspx/journaux/piratage-et-logiciel-libre#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/56632/comments.atomtag:linuxfr.org,2005:Diary/294012010-02-20T19:07:11+01:002010-02-20T19:07:11+01:00Faire un diaporama commenté en HTML5
Hello,<br />
<br />
je viens de découvrir <a href="http://www.toolness.com/wp/?p=772">une nouvelle manière de faire des "screencasts" en HTML5</a>. Par screencasts, j'entends des présentations commentées. Jusqu'à présent, on pouvait les réaliser avec du Flash (par exemple avec wink) avec les problèmes que ça pose (pas libre, plugin indispensable) ou plus "universellement" avec une simple vidéo. On pouvait aussi déposer un simple fichier odp qui a l'inconvénient principal de nécessiter OpenOffice (qui est parfois lourd à lancer pour juste afficher 10 slides) ou un fichier PDF qui a l'inconvénient de de ne pas permettre des commentaires sonores.<br />
<br />
Mais grâce à HTML5, on peut faire autrement et plus léger avec du support de sous-titres et en multi-langues. En effet, un screencast n'est autre qu'une sorte de diaporama avec du son et des sous-titres. Avec HTML5, et la balise audio, il est possible d'ajouter des pistes sonores. Les slides peuvent être de simples images ou encore plus simple, du contenu HTML. Mieux, comme le reste de la page, on peut utiliser CSS pour styler la présentation.<br />
<br />
Un peu de javascript pour gérer le couplage son et affichage ainsi que les sous-titres et on obtient <a href="http://labs.toolness.com/ff-herdict-preso/">quelquechose qui ressemble à ça</a>.<br />
<br />
Si vous observez le code source, vous verrez que c'est assez simple à coder:<br />
- les slides sont des éléments div qui s'affichent au bon moment avec javascript.<br />
- les sous-titres sont gérés également dans un élément div.<br />
- la piste audio est une simple balise audio.<br />
<br />
On pourrait se dire que la gestion du truc avec Javascript impose un grosse bibliothèque compliquée pour faire tourner le bousin... et bien que nenni !<br />
<a href="http://hg.toolness.com/ff-herdict-preso/file/blog-post/js/ff-herdict-preso.js#l37">Le code Javascript</a> tient dans une centaine de lignes.<br />
<br />
Je trouve que c'est assez intéressant. En effet, on pourrait imaginer des présentations de tout bord réalisées de cette manière pour tous les évènements et les conférences qui gravitent dans l'univers du libre (Fosdem, RMLL, DebConf, etc...).<br />
<br />
Les avantages sont nombreux:<br />
- piste sonore: l'exposé est commenté, on pourrait prendre la piste audio enregistrée lors de la conférence.<br />
- sous-titres: impeccable pour lire en silence ou pour récupérer une traduction texte du contenu audio<br />
- multi-langues: si des contributeurs désirent traduire la piste son ou les sous-titres, c'est possible de l'intégrer.<br />
- la présentation est sans doute plus légère que son équivalent en vidéo ou en Flash car le seul élément volumineux est le son.<br />
- un simple navigateur web suffit (enfin un qui supporte la balise audio): pas besoin d'ouvrir un programme externe. Mieux, on peut regarder le source pour voir comment c'est fait.<br />
- la demande en ressource CPU est globalement limitée au décodage du son. A priori, c'est moins gourmand qu'une vidéo complète.<br />
- On peut avoir du contenu HD (super affichage du texte sur l'écran avec des polices antialiasées): pas besoin de consacrer du CPU à afficher un simple texte même avec des grosses images au lieu de faire une vidéo qui affiche un contenu statique.<br />
- Ca marche avec des codecs libres.<br />
<br />
L'inconvénient de cette technique c'est que ça reste artisanal pour le moment: il n'y a pas d'outils dédiés et tout se fait à la main. Par exemple, la gestion du son demande un sacré temps de préparation: l'enregistrement doit être de bonne qualité et surtout, il faut se tapper la synchronisation des diapos et des sous-titres à la main ce qui est fastidieux.<br />
<br />
Cet inconvénient peut sans doute être levé facilement avec des outils adaptés. On pourrait imaginer un export "latex2presentation_HTML" ou carrément OpenOffice vers présentation_HTML. Ou encore quelquechose pour gérer la partie son.<br />
<br />
A l'avenir, je trouve que cette technique mérite d'être expérimentée et améliorée.<div><a href="https://linuxfr.org/users/medspx/journaux/faire-un-diaporama-comment%C3%A9-en-html5.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/55696/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/medspx/journaux/faire-un-diaporama-comment%C3%A9-en-html5#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/55696/comments.atomtag:linuxfr.org,2005:News/264142010-01-30T07:54:23+01:002010-01-30T07:54:23+01:00Pendant ce temps, de l'autre côté de l'atlantique...<div>Alors que de nombreux pays adoptent ou projettent d'adopter des lois organisant la répression sur Internet, le gouvernement américain prend clairement parti pour l'Internet libre.
<br />
<br />
Le 21 janvier 2010, la secrétaire d'Etat Hilary Clinton a prononcé un discours intitulé "Remarks on Internet Freedom" (Remarques sur la liberté sur Internet).
<br />
<br />
Sans basculer du côté d'un idéologisme sectaire sur la question de la liberté d'expression, le discours fait bien la part des choses sur les aspects positifs et négatifs des nouvelles technologies présentes sur Internet.
<br />
<br />
Il revendique des idées telles que la liberté de se connecter (<i>the freedom to connect</i>) à un web qui ne serait pas fragmenté par un accès partiel à l'information (sous forme de censure ou de filtrage de mots). Il milite également pour le respect de la vie privée des citoyens.
<br />
<br />
Enfin, on pourra noter un appel du pied du gouvernement américain sur l'encouragement aux développement d'outils permettant de contourner la censure.
<br />
<br />
Au delà des discours actuels sur le sujet, ces mots donnent un tout autre sens à l'utilisation d'Internet dans le monde.</div><ul><li>lien nᵒ 1 : <a title="http://www.state.gov/secretary/rm/2010/01/135519.htm" hreflang="en" href="https://linuxfr.org/redirect/65346">Texte officiel du discours et questions</a></li><li>lien nᵒ 2 : <a title="https://blog.torproject.org/blog/net-freedom-secretary-clinton-and-tor" hreflang="en" href="https://linuxfr.org/redirect/65347">La question de l'anonymat en ligne</a></li></ul><div><b>Quelques détails importants du discours:</b>
<br />
<br />
Pendant que la France se prend les pieds dans le tapis avec la loi HADOPI et l'autorité du même nom, alors que la <a href="https://blog.torproject.org/blog/tor-and-censorship-lessons-learned">Chine tente de bloquer Tor</a>, que l'Australie projette de <a href="http://www.internetblackout.com.au/">filtrer Internet</a> (idée qui a également été évoquée par le président de la république française), que l'ACTA fait débat, les questions relatives aux libertés numériques vont bon train.
<br />
<br />
On peut constater que globalement, les actions et les orientations gouvernementales choisissent plutôt de porter des projets de restriction.
<br />
<br />
Mais de l'autre côté de l'Atlantique , la tendance est inversée, au moins dans le discours des membres les plus importants du gouvernement.
<br />
<br />
Ainsi, lors du 21 janvier 2010, la secrétaire d'Etat Hilary Clinton rappelle dans un discours sur l'"Internet Freedom" son attachement à la lutte contre toute forme de censure sur Internet. Le <a href="http://www.state.gov/secretary/rm/2010/01/135519.htm">texte du discours est public</a>. Il est assez long mais complet et très positif et je vous invite à le lire.
<br />
<br />
Ce qui est intéressant dans ses propos c'est qu'ils vont plus loin que la simple défense de la libre expression. En effet, Hilary Clinton rappelle que tout comme l'acier peut servir à construire des hôpitaux ou des bombes, Internet peut également être utilisé comme outil de lutte contre les libertés et les droits politiques et énumère assez justement quelques exemples qui le prouvent :
<br />
- Al-Quaida fait sa promotion sur Internet...
<br />
- ...pendant qu'en Arabie Saoudite, un bloggeur est en prison pour avoir rédigé un article sur le catholicisme...
<br />
- et que sont mis en place des outils de filtrage en Chine, en Iran et en Ouzbékistan.
<br />
<br />
Elle indique que, de fait, les nouvelles technologies ne prennent pas parti. Elles ne sont ni pour ou contre la liberté d'expression ou la défense des droits des citoyens. Cette prise de parti revient aux peuples. Les USA et leurs représentants ont donc clairement pris et revendiquent le parti de la liberté sur Internet !
<br />
<br />
Elle ajoute que si certaines pratiques sur Internet peuvent servir le terrorisme, elles ne doivent pas devenir une excuse des gouvernements pour violer les droits et le respect de la vie privée de ceux qui utilisent Internet dans des buts politiques louables.
<br />
<br />
Elle rappelle que le gouvernement américain désire protéger le libre accès à Internet et finance des développements d'outils qui permettent aux citoyens d'échapper à la censure politique (<i>NdR : je pense que le projet Tor en fait partie surtout quand on voit l'origine des fonds</i>). Ce même gouvernement désire s'appuyer sur les ONG et les conseils d'experts indépendants pour avancer sur ces sujets de manière complètement ouverte.
<br />
<br />
Enfin, je vous laisse lire la réponse à la deuxième question à la fin du discours (mais également <a href="https://blog.torproject.org/blog/net-freedom-secretary-clinton-and-tor">reprise et commentée par le projet Tor</a>) à propos de l'anonymat en ligne. Certes, l'anonymat en ligne permet de faire des choses répréhensibles mais c'est également un bon moyen de contourner la censure. Sur ce point la secrétaire d'Etat indique que le sujet est complexe, que le gouvernement doit privilégier l'ouverture et qu'il a besoin d'entendre la voie des experts sur le sujet...
<br />
<br />
Ce n'est qu'un discours de femme politique mais en cette époque difficile, riche en projets de loi sur les restrictions de la liberté numérique, il est plaisant d'entendre un membre de gouvernement faire la promotion du rôle positif et libérateur de l'Internet ouvert !</div><div><a href="https://linuxfr.org/news/pendant-ce-temps-de-lautre-cote-de-latlantique.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/25450/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/pendant-ce-temps-de-lautre-cote-de-latlantique#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/25450/comments.atomtag:linuxfr.org,2005:News/264132010-01-30T07:53:34+01:002010-01-30T07:53:34+01:00Un autre blackout de l'Internet...<div>En ces temps de débat autour de la quadrature du Net dont l'actualité est marquée par une recherche de financements et par un appel aux dons, un autre blackout d'Internet a lieu de l'autre côté de la planète, chez nos amis australiens...
<br />
<br />
Un site web explique tout ça très bien et il est nommé fort justement "The Great Australian Internet Blackout". La campagne de blackout a été lancée cette semaine (du 25 au 29 janvier)
<br />
<br />
Le problème est la mise en place de ce qu'on peut qualifier de <i>"The Great Australian Firewall"</i> (nommé comme son homologue chinois): le gouvernement pousse un projet de loi qui impose aux fournisseurs d'accès d'interdire l'accès à certains sites.
<br />
<br />
La démarche du blackout reprend les méthodes courantes de plaidoyer politique (advocacy) que nous connaissons un peu en France: bandeaux en noir, appels dans les blogs et les réseaux sociaux, etc.
<br />
<br />
Cette démarche a le soutien et bénéficie de la participation de l'Electronic Frontiers Australia.</div><ul><li>lien nᵒ 1 : <a title="http://www.internetblackout.com.au/" hreflang="en" href="https://linuxfr.org/redirect/65342">The Great Australian Internet Blackout</a></li><li>lien nᵒ 2 : <a title="http://www.efa.org.au/" hreflang="en" href="https://linuxfr.org/redirect/65343">Site de l'Electronic Frontiers Australia</a></li><li>lien nᵒ 3 : <a title="http://www.dbcde.gov.au/funding_and_programs/cybersafety_plan/internet_service_provider_isp_filtering" hreflang="en" href="https://linuxfr.org/redirect/65344">Site du gouvernement australien sur le projet de filtrage</a></li><li>lien nᵒ 4 : <a title="http://www.dbcde.gov.au/funding_and_programs/cybersafety_plan/internet_service_provider_isp_filtering/isp_filtering_live_pilot/isp_filtering_-_frequently_asked_questions" hreflang="en" href="https://linuxfr.org/redirect/65345">FAQ officielle du projet de filtrage</a></li></ul><div><b>Quelques faits: état du projet de filtrage australien:</b>
<br />
<br />
Ce projet est très mûr:
<br />
* ils ont déjà effectué des <a href="http://www.dbcde.gov.au/funding_and_programs/cybersafety_plan/internet_service_provider_isp_filtering/isp_filtering_live_pilot">tests officiels de performances</a>.
<br />
* ses principales mesures sont <a href="http://www.dbcde.gov.au/funding_and_programs/cybersafety_plan/internet_service_provider_isp_filtering/isp_filtering_live_pilot/isp_filtering_-_frequently_asked_questions">publiques</a>.
<br />
* la loi arrive au Sénat dans peu de temps, le projet qui était prévu pour 2009 a été déplacé pour le début 2010.
<br />
<br />
<b>Qu'est-ce-qui ne va pas avec ce projet ?</b>
<br />
<br />
Si vous parcourez la <a href="http://www.dbcde.gov.au/funding_and_programs/cybersafety_plan/internet_service_provider_isp_filtering/isp_filtering_live_pilot/isp_filtering_-_frequently_asked_questions">FAQ</a> (le lien juste au dessus), vous verrez que l'objectif est de protéger les enfants des dangers d'internet. C'est un argument couramment employé pour positiver le problème. Là où ça coince, c'est sur le fonctionnement de la chaîne d'interdiction: le projet de loi va imposer aux FAI de ne pas donner accès aux sites web extérieurs (overseas) qui seront sur la liste "Refused Classification". Cette liste est élaborée par... le gouvernement australien ! En effet, ce sont le <b>"CSA"</b> local (<i>Australian Communications and Media Authority</i>) ainsi que l'équivalent de la <b>Commission de classification des œuvres cinématographiques</b> (<i>Office of Film and Literature Classification</i>) qui sont tous les deux gérés par le gouvernement qui seront chargés de décider quel site sera "RC".
<br />
<br />
Pour l'instant, ce qui est interdit de fait sont les sites qui contiennent des éléments suivants:
<br />
* pédophilie, bestialité, violence sexuelle,
<br />
* instructions sur comment commettre des crimes, incitation à la violence
<br />
* incitation à l'usage de drogues
<br />
* contenu qui fait l'apologie du terrorisme (beaucoup moins orienté protection de l'enfance déjà).
<br />
<br />
Le projet de loi va plus loin puisqu'il est prévu que toute plainte auprès de l'ACMA implique par défaut un placement préventif en liste RC. Le gouvernement se réserve le droit de modifier la procédure de gestion des plaintes dans un souci de "transparence", ce qui ne les empêche pas de réaliser des tests pour filtrer autre chose que le contenu de la liste "RC": <i>in addition to the ACMA blacklist, filtering a wider range and volume of material</i> (voir la page sur les tests !).
<br />
<br />
Enfin, il ne faut pas oublier, que pour cette fois, c'est sur les FAI que retombe la pression: tout FAI qui n'interdira pas l'accès aux sites indiqués sur la liste dans les 12 mois sera condamné. On peut se demander toutefois si ces derniers (FAI) ne répercuterons pas cette loi sur les utilisateurs ?
<br />
<br />
<b>Et le blackout alors ?</b>
<br />
<br />
Sur la forme, le blackout reprend les méthodes connues:
<br />
* thèmes et bandeaux en noir.
<br />
* articles dans les blogs comme sur ce blog <a href="http://www.enc.com.au/sees-blog/2010/01/the-great-australian-internet-firewall.html">d'un développeur Debian</a>.
<br />
* messages et changement de thèmes sur les sites de microblogging.
<br />
* la campagne bénéficie du soutien de l'EFA (l'EFF pour l'Australie, un peu leur Quadrature du Net à eux).
<br />
* une pétition en ligne et à envoyer par courrier au sénat.
<br />
* et un appel à contacter par courrier au autre méthode son représentant local (avec des modèles de courrier).
<br />
<br />
Sur le fond, les principaux arguments de cette campagne sont les suivants:
<br />
* le coeur de cible (protection de l'enfant) ne sera pas atteint: ce filtre ne sera pas une solution efficace pour empêcher les enfants de tomber sur des sites classés R(Refused) ou X. Il ne permettra pas d'arrêter les échanges de données illégales par d'autres voies (P2P, chat, etc.).
<br />
* les coûts vont nécessairement se répercuter sur les utilisateurs. Les tests ont déjà coûté des centaines de milliers de dollars australiens.
<br />
* le filtrage entraîne un grand précédent: celui de rejoindre le club des pays qui filtrent Internet (Iran, Chine, Birmanie, Arabie Saoudite). Pour l'instant, la liste s'arrête aux contenus "RC" mais il n'est pas exclu que le gouvernement ajoute d'autres contenus (il l'indique lui même) !
<br />
<br />
<a href="http://www.efa.org.au/2010/01/20/the-top-10-filtering-questions/">D'autres arguments sont disponibles</a>:
<br />
* Vu le niveau de restriction de la loi (filtrage de l'Internet mondial quand même), il est évident que les enfants australiens sont soumis tous les jours et en continu à des contenus "RC" ;-)
<br />
* 2/3 des foyers australiens n'ont pas d'enfants à la maison. Doivent-ils subir le filtre quand même ?
<br />
* Vu le faible niveau de filtrage que les parents ont mis en place de leur propre chef, on peut se demander si les citoyens australiens désirent vraiment un filtre ?
<br />
* etc.</div><div><a href="https://linuxfr.org/news/un-autre-blackout-de-linternet.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/25449/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/un-autre-blackout-de-linternet#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/25449/comments.atomtag:linuxfr.org,2005:News/263742010-01-21T13:54:29+01:002010-01-21T13:54:29+01:00Sortie de QGis 1.4.0 (aka Enceladus)<div>À peine 1 an après la sortie de la version 1.0, Quantum Gis ou QGis, un logiciel libre (sous licence GPL) de Système d'Information Géographique (<a href="http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27information_g%C3%A9ographique">SIG</a>), sort en version 1.4.0.
<br />
<br />
Cette version corrige près de 200 bugs et ajoute 30 fonctionnalités supplémentaires. Elle est qualifiée de version de développement. Toutefois, "en développement" est différent de "instable" ! En effet, QGis gère trois niveaux de versions :<ul><li>La version LTS (Long Term Support) : version 1.0.2 ;
<br />
</li><li>La version de développement : version 1.4.0 qui corrige les bugs. C'est la version la plus à jour de l'application pour la production ;
<br />
</li><li>L'instantané SVN qui lui est la version "unstable".</li></ul>Pour votre rapide information, un <a href="http://fr.wikipedia.org/wiki/SIG" title="Définition Wikipédia">SIG</a> est un système d'information capable d'organiser et de présenter des données alphanumériques spatialement référencées, ainsi que de produire des plans et des cartes. Pour faire simple, les logiciels de SIG permettent de faire de la géométrie très facilement (en tout cas, plus qu'avec du papier millimétré). Traditionnellement, les données sont organisées en couche d'objets géométriques. Ces couches se gèrent comme des calques dans les logiciels de dessin.
<br />
<br />
Même s'il existe un SIG libre depuis 1982 (<a href="http://fr.wikipedia.org/wiki/GRASS_GIS">Grass GIS</a>), l'information géographique a depuis longtemps été le fait de sociétés propriétaires. La conséquence immédiate se traduit par une multiplicité de formats de fichiers de données tous plus in-interopérables les uns que les autres. Par bonheur, <a href="http://fr.wikipedia.org/wiki/Quantum_GIS">QGis</a> intègre GDAL/OGR, une bibliothèque de gestion d'une (très) grande majorité de ces formats propriétaires.
<br />
<br />
En terme de positionnement, QGis est un SIG de type bureautique (orienté utilisateur final et présentation) avec une interface complètement graphique.
<br />
<br />
Pour terminer, QGis est développé en C++ et utilise la bibliothèque/framework Qt. Son architecture lui permet d'utiliser des extensions codées en Python. Sachez enfin que, pour vous faciliter la vie, l'équipe de développement prend soin d'empaqueter son logiciel pour un grand nombre de systèmes d'exploitations (qu'ils soient libres ou propriétaires) : Slackware, OpenSuse, Ubuntu (Karmic, Jaunty et Intrepid), Debian Lenny (non officiel), Mac OS X, MS Windows.</div><ul><li>lien nᵒ 1 : <a title="http://www.qgis.org/fr.html" hreflang="fr" href="https://linuxfr.org/redirect/65217">Quantum GIS</a></li><li>lien nᵒ 2 : <a title="http://blog.qgis.org/node/142" hreflang="en" href="https://linuxfr.org/redirect/65218">Journal des modifications officiel</a></li><li>lien nᵒ 3 : <a title="http://qgis.org/en/download/current-software.html" hreflang="en" href="https://linuxfr.org/redirect/65219">Page de téléchargement</a></li><li>lien nᵒ 4 : <a title="https://linuxfr.org//~JRM/28728.html" hreflang="fr" href="https://linuxfr.org/redirect/65220">Journal linuxfr sur la sortie 1.2.0</a></li></ul><div><b>Des sorties multiples dans l'année 2009 :</b>
<br />
<br />
L'année 2009 aura été riche en versions pour QGis : pas moins de quatre versions en moins d'un an !<ul><li>Version 1.0 en décembre 2008 ;
<br />
</li><li>Version 1.1 (Pan) en mai 2009 ;
<br />
</li><li>Version 1.2 (Daphnis) début septembre 2009 ;
<br />
</li><li>Suivie de près par la Version 1.3 (Mimas) fin septembre 2009 ;
<br />
</li><li>et enfin, la version 1.4 sortie le 08/01/2010.</li></ul>
<br />
<b>Les nouvelles fonctionnalités de cette version</b>
<br />
<br />
<i>Nouvelle gestion de la <a href="http://fr.wikipedia.org/wiki/S%C3%A9miologie#S.C3.A9miologie_en_g.C3.A9ographie">sémiologie</a> graphique :</i>
<br />
<br />
C'est le point fort (et visible) de cette version. Les développeurs ont commencé à travailler sur l'amélioration de la gestion de la sémiologie dans QGis. Pour faire simple, la sémiologie concerne toute la partie graphique qui permet de gérer le style d'un objet géographique ou un symbole.
<br />
Par exemple vous pouvez choisir de représenter les communes de plus de 10 000 habitants avec une trame distincte des autres. Jusqu'à présent, QGis gérait de manière simple et efficace cet aspect : il disposait d'un jeu de trames et de symboles pré-définis. Le nouveau moteur de sémiologie graphique vous permet de créer ces trames ou de les croiser entre-elles. Pour l'instant, les deux moteurs sont présents, car toutes les anciennes fonctionnalités qui lui sont liées n'ont pas encore été implémentées dans la nouvelle version.
<br />
<br />
<i>Amélioration de l'interface d'impression</i>
<br />
<br />
Construire des cartes, c'est bien, encore faut-il pouvoir les imprimer correctement. Imprimer une carte est très différent d'imprimer une image : il n'y a pas que le dessin géographique à gérer. On doit ajouter un cartouche, une légende correctement positionnée et remplie, un titre, une grille d'échelle, une mention de la licence du document ou des sources, etc. Faire tout ça à la main est fastidieux et l'avantage de QGis est de disposer d'une interface dédiée à ce travail, un peu différent de celui de composition de cartes.
<br />
La version 1.4.0 apporte un grand nombre d'améliorations à ce module. Maintenant, vous pouvez choisir la couleur de vos polices (utile pour les étiquettes) dans quasiment tous les objets qui gèrent le texte. Vous pouvez également ajouter des formes géométriques simples : triangle, ellipse et rectangles (vous pouviez juste créer des rectangles auparavant) et flèches. Cette fonctionnalité est particulièrement utile pour mettre en évidence certains éléments de la carte. Enfin, le cadre qui représente votre carte gère la rotation, ce qui améliore le visuel des cartes où le Nord n'est pas forcément en haut.
<br />
<br />
<i>Amélioration de l'interface utilisateur</i>
<br />
<br />
L'objectif de cette amélioration était la prise en compte des affichages de faible résolution (pour les ultraportables). Ainsi, le nombre de boutons de la barre d'outils est diminué, grâce au regroupement de fonctionnalités. C'est le cas pour le bouton d'édition de nœuds qui permet à lui seul d'ajouter, de déplacer, de supprimer des nœuds d'un objet géographique (avant, il fallait trois boutons). La gestion des raccourcis clavier est également de la partie : on peut maintenant éditer les raccourcis clavier et les enregistrer dans un fichier de configuration avant de les recharger plus tard. L'interface de gestion des options du logiciel a été revue de manière à être plus ergonomique et plus simple à aborder. Enfin, l'interface des propriétés d'une couche (celle qui sert tout le temps) a également bénéficié de ce rajeunissement (passage d'une gestion à onglets à une gestion par icônes).
<br />
<br />
<i>Cache du rendu graphique</i>
<br />
<br />
Afin de mieux gérer les performances, le rendu des couches est maintenant mis en cache. L'intérêt de ce dispositif est d'éviter de rafraîchir l'affichage (et donc de recharger l'intégralité des données concernées) lors de manipulations simples. Ainsi, lorsque vous changez l'ordre d'affichage des couches, que vous accédez à des couches distantes (<a href="http://fr.wikipedia.org/wiki/Web_Feature_Service">WFS</a>/<a href="http://fr.wikipedia.org/wiki/Web_Map_Service">WMS</a>), etc. QGis ne redessine pas tout. C'est particulièrement utile lorsqu'on manipule des données lourdes (typiquement le cadastre d'un département ou qu'on travaille sur une large étendue) ou situées sur le Web.
<br />
<br />
<i>Meilleure gestion des chemins des symboles SVG</i>
<br />
<br />
QGis utilise des symboles <a href="http://fr.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG</a> pour représenter les informations sur les cartes. L'interface graphique vous permet maintenant de configurer les chemins vers un répertoire contenant vos propres symboles.
<br />
<br />
<b>Que peut-on faire avec QGis ?</b>
<br />
<br />
Des cartes... ça sert à ça un SIG à la base !
<br />
Mais il y a carte et carte. Plus sérieusement, les logiciels de SIG tels que QGis servent en premier lieu à générer des cartes bien présentées. Cette fonction est triviale, mais souvent indispensable pour donner corps à une information. À ce titre, QGis imprime sur du papier mais sait aussi générer des images bitmaps, du PDF ou du SVG en natif.
<br />
<br />
On utilise également les SIG pour parfaire sa connaissance du territoire grâce à l'analyse spatiale. Cela permet de répondre à des questions qui abordent la notion géographique. Quelques exemples :<ul><li>Où sont situées les communes a forte population dans mon département ?
<br />
</li><li>Quelle est la longueur des cours d'eau avec une concentration en nitrate supérieure à 50 mg/l dans tel ou tel bassin versant ?
<br />
</li><li>Quel est le chemin le plus court entre l'immeuble X de Port-au-Prince et le centre de secours n°235 de la Croix-Rouge ? Voir <a href="http://linuxfr.org/2010/01/18/26358.html">la dépêche sur Haïti et OpenStreetMap</a> à ce sujet.</li></ul>
<br />
Pour répondre à ces questions, il faut d'abord des données qui peuvent être spatiales (ou géographiques ou géométriques, c'est la même signification) : représentation géométrique des communes, des bassins versants, des bâtiments de Port-au-Prince (Merci <a href="http://fr.wikipedia.org/wiki/OpenStreetMap">OpenStreetMap</a>) ou alphanumériques (champ population de la table Commune, par exemple). Mais, il faut surtout un logiciel de SIG pour répondre de manière précise. QGis s'occupe donc de ce travail, soit tout seul lors de traitements simples, soit en utilisant d'autres outils comme Grass (QGis s'interface très bien avec ce logiciel), soit avec <a href="http://fr.wikipedia.org/wiki/PostGIS</a>PostGIS</a>.
<br/>
<br/>
Enfin, QGis permet – comme tout logiciel de SIG – de créer ou de modifier de la donnée. Le fait de pouvoir le coupler avec des bases de données spatiales lui permet de le faire de manière concurrentielle, le SGBDR Spatial s'occupant de cet aspect. Sur ce point de la création de données, il faut également rappeler que QGis dispose depuis la version 1.2 d'un module pour lire et modifier des données directement su OpenStreetMap.
<br/>
<br/>
<b>Quel est le niveau technique de QGis ?</b>
<br/>
<br/>
Avec le temps, QGis arrive vraiment à la hauteur des très bons SIG commerciaux. Son orientation est clairement tournée vers l'utilisateur final. L'outil est donc assez simple à prendre en main. En revanche, il ne permet pas d'effectuer des traitements complexes et automatiques. Son segment d'utilisation est le même que celui des logiciels SIG dits bureautiques. Par exemple, MapInfo est un SIG bureautique propriétaire alors que Grass est un SIG scientifique. L'un permet de générer de belles cartes assez rapidement, l'autre permet de réaliser des calculs complexes sur un lot de données volumineux, tout en ayant une interface adaptée à l'automatisation (scripts).
<br/>
<br/>
Un autre atout de QGis, qui tient sans doute à son aspect logiciel libre, est l'intégration de la bibliothèque GDAL (et de OGR) qui lui permet de gérer un maximum de formats. Ce n'est pas souvent le cas avec un logiciel propriétaire qui met en avant son propre format. Pour information, voici les formats raster (bitmap) gérés par GDAL : <a href=" />est moins sûr... ce qui serait réellement dommage.</div><div><a href="https://linuxfr.org/news/sortie-de-qgis-140-aka-enceladus.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/25416/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qgis-140-aka-enceladus#comments">ouvrir dans le navigateur</a>
</p>
Médéric RIBREUXhttps://linuxfr.org/nodes/25416/comments.atom