Aller au contenu | Aller au menu | Aller à la recherche

jeudi 26 novembre 2020

Lizmap Web Client 3.4 RC

We are pleased to announce the release of Lizmap Web Client 3.4 RC (release candidate). You will find the new features list here:

This new Lizmap Web Client release comes with Lizmap plugin in 3.3 version:

There remains work on documentation and translation. Any help is welcome :)

Lizmap Web Client 3.4 RC

Nous sommes heureux d’annoncer la sortie de Lizmap Web Client 3.4 RC (release candidate). Vous trouverez la liste des nouvelles fonctionnalités ici :

Cette nouvelle version de Lizmap Web Client s'accompagne de celle du plugin Lizmap en version 3.3 :

Il reste du travail concernant la documentation et la traduction. Toute aide est la bienvenue :)

mardi 24 novembre 2020

Evaluate QGIS Expression server side with Lizmap plugin

Since the beginning of Lizmap-Web-Client all the server part was based on PHP code. With Lizmap Web Client 3.4, which will be released very soon, part of the functionality has been developed within the Lizmap plugin to add features to QGIS Server.

QGIS Server is an open source implementation of the WMS 1.3.0, 1.1.1 and 1.0.0, WFS 1.1.0 and 1.0.0 and WCS 1.0.0 standards defined by the Open Geospatial Consortium (OGC). QGIS Server uses QGIS as a backend for GIS layer logic and map rendering. As QGIS desktop and QGIS Server use the same visualization libraries, the maps that are published on the web look the same as in desktop GIS.

To learn more about QGIS Server

Just like QGIS Desktop, QGIS Server is extensible using Python plugins. It is for example possible to create and add new services to QGIS Server. Documentation

The second QGIS Server feature we have implemented in the Lizmap plugin is a QGIS expression evaluation service.

  • SERVICE=EXPRESSION
    • REQUEST=Evaluate
      • EXPRESSION: a QGIS expression
      • EXPRESSIONS: List of QGIS expressions
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=replaceExpressionText
      • STRING: A string with expression between [% and %]
      • STRINGS: A list of strings with expression between [% and %]
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=GetFeatureWithFormScope
      • LAYER: a WMS Layer Name to be filtered
      • FILTER: a QGIS expression to filter the layer
      • FORM_FEATURE: a GeoJSON Feature
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry
    • REQUEST=VirtualFields
      • LAYER: a WMS Layer Name to get virtual fields
      • VIRTUALS: a list of key QGIS expression
      • FILTER: Option a QGIS expression to filter layer
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry

These new queries are used in Lizmap Web Client 3.4 to exploit expressions from QGIS forms. These expressions can be used for :

  • Set default values
  • Set constraints
  • Do drill down
  • Manage field group visibility

Example of using QGIS expression as a form constraint: lizmap-3_4-exp-constraint.png, nov. 2020

Example of use of QGIS expression to manage the visibility of groups of fields Use QGIS Expression to control group visibility

In the case of drill down in forms, it is possible to use geometry to filter the list, for example to select a municipality, a parcel or the nearest street. It is of course possible to use all other values during form entry.

Finally we also added a lizmap service with a GetServerSettings query to retrieve information about QGIS Server and available services.

Evaluer les Expresions QGIS côté serveur avec le Plugin Lizmap

Depuis le début de Lizmap-Web-Client toute la partie serveur reposait sur du code PHP. Avec Lizmap Web Client 3.4, qui sera publié très prochainement, une partie des fonctionnalités ont été développées au sein du plugin Lizmap pour ajouter des fonctionnalités à QGIS Server.

QGIS Server est une implémentation open source des normes WMS 1.3.0, 1.1.1 et 1.0.0, WFS 1.1.0 et 1.0.0 et WCS 1.0.0 défini par l'Open Geospatial Consortium (OGC). QGIS Server utilise QGIS comme backend pour la logique des couches SIG et le rendu cartographique. Étant donné que QGIS Bureautique et QGIS Server utilisent les mêmes bibliothèques de visualisation, les cartes publiées sur le web ont le même aspect que sous le SIG Bureautique.

Pour en savoir plus sur QGIS Server

Tout comme QGIS Bureautique, QGIS Server est extensible à l'aide de plugins Python. Il est par exemple possible de créer, d'ajouter de nouveaux services à QGIS Server. Documentation

La seconde fonctionnalité QGIS Server que nous avons implémentée dans le plugin Lizmap est un service d'évaluation des expressions QGIS.

  • SERVICE=EXPRESSION
    • REQUEST=Evaluate
      • EXPRESSION: a QGIS expression
      • EXPRESSIONS: List of QGIS expressions
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=replaceExpressionText
      • STRING: A string with expression between [% and %]
      • STRINGS: A list of strings with expression between [% and %]
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=GetFeatureWithFormScope
      • LAYER: a WMS Layer Name to be filtered
      • FILTER: a QGIS expression to filter the layer
      • FORM_FEATURE: a GeoJSON Feature
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry
    • REQUEST=VirtualFields
      • LAYER: a WMS Layer Name to get virtual fields
      • VIRTUALS: a list of key QGIS expression
      • FILTER: Option a QGIS expression to filter layer
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry

Ces nouvelles requêtes servent dans Lizmap Web Client 3.4 à exploiter les expressions des formulaires QGIS. Ces expressions peuvent servir à :

  • Définir des valeurs par défaut
  • Définir des contraintes
  • Faire des listes en cascade
  • Gérer la visibilité de groupes de champs

Exemple d'utilisation d'expression QGIS comme contrainte de formulaire: lizmap-3_4-exp-constraint.png, nov. 2020

Exemple d'utilisation d'expression QGIS afin de gérer la visibilité des groupes de champs Use QGIS Expression to control group visibility

Dans le cas des listes en cascades dans les formulaires, il est possible d'utiliser la géométrie pour filtrer la liste, par exemple pour sélectionner une commune, une parcelle ou la rue la plus proche. Il est bien sûr possible d'utiliser toutes les autres valeurs en cours de saisie du formulaire.

Enfin nous avons aussi ajouter un service lizmap avec une requête GetServerSettings pour récupérer des informations sur QGIS Server et les services disponibles.

lundi 16 novembre 2020

The Lizmap plugin as an access control plugin for QGIS Server

Since the beginning of Lizmap-Web-Client all the server part was based on PHP code. With Lizmap Web Client 3.4, which will be released very soon, part of the functionality has been developed within the Lizmap plugin to add features to QGIS Server.

QGIS Server is an open source implementation of the WMS 1.3.0, 1.1.1 and 1.0.0, WFS 1.1.0 and 1.0.0 and WCS 1.0.0 standards defined by the Open Geospatial Consortium (OGC). QGIS Server uses QGIS as a backend for GIS layer logic and map rendering. As QGIS desktop and QGIS Server use the same visualization libraries, the maps that are published on the web look the same as in desktop GIS.

To learn more about QGIS Server

Just like QGIS Desktop, QGIS Server is extensible using Python plugins. For example, it is possible to add a data access control system to QGIS Server Documentation.

The first QGIS Server feature we implemented in the Lizmap plugin is an access control system.

We have implemented 3 access controls:

  • access to the project
  • filter by user
  • access to project layers

The first 2 controls were already present. In the Lizmap configuration, it is possible to restrict access to a project for a list of user groups. It is also possible to define filtering rules according to the user logged in or not.

The implementation in QGIS Server of the filter by user, thanks to the Lizmap plugin, allows to filter layers even if they are hidden in a layer group. In Lizmap Web Client version 3.3 and previous versions, filtering layers by user only works if the layer is displayed alone, because Lizmap Web Client adds filters to the requests sent to QGIS server. In Lizmap, it is possible to transform a group of QGIS layers into a single layer for the web client. This results in requests where the layer to be filtered does not appear. With the Lizmap plugin for Lizmap Web Client 3.4 all layers will be filtered correctly.

By making the Lizmap plugin, an access control plugin for QGIS Server, we were able to add the possibility to restrict access to the layers of a project for a list of user groups.

The ability to restrict access to the layers of a project for a list of user groups makes it possible to distribute a QGIS project, a Lizmap webmap, with a content that can vary depending on the user.

Le plugin Lizmap comme plugin de contrôle d'accès pour QGIS Server

Depuis le début de Lizmap-Web-Client toute la partie serveur reposait sur du code PHP. Avec Lizmap Web Client 3.4, qui sera publié très prochainement, une partie des fonctionnalités ont été développées au sein du plugin Lizmap pour ajouter des fonctionnalités à QGIS Server.

QGIS Server est une implémentation open source des normes WMS 1.3.0, 1.1.1 et 1.0.0, WFS 1.1.0 et 1.0.0 et WCS 1.0.0 défini par l'Open Geospatial Consortium (OGC). QGIS Server utilise QGIS comme backend pour la logique des couches SIG et le rendu cartographique. Étant donné que QGIS Bureautique et QGIS Server utilisent les mêmes bibliothèques de visualisation, les cartes publiées sur le web ont le même aspect que sous le SIG Bureautique.

Pour en savoir plus sur QGIS Server

Tout comme QGIS Bureautique, QGIS Server est extensible à l'aide de plugins Python. Il est par exemple possible d'ajouter un système de contrôle d'accès aux données dans QGIS Server Documentation.

La première fonctionnalité QGIS Server que nous avons implémentée dans le plugin Lizmap est un système de contrôle d'accès.

Nous avons implémenté 3 contrôles d'accès :

  • l'accès au projet
  • le filtre par utilisateur
  • l'accès aux couches du projet

Les 2 premiers contrôles étaient déjà présent. Dans la configuration Lizmap, il est possible de restreindre l'accès à un projet pour une liste de groupes d'utilisateur. Il est aussi possible de définir des règles de filtrage en fonction de l'utilisateur connecté ou non.

Le portage dans QGIS Server du filtre par utilisateur, grâce au plugin Lizmap, permet de filtrer des couches même si elles sont cachées dans un groupe de couche. Dans la version 3.3 de Lizmap Web Client et les précédentes, le filtrage par utilisateur des couches ne fonctionne que si la couche est affichée seule, car Lizmap Web Client ajoute des filtres aux requêtes envoyées à QGIS server. Dans Lizmap, il est possible de transformer un groupe de couche QGIS en une seule couche pour le client web. Il en découle des requêtes où n'apparaissent pas la couche à filtrer. Avec le plugin Lizmap pour Lizmap Web Client 3.4 toutes les couches seront filtrées correctement.

En faisant du plugin Lizmap, un plugin de contrôle d'accès pour QGIS Server, nous avons pu ajouter la possibilité de restreindre l'accès des couches d'un projet pour une liste de groupes d'utilisateur.

La possibilité de restreindre l'accès des couches d'un projet pour une liste de groupes d'utilisateurs permet de diffuser un projet QGIS, une carte Lizmap, avec un contenu qui peut varier en fonction de l'utilisateur.

mercredi 4 novembre 2020

Plugin Cadastre pour QGIS : version 1.10.0, support QGIS 3.16 et autres

Nous sommes fière de vous annoncer la publication d'une nouvelle version du plugin Cadastre pour QGIS, la version 1.10.0

Cette version est déjà disponible sur le dépôt des plugins officiels de QGIS https://plugins.qgis.org/plugins/cadastre/ et donc dans votre QGIS.

Cette version intègre les améliorations suivantes :

  • Compatibilité avec QGIS 3.16 tout en restant compatible 3.4
  • Import - Optimisation de l'import Spatialite et de l'affichage du temps passé
  • Ajout de l'extraction de détails sur les propriétaires (indivisions)
  • Widget "Outils de Recherche" : Ajout du bouton Infos parcelle
  • Dialogue "infos parcelle" : Ajout des actions imprimer / copier /sauvegarder des infos des onglets
  • Révision barre d'outils (position actions) et réécriture code menu / barre d'outils
  • Fix - bug connexion (relevé parcellaire, première instanciation)

Plugin cadastre 1.10.0

Cette version ainsi que la précédente, la version 1.9.0, a été possible grâce au soutient de :

Et elle intègre les contributions de :

lundi 6 juillet 2020

QGIS Server 3.10.8 will be fully compatible with lizmap

On March 6, 2020, a Lizmap user identified a regression in QGIS Server 3.10 compared to version 3.4. This regression concerns the print function (GetPrint) for the layer groups configured as a single layer for Lizmap. A group configured as a layer could no longer be printed with QGIS Server 3.10.

To correct this bug, we decided to use Test Driven Developments. We started by creating a new test for QGIS Server highlighting the regression. We then corrected this regression and verified using the test that the patch we proposed corrected the test.

The problem is that once the patch and the new test were integrated into the master branch (development version) and the release-3_12 branch (version 3.12) of QGIS, the Travis-based continuous integration system used by QGIS indicated regularly have a problem with testing the QGIS Server print function. Regression correction was therefore not included in version 3.10 of QGIS which is the long term released version (LTR), and tests of the printing function of QGIS Sever were blacklisted for the continuous integration. In fact the test indicated a Segfault.

It took QGIS Server developers several months, PR 36198, PR 36581, PR 37179, to identify the reason why testing of the QGIS Server print function was failed in continuous integration. The reason was simple: the test was too long, it exceeded 55 seconds fc561d0
on travis in continuous integration.

It is true that the test file started to be too long. The solution to be able to reactivate the tests in continuous integration was to separate the tests of the printing function of QGIS Server in several tests.

Once the tests of the printing function reactivated for the master branch and the release-3_14 branch, the regression patch could be integrated into the release-3_10 branch (version 3.10 of QGIS) and this patch will be available when the release of version 3.10.8 on July 17, 2020.

QGIS Server 3.10.8 sera totalement compatible avec Lizmap

Le 6 mars 2020, un utilisateur de Lizmap identifiait une régression dans QGIS Server 3.10 par rapport à la version 3.4. Cette régression concerne la fonction d'impression (GetPrint) pour les groupes de couches configurés en tant que couche simple pour Lizmap. Un groupe configuré comme une couche ne pouvait plus être imprimé avec QGIS Server 3.10.

Pour corriger ce bug, nous avons décidé de fair du Développements Pilotés par les Tests Nous avons commencé par créer un nouveau test pour QGIS Server mettant en avant la régression. Nous avons ensuite corrigé cette régression et vérifié à l'aide du test que le correctif que nous proposions corrigeait bien le test.

Le problème est qu'une fois le correctif et le nouveau test intégrés à la branche master (version de développement) et à la branche release-3_12 (version 3.12) de QGIS, le système d'intégration continue basé sur Travis utilisé par QGIS indiquait régulièrement un problème avec les tests de la fonction d'impression de QGIS Server. La correction de la régression n'a donc pas été intégré à la version 3.10 de QGIS qui est la version maintenue à long terme (LTR), et les tests de la fonction d'impression de QGIS Sever ont été placé sur liste noire pour l'intégration continue. En fait le test indiquait un Segfault.

Il nous a fallu, aux développeurs QGIS Server PR 36198, PR 36581, PR 37179, plusieurs mois pour identifier la raison pour la quelle les tests de la fonction d'impression de QGIS Server ne passait plus dans l'intégration continue. La raison était simple : le test était trop long, il dépassait les 55 secondes fc561d0 sur travis en intégration continue.

Il est vrai que le fichier de test commençait à être trop long. La solution pour pouvoir réactiver les tests en intégration continue était de séparer les tests de la fonction d'impression de QGIS Server en plusieurs tests.

Une fois les tests de la fonction d'impression réactivés pour la branche master et la branche release-3_14, le correctif de la régression a pu être intégré à la branche release-3_10 (version 3.10 de QGIS) et ce correctif sera disponible lors de la publication de la version 3.10.8 le 17 juillet 2020.

lundi 28 octobre 2019

QGIS Server 3.10: OGC API Features et WMS Dimension

QGIS QGIS Server 3.10.0 est sorti vendredi 25 octobre 2019. Cette version sera la nouvelle version maintenue à long terme (LTR) à partir de février 2020.

Cette nouvelle version introduit de nouvelles fonctionnalités:

QGIS Server implémente désormais l’API OGC - Features - Partie 1: Core également appelé WFS3. Il s'agit d'une nouvelle implémentation qui fournit un service basé sur le HTML et le JSON pour vos développements de cartographie Web. Une interface de WebSIG simple est disponible et prête à l'emploi. Elle est facilement personnalisable via un système de modèles HTML.

Vous pouvez consulter la documentation pour plus d'informations.

Media - Server OAPIF (aka WFS3) support

Un serveur WMS peut prendre en charge plusieurs types de dimensions, telles que la date et l'heure, l'altitude ou d'autres types de dimensions. La dimension doit être définie pour chaque couche vectorielle et peut être utilisée par le client WMS pour filtrer les informations demandées. Le WMS Time est inclue dans les dimensions WMS.

Media - WMS dimension

Avant, l'utilisation des SVGs dans QGIS Server n’était pas pleinement fonctionnelle. Nous avons amélioré la manière dont QGIS Server récupère les ressources distantes telles que les SVGs dans le contexte QGIS Server. Il est maintenant possible d'utiliser des SVGs dans vos couches et de les publier en tant que WMS sans problèmes de rendu dans QGIS Server.

Media - Using SVG in QGIS Server

QGIS Server 3.10: OGC API Features and WMS Dimension

QGIS QGIS Server 3.10.0 has been released on friday 25th of october 2019. This version will the new Long Term Release (LTR) in february 2020.

This new version introduces new features:

QGIS Server now supports OGC API - Features - Part 1: Core also known as WFS3. This is a completely new implementation that provides an HTML and JSON based service for your web mapping developments, a simple WebGIS interface is available out of the box and it is easily customizable through an HTML template system.

More information is available in the documentation.

Media - Server OAPIF (aka WFS3) support

A WMS server can provide support for several type of dimensions such as time, elevation or other types of dimensions. The dimension has to be defined as the layer level and can be used by the WMS client to filter requested information. WMS Time is part of the WMS Dimension.

Media - WMS dimension

Before, using SVG in QGIS Server wasn't really functional. We improved how QGIS Server fetches remote resources such as SVG in the QGIS Server context. It's now possible to use SVG in your layers and publish them as WMS without rendering issues in QGIS Server.

Media - Using SVG in QGIS Server

lundi 30 septembre 2019

Lizmap Web Client and QGIS 3 : enfin compatible

Nous sommes heureux d’annoncer la sortie de lizmap Web Client 3.3 - 1 - et lizmap plugin 3.1 - 2 - 3

Ces versions proposent de nouvelles fonctionnalités:

  • Ajout de la recherche dans la base de données d'adresses français BAN
  • Créer une info-bulle HTML à partir du formulaire par glisser-déposer de QGIS
  • Amélioration de l'info-bulle HTML: utilisation de la valeur à afficher
  • Ajout de la possibilité de construire un formulaire de filtrage pour les couches PostgreSQL / PostGIS

Mais la fonctionnalité principale est la prise en charge de QGIS Server 3 4.

Pour cela, nous devions adapter le client Web lizmap aux changements apportés à QGIS Server et corriger QGIS Server 3.4 afin de proposer une expérience utilisateur identique :

  • Fix regression server print selection pdf
  • JPEG output for WMS GetPrint request has gone
  • In WMS GetFeatureInfo CRS param not mandatory when FILTER param
  • Add unit test for WFS GetFeature with BBOX param without EPSG
  • SLD : Support escapeChar attribute of PropertyIsLike
  • Null field value in GML has to be empty string
  • Use Project selection color in GetPrint
  • Unit-test: To avoid regression in Server printing to PDF output format
  • Keeps empty parts for not empty styles parameters

Nous avions également besoin de mettre à jour des plugins QGIS Server utiles pour Lizmap :

  • Atlas print 5
  • WFS output Extension 6

Si vous utilisez déjà Lizmap Web Client, vous pouvez :

  • mettre à jour Lizmap Web Client vers la version 3.3
  • mettre à jour QGIS Server vers la version 3.4
  • mettre à jour les plugins QGIS Server que vous utilisez
  • rendez-vous sur le backoffice de Lizmap Web Client pour mettre à jour la version de QGIS Server dans la configuration
  • mettez à jour votre plugin Lizmap vers la version 3.1 dans votre QGIS bureautique 3.4
  • et mettez à jour vos projets QGIS.

Si vous souhaitez tester lizmap, installez la dernière version avec QGIS Server LTR.

Dernière information, une liste de diffusion pour le projet Lizmap a été créée : https://lists.osgeo.org/mailman/listinfo/lizmap

Lizmap Web Client and QGIS 3 : finally compatible

We are pleased to announce the release of lizmap web client 3.3 - 1 - and lizmap plugin 3.1 - 2 - 3

These versions propose new features:

  • Add French Address database BAN search
  • Create HTML tooltip from QGIS drag&drop form
  • Improve the HTML tooltip form: get the represented value
  • Add filter form capabilities for PostgreSQL/PostGIS layers

But the main feature is QGIS Server 3 support 4.

For that we needed to adapt lizmap web client to QGIS Server changes and fix QGIS Server 3.4 in order to propose an identical user experience:

  • Fix regression server print selection pdf
  • JPEG output for WMS GetPrint request has gone
  • In WMS GetFeatureInfo CRS param not mandatory when FILTER param
  • Add unit test for WFS GetFeature with BBOX param without EPSG
  • SLD : Support escapeChar attribute of PropertyIsLike
  • Null field value in GML has to be empty string
  • Use Project selection color in GetPrint
  • Unit-test: To avoid regression in Server printing to PDF output format
  • Keeps empty parts for not empty styles parameters

We also needed to update some useful QGIS Server plugins for Lizmap:

  • Atlas print 5
  • WFS output Extension 6

If you already use Lizmap Web Client, you can:

  • update Lizmap Web Client to 3.3
  • update QGIS Server to 3.4
  • update the QGIS Server plugins you use
  • go to the Lizmap Web client backoffice to update the QGIS Server version in configuration
  • update your Lizmap Plugin to 3.1 in you QGIS 3.4 Desktop
  • and update your QGIS projects.

If you want to test lizmap, install the lastest version with QGIS Server LTR.

Last information, a mailing list for Lizmap project has been created: https://lists.osgeo.org/mailman/listinfo/lizmap

jeudi 4 avril 2019

Map builder module for Lizmap

We are pleased to announce the release of a new module for Lizmap Web Client.

This module allows a user from QGIS projects published in Lizmap Web Client to build his own maps. That is, allowing a user to select multiple layers from multiple QGIS projects published in Lizmap Web Client and organize them as he sees fit.

mapBuilder-v1

The features are as follows:

  • Listing of the layers accessible through Lizmap according to the access rights of the user
  • Add a layer from the listing by selecting one of the associated styles
  • Organization of the order of the layers by dragging / dropping
  • Changing the transparency of a layer
  • Querying layers based on Lizmap configurations
  • Access to the attribute table according to Lizmap configurations
  • PDF export of the currently built map
  • Save the card configuration for authenticated users
  • Save and share card configuration for users who have been authorized to do so

mapBuilderAdmin-v1

An administration interface is proposed. It allows to configure:

  • the area displayed by default
  • available baselayers
  • the keys of the different known services: Geoportail, Bing, Google
  • the presence or absence of the tool for consulting the attribute tables of the layers
  • the restriction of the layers usable to the projects of a directory

This module was supported by the Union des Marais de la Charente Maritime (UNIMA) and Andromède Océanologie for the Medtrix platform.

This new module is free and Open-Source: https://github.com/3liz/lizmap-mapbuilder-module

Module de création de cartes pour Lizmap

Nous sommes heureux de vous annoncer la publication d'un nouveau module pour Lizmap Web Client.

Ce module permet à un utilisateur à partir de projets QGIS publiés dans Lizmap Web Client de construire ses propres cartes. C'est à dire permettre à un utilisateur de sélectionner plusieurs couches provenant de plusieurs projets QGIS publiés dans Lizmap Web Client et de les organiser comme bon lui semble.

mapBuilder-v1

Les fonctionnalités sont les suivantes :

  • Listing des couches accessibles au travers de Lizmap en fonction des droits d'accès de l’utilisateur
  • Ajout d’une couche à partir du listing en sélectionnant un des styles associés
  • Organisation de l’ordre des couches par glisser/déposer
  • Modification de la transparence d’une couche
  • Interrogation des couches en fonction des configurations Lizmap
  • Accès à la table attributaire en fonction des configurations Lizmap
  • Export PDF de la carte actuellement construite
  • Sauvegarde de la configuration de la carte pour les utilisateurs authentifiés
  • Sauvegarde et partage de la configuration de la carte pour les utilisateurs ayant été autorisés à le faire

mapBuilderAdmin-v1

Une interface d'administration est proposé. Elle permet de configurer :

  • la zone affichée par défaut
  • les fonds de plans disponibles
  • les clés des différent services connues : Geoportail, Bing, Google
  • la présence ou non de l'outil de consultation des tables attributaires des couches
  • la restriction des couches utilisables aux projets d'un répertoire

Ce module a été soutenu par l'Union des Marais de la Charente Maritime (UNIMA) et Andromède Océanologie pour la plateforme Medtrix.

Ce nouveau module est disponible gratuitement et en Open-Source : https://github.com/3liz/lizmap-mapbuilder-module

lundi 21 janvier 2019

Lizmap Web Client 3.2 et les versions futures

Lizmap Web Client 3.2.*

Nous sommes heureux d’annoncer la sortie de lizmap Web Client 3.2 - 1 - 2

Cette version propose de nouvelles fonctionnalités :

Cette version améliore :

  • L'édition
  • Les évènements JavaScript
  • Les évènements PHP pour les outils de recherche
  • La mise à jour des locales

De nouvelles locales sont disponibles :

  • Tchèque
  • Norvégien
  • Brésilien
  • Slovène

Nous avons également amélioré la manière de localiser le plugin, le client Web et la documentation via transifex.

Les versions Futures de Lizmap Web Client

Nous avons prévu la sortie de la version 3.3 à la fin du mois de février. Cette version doit supporter pleinement QGIS Server 3.4. * Et supérieur.

Nous prévoyons également de publier une version 4 au cours de l'année 2019. Cette version sera basée sur les versions récentes d'OpenLayers, Bootstrap et JQuery. Nous avons commencé ce travail. Nous développons un module complémentaire à Lizmap pour construire sa carte à partir des couches publiées dans l'instance.

Lizmap Web Client 3.2 and futur

Lizmap Web Client 3.2.*

We are pleased to announce the release of lizmap web client 3.2 - 1 - 2

This version proposes new features:

This version improves:

  • Edition
  • Javascript events
  • PHP event for searching tool
  • Updating locales

And new locales are availables:

  • Czech
  • Norwegian
  • Brazilian
  • Slovenian

We also enhance the way to localize the plugin, the web client and the documentation through transifex.

Futur Lizmap Web Client versions

We have planned the release of version 3.3 at the end of February. This version has to fully support QGIS Server 3.4.* and upper.

We also plan to release a version 4 during the year 2019. This version will be based on recent versions of OpenLayers, Bootstrap and JQuery. We have started this work. We develop an add-on to Lizmap to build its map from published layers within the instance.

lundi 29 octobre 2018

QGIS 3.4 Madeira a été publié !

Traduction libre de QGIS 3.4 Madeira is released!


Nous sommes heureux d’annoncer la sortie de QGIS 3.4 «Madeira» ! Madère fut le lieu dé la réunion des développeurs QGIS de février 2018.

QGIS 3.4 Splash

Les installeurs Windows et les binaires pour Ubuntu et Debian sont déjà disponibles, et tous les packagers préparent activement les binaires et installeurs pour les autres systèmes d'exploitation. Nous vous tiendrons au courant lorsque les différents packages et programmes d’installation seront disponibles.

QGIS 3.4 deviendra la première version maintenue à long terme LTR de la branche 3. Selon la roadmap actuel, la version 3.4 remplacera la version 2.18 en tant que LTR en février 2019.

Nous voudrions remercier les développeurs, les documenteurs, les testeurs et les nombreuses personnes qui ont consacré leur temps et leurs efforts (ou qui ont financé des personnes pour le faire). De la part de la communauté QGIS, nous espérons que cette version vous plaira ! Si vous souhaitez faire un don de temps, d'argent ou vous impliquer d'une manière ou d'une autre pour rendre QGIS encore plus génial, rendez-vous sur qgis.org et donnez un coup de main !

QGIS est soutenu par des donateurs et des sponsors. Vous trouverez une liste à jour des donateurs ayant apporté des contributions financières importantes et mineures au projet. Si vous souhaitez devenir sponsor officiel du projet, veuillez visiter notre page de sponsoring pour plus de détails. Le parrainage de QGIS nous aide à financer nos semestrielles réunions de développeurs, à maintenir l'infrastructure du projet et à soutenir la résolution de bogues. Vous trouverez ci-dessous une liste complète des sponsors actuels - nous remercions vivement tous nos sponsors !

QGIS est un logiciel libre et vous n’êtes pas obligé de payer quoi que ce soit pour l’utiliser. En fait, nous souhaitons encourager les utilisateurs du monde entier à l’utiliser, quel que soit leur statut financier ou leur statut social . Nous croyons que mettre à disposition de tous des outils décisionnels spatiaux donnera une société meilleure pour toute l’humanité.

vendredi 26 octobre 2018

QGIS Server 3.4: Server cache manager and WMTS service

Funded by Ifremer

QGIS Server 3.4 supports WMTS 1.0.0 OGC standard.

In QGIS project properties, the user can defined:

  • which part of the project (all the project, layer groups or layers) has to be published through WMTS standard
  • the min scale of the tiles

QGIS Server reused the CRS defined in the WMS capabilities configuration for WMTS.

qgis_wmts_config_screenshot

To manage the tile cache, a QGIS Server plugin with a QgsServerCacheFilter class has to be installed and loaded by QGIS Server.

By default, QGIS Server only caches WMS GetCapabilities document in memory. With WMTS implementation, it is necessary to have a way to cache tiles. But the cache manager has not been developed to only cache tiles.

The cache manager plugin, can be used to cache:

  • WMS, WFS, WCS, WMTS GetCapabilities documents
  • WFS DescribeFeatureType documents
  • WCS DescribeCoverage documents
  • WMTS GetTile images
  • WMS GetLegendGraphic images

Here is a python cache manager class, which do not verifying if the QGIS project has changed:

class PyServerCache(QgsServerCacheFilter):

    """ Used to have restriction access """

    # Be able to deactivate the access control to have a reference point
    _active = False

    def __init__(self, server_iface):
        super(QgsServerCacheFilter, self).__init__(server_iface)

        self._cache_dir = os.path.join(tempfile.gettempdir(), "qgs_server_cache")
        if not os.path.exists(self._cache_dir):
            os.mkdir(self._cache_dir)

        self._tile_cache_dir = os.path.join(self._cache_dir, 'tiles')
        if not os.path.exists(self._tile_cache_dir):
            os.mkdir(self._tile_cache_dir)

    def getCachedDocument(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))

        if not os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml")):
            return QByteArray()

        doc = QDomDocument(m.hexdigest() + ".xml")
        with open(os.path.join(self._cache_dir, m.hexdigest() + ".xml"), "r") as f:
            statusOK, errorStr, errorLine, errorColumn = doc.setContent(f.read(), True)
            if not statusOK:
                print("Could not read or find the contents document. Error at line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr))
                return QByteArray()

        return doc.toByteArray()

    def setCachedDocument(self, doc, project, request, key):
        if not doc:
            print("Could not cache None document")
            return False
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        with open(os.path.join(self._cache_dir, m.hexdigest() + ".xml"), "w") as f:
            f.write(doc.toString())
        return os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml"))

    def deleteCachedDocument(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        if os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml")):
            os.remove(os.path.join(self._cache_dir, m.hexdigest() + ".xml"))
        return not os.path.exists(os.path.join(self._cache_dir, m.hexdigest() + ".xml"))

    def deleteCachedDocuments(self, project):
        filelist = [f for f in os.listdir(self._cache_dir) if f.endswith(".xml")]
        for f in filelist:
            os.remove(os.path.join(self._cache_dir, f))
        filelist = [f for f in os.listdir(self._cache_dir) if f.endswith(".xml")]
        return len(filelist) == 0

    def getCachedImage(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))

        if not os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png")):
            return QByteArray()

        img = QImage(m.hexdigest() + ".png")
        with open(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"), "rb") as f:
            statusOK = img.loadFromData(f.read())
            if not statusOK:
                print("Could not read or find the contents document. Error at line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr))
                return QByteArray()

        ba = QByteArray()
        buff = QBuffer(ba)
        buff.open(QIODevice.WriteOnly)
        img.save(buff, 'PNG')
        return ba

    def setCachedImage(self, img, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        with open(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"), "wb") as f:
            f.write(img)
        return os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"))

    def deleteCachedImage(self, project, request, key):
        m = hashlib.md5()
        paramMap = request.parameters()
        urlParam = "&".join(["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()])
        m.update(urlParam.encode('utf8'))
        if os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png")):
            os.remove(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"))
        return not os.path.exists(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"))

    def deleteCachedImages(self, project):
        filelist = [f for f in os.listdir(self._tile_cache_dir) if f.endswith(".png")]
        for f in filelist:
os.remove(os.path.join(self._tile_cache_dir, f))
        filelist = [f for f in os.listdir(self._tile_cache_dir) if f.endswith(".png")]
        return len(filelist) == 0

And the way to add it to the QGIS Server cache manager.

servercache = PyServerCache(server_iface)
server_iface.registerServerCache(servercache, 100)

lundi 29 janvier 2018

24 Jours de fonctionnalités QGIS 3.0

Traduction libre de l'article 24 Days of QGIS 3.0 Features disponible sur le blog de North-Road.


Si vous ne suivez pas @northroadgeo sur Twitter, vous avez probablement raté le récent compte à rebours «24 Days of QGIS». Pendant le mois de décembre, North-Road a mis en évidence 24 fonctionnalités différentes qui seront disponibles dans la version 3.0 de QGIS. Nous avons rassemblé tous ces éléments ci-dessous afin que vous puissiez les rattraper:

1er des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - outils de numérisation de type CAO intégrés, pour un création plus simple de rectangle/cercle/ellipse et autres ! (Merci à Loïc Bartoletti)

2e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - Dans la sélection par attributs, le champs de valeurs propose des valeurs par auto-complétion! (Merci à Nyall Dawson)

3e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - Éditer interactivement n'importe quelle étiquette dans vos projets, sans configuration ou charcutage de données! (Merci à Oslandia)

4e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - Style de couche raster par valeurs uniques avec édition possible du résultat! (Merci aux nombreux sponsors par crowd funding!)

5e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - Ouvrez facilement les couches avec le nouveau gestionnaire de sources de données unifié! (Merci à Alessandro Pasotti et Boundless Geo)

6e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - Intégration complète du GeoPackage qui est partout le format proposer par défaut! (Merci à toute l'équipe de QGIS, et notre commisération pour le shapefiIe !)

7e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - Stylisez les annotations de votre carte en utilisant n'importe quelle combinaison de remplissages de symboles et d'effets de peinture! (Merci au développeur principal de North-Road Nyall Dawson)

8e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - De trrrrrrrès nombreux nouveaux algorithmes de traitement, tous prêts à un clic de souris! (Merci à toute l'équipe QGIS)

Bonus 8,5e jour des #24daysofqgis : nous avons eu beaucoup de questions sur le jour 8 ! Dans #QGIS 3.0, le traitement a également été réécrit de toutes pièces en c ++, et de nombreux algorithmes sont maintenant des algorithmes c ++ natifs. Les lots ont été également hautement optimisés et rendus beaucoup plus flexibles et stables.

9e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - plusieurs canvas interactifs de cartes pour visualiser et explorer différentes vues de vos données ! (Merci à opengis.ch)

10e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - amélioration du support hidpi/retina, incluant le support hidpi pour le canvas de carte et les compositions d'impression.

11e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - les paramètres par défaut pour les widgets d'édition plus intelligents lors du chargement de nouvelles couches, dont les cases à cocher, les widgets de date, et autres! (Merci à CampToCamp)

12e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - positionnement exact des guides d'accrochage de la mise en page via le nouveau gestionnaire de guide! (Merci aux nombreux sponsors par crowd funding !)

13e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - un nouvel outil de gestion de nœuds génial, avec de nombreuses améliorations du comportement et la possibilité d'étendre facilement les lignes ! Merci à Lutra Consulting !)

14e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - prévisualisez les limites valides des projections de carte, pour valider facilement vos choix de CRS ! (Merci à Nathan Woodrow !)

15e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - exécuter des tâches complexes en arrière-plan, sans bloquer votre flux de travail ! (Développé par North-Road, soutenu par le programme de subvention QGIS)

16e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - support complet pour les fichiers QLR, les modèles d'impression, les modèles de traitement et les scripts python dans QGIS browser ! (Merci à [Lutra Consulting][https://www.lutraconsulting.co.uk/), Alessandro Pasotti, North-Road, et autres)

17e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - le re-rendu des cartes est plus rapide grâce à l mise en cache du rendus d'étiquettes ! (Merci à Kartoza, North-Road et Oslandia)

18e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - une nouvelle barre de recherche géniale 'locator', permettant un accès rapide aux couches, fonctionnalités, actions, algorithmes, et prêt pour les extensions ! (Merci à North-Road)

19e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - reprojection automatique des couches dans les algorithmes de traitement... plus besoin de créer des couches temporaires juste pour couper des couches dans un autre CRS ! (Développé par North-Road)

20e jour des #24daysofqgis : Bientôt disponible dans #QGIS 3.0 - nouveaux widgets non bloquants pour définir les polices et les symboles des objets ! (Compléter avec la possibilité de copier/coller des polices et des symboles entre différents éléments.)

21e jour des #24daysofqgis : C'est un changement important... Bientôt disponible dans #QGIS 3.0 - des vues 3D interactives des cartes, entièrement intégrées! (Merci à Lutra Consulting et au programme de subvention QGIS)

22e jour des #24daysofqgis : Mise à jour automatique de la valeur d'un champ à chaque fois qu'un objet est modifié... Bienvenue à l'option "last updated" ! (Merci à opengis.ch)

23e jour des #24daysofqgis : Utilisation de valeurs de paramètre "définies par les données" pour les traitements ! Par exemple : la fonctions de calcul de zone tampon avec une distance tampon basée sur une expression. (Développé par North-road et soutenu par QGIS Suisse.)

24e jour des #24daysofqgis : Un tout nouveau "Layouts Engine" pour remplacer le Composer d'impression, avec tellement de nouvelles fonctionnalités que nous ne pouvons en présenter que quelques unes ! Par exemple : facilement distribuer et redimensionner une sélection... (Développé par North-Road, merci au nombreux sponsors via crowd funding !)


Vous pouvez déjà tester la futur version 3.0 de QGIS qui sera disponible le 23 février 2018!

- page 1 de 23