Version 2.4.1 - 21 décembre 2012

Nouvelles fonctionnalités

  • Cache Le répertoire dans lequel le cache des tuiles de Lizmap est stocké peut être configuré via le panneau d'administration. Il faut choisir un répertoire dans lequel l'utilisateur Apache peut écrire.

Correction de bugs

  • Interface admin La taille des polices est de nouveau celle par défaut dans toute l'application. (Depuis la 2.4.0 les polices étaient trop grandes)
  • Logs Pas de log écrit dans lizmap/var/log/messages.log lorsque curl ne renvoit pas d'erreur, sauf si le mode debug est activé dans la configuration
  • Popups Correction de 2 bugs qui empêchaient d'afficher des images issues d'une valeur de type /media/mon/chemin/image.png dans une colonne des attributs de la couche vectorielle.

Version 2.4.0 - 14 novembre 2012

Nouvelles fonctionnalités

  • Gestion des documents :
    Il est maintenant possible de mettre à disposition des documents à part de Lizmap. Tous les fichiers stockés dans le répertoire media/ de chaque répertoire LizMap sont accessibles sur l'application Web. Cela permet par exemple de fournir un lien vers un document pdf en remplissant la propriété Lien d'une couche, ou bien d' afficher des images ou du contenu HTML dans les popups à partir des données d'une couche.
  • Popups enrichies :
    LizMap permet maintenant de configurer des popups riches à partir des couches vectorielles du projet QGIS:
    • Choix des couches :
      Le plugin Lizmap permet de choisir pour quelles couches on souhaite proposer une fenêtre d'information (popup) sur la carte web. Une case à cocher permet d'activer ou de désactiver la popup pour chaque couche.
    • Gestion des documents :
      la popup est construite avec les valeurs des colonnes de la couche pour l'élément cliqué. Pour chaque objet de la couche, si une colonne contient un chemin relatif vers un document ou un fichier média stocké dans le répertoire /media du répertoire LizMap, cette valeur sera remplacée par le contenu approprié : affichage d'une image, affichage du contenu d'un fichier texte ou d'un fichier HTML, affichage d'un lien vers un document pdf, etc. Cela permet de proposer des popup riches avec des colonnes créées spécifiquement dans ce but. Voir l'exemple de la couche Tramway lines du projet de démonstration Montpellier
    • Modèles d'affichage de la popup :
      Pour aller plus loin, il est possible de configurer pour chaque couche un modèle d'affichage, appelé aussi template. Une fenêtre du plugin permet d'écrire un contenu en texte simple ou au format HTML). Les variables représentant les noms des colonnes, par exemple {$ma_colonne}, seront remplacées par le contenu adéquate : valeur de la colonne, ou contenu du fichier si la valeur est un chemin vers un fichier média ou un document. Ainsi l'utilisateur peut créer des popups dynamiques enrichies à partir des données de la couche. Voir l'exemple des couches Districts et Bus lines du projet de démonstration Montpellier
    • Modèle par défaut
      Si aucun modèle d'affichage n'a été défini via le plugin, alors la popup affiche un tableau avec le nom et les valeurs des colonnes pour l'objet cliqué.
  • Interface mobile :
    L'interface de Lizmap s'adapte automatiquement aux écrans des smartphones standards et aux smartphone avec écrans à haute définition : Iphone 4 ou 5, Samsung Note, Nexus, etc.. On peut donc maintenant utiliser Lizmap pour publier des cartes pour les appareils nomades.
    Voici les changements majeurs qui ont été apportés:
    • mode "responsive" : l'interface s'adapte de manière automatique lorsque on modifie la dimension de l'écran (notamment tourne l'écran d'une tablette ou d'un smartphone)
    • une entête plus petite pour laisser plus de place à la carte
    • le menu légende est en plein écran
    • le menu légende est caché par défaut et un lien dans la barre horizontale de menu permet de basculer entre la carte et la légende.
    • les popups sont en quasi plein écran. La barre d'échelle et les boutons de navigation sont masqués lorsqu'une popup est affichée
    • la carte miniature est masquée

Améliorations

  • Carte miniature : La carte miniature est affichée par défaut au chargement de la carte. Il est bien sûr toujours possible de la masquer en cliquant sur la flèche située à droite de la barre d'échelle.
  • Fonds de carte : Cliquer sur le nom de la couche de fond actuelle ouvre le menu de choix du fond de carte. Il n'est plus nécessaire de cliquer sur la petite flèche située à droite. De même, pour sélectionner une couche de fond dans ce menu, un clic sur le nom d'une des couches suffit.

Corrections de bugs

  • GetCapabilities : Suppression d'un doublon dans l'entête de la réponse XML fournie par Lizmap, corrigeant un bug apparu dans la version 2.3.0.
  • Interface sur Internet Explorer 8 : modification des CSS et du JavaScript pour corriger les problèmes d'affichage de la légende et du menu.

Moteur

  • Jelix: montée de version de jelix 1.3.4 vers jelix 1.4.1.

Version 2.3.0 - 30 Octobre 2012

Nouvelles fonctionnalités

  • Panneau d'information pour chaque projet: Un lien, positionné en haut à droite de chaque carte, permet d'afficher une fenêtre présentant les informations détaillées de la carte. Toutes ces informations sont issues du projet Qgis. Vous pouvez les configurer via la fenêtre de propriétés du projet QGIS, onglet OWS.

Améliorations

  • Interface: l'interface a été améliorée pour les petits écrans : l'entête avec le titre de la carte réagit mieux à un redimensionnement de la fenêtre. Cela améliore la présentation générale sur les interface mobiles : smartphones et tablettes.
  • Proxy: Curl n'est plus utilisé par défaut pour envoyer les requêtes à QGIS Server. C'est maintenant les fonctions natives de php qui sont utilisées dans Lizmap. Il est possible de choisir dans l'administration l'outil à utiliser (curl ou php).
  • Proxy: la réponse de la requête GetCapabilities est maintenant envoyée au format XML et non au format texte. Cela améliore la compatibilité avec les clients WMS externes.
  • Administration: ajout d'une option mode de débogage dans la partie services. Elle est mise à off par défaut, mais peut être activé. Alors certaines requêtes (proxy, cache, etc.) seront enregistrées sur le serveur dans des fichiers de log de Lizmap.

Corrections de bugs.

  • Configuration Lizmap (admin) L'affichage des droits pour chaque répertoire Lizmap a été corrigé dans la liste (il n'apparaissait plus).
  • Proxy: vérification que Curl et GD (outils PHP) sont bien installés avant de les utiliser.
  • Cache: la configuration lizmap n'est plus passée dans la méthode de gestion du cache. Cela permet d'éviter de perdre le cache à chaque changement de la configuration Lizmap.

Moteur

  • Jelix: montée de version vers jelix 1.3.4

Version 2.2.0 - 1 Octobre 2012

Nouvelles fonctionnalités

  • Cache : support du metatile.
    On peut définir via le plugin Lizmap, pour chaque couche avec le cache activé, si on souhaite paramétrer le metatile. Le principe est de demander au serveur QGIS Server une image plus grande et de la redécouper ensuite. Cela permet d'éviter les problèmes d'étiquettes tronquées ou de hachures brisées aux limites de tuiles. On peut par exemple définir "5,5".

Améliorations

  • Cache : possibilité de définir la durée d'expiration du cache pour chaque couche.
    Si cette durée n'est pas définie au niveau de la couche, alors on utilise le paramètre par défaut (défini dans la configuration de Lizmap Web Client)
  • Cache : Détection simple du client WMS
    pour ne pas utiliser le cache et le metatile pour les clients de type logiciel SIG, car les emprises des tuiles sont alors uniques.
  • Meilleur support de sqlite 2, base de données utilisée pour le stockage des paramètres de groupes et d'utilisateurs (remplacement de "group_concat" par du code PHP)

Corrections de bugs

  • Cache : meilleure gestion des arrondis pour éviter une utilisation inadéquate du cache.

Version 2.1.0 - 25 Septembre 2012

Améliorations

  • Traduction de l'application web et de l'interface admin en italien (merci à Salvatore Larosa @lrssvt)

Corrections de bugs

  • Meilleure prise en compte des accents dans le nom des couches
  • Meilleur support des projections

Version 2.0.0 - Septembre 2012

Gestion des cartes par répertoire

Cette fonctionnalité existait dans la version précédente et est reprise ici pour référence.

  • Possibilité de créer sur le serveur un ou plusieurs "répertoires" de projets.
    Un répertoire LizMap correspond exactement à un répertoire du serveur dans lequel on stocke un ou plusieurs projets QGIS (et les données liées).
    On peut donner un titre à un répertoire (Par exemple "test" pour le chemin /home/donnees/rep_test/ qui contiendrait des projets QGIS).
    LizMap permet d'accéder à une carte pour chaque projet de chaque répertoire, via une URL unique. Il est donc possible de donner un lien direct à une carte LizMap.
  • Un fichier de configuration décrit les répertoires LizMap : chemin du répertoire sur le serveur, titre du répertoire
  • Les chemins des projets ne sont pas visible dans les URLs.
    Grâce à l'organisation par répertoire et au fichier de configuration décrivant les répertoires LizMap, l'utilisateur de LizMap n'a pas besoin de connaître le chemin sur le serveur vers le projet QGIS qu'il souhaite consulter.
    Cela offre 2 avantages, le premier est d'avoir des URLs simple, le second est de cacher l'arborescence du serveur et donc de protéger le serveur.

Administration

  • Ajout d'un module d'administration qui centralise les menus de configuration de LizMap.
    Pour accéder à ce module, il faut être un utilisateur enregistré et utiliser son login et mot de passe. Ce module d'administration contient :
    • Un menu "Lizmap", où il est possible de modifier la configuration directement via des formulaires.
      • services : URL du serveur QGIS, URL d'un serveur optionnel de cache de tuiles,
      • répertoires : création, modification, suppression et gestion des droits d'accès.
    • Un menu "Système", qui centralise les pages de gestion des utilisateurs, des groupes et des droits associés.
  • Plusieurs niveaux d'accès :
    • groupe "admins" :
      les utilisateurs de ce groupe ont tous les droits. Un utilisateur admin (mot de passe "admin") a été créé dans ce groupe. C'est en quelque sorte le super-administrateur.
      Il est possible pour les utilisateurs du groupe admins de créer autant de groupes que souhaité, de créer des utilisateurs, et de modifier les droits pour chaque groupe.
    • groupe "lizadmins" :
      les utilisateurs de ce groupe peuvent configurer LizMap : gestion des services et des répertoires de projets.
      Un utilisateur lizadmin (mot de passe "lizadmin") a été créé dans ce groupe.

Gestion des accès aux répertoires par groupe

Il est maintenant possible de protéger facilement l'accès aux projets QGIS d'un répertoire.

  • Un répertoire peut être configuré via l'admin pour être visible par un ou plusieurs groupes d'utilisateur.
  • Un utilisateur ne peut voir que les cartes contenues dans les répertoires accessibles pour les groupes auxquels il appartient. Les autres cartes sont protégées et non accessibles.
  • Les services WMS et WFS ne sont pas accessibles aux clients externe (SIG, navigateur, etc.) en dehors de l'application LizMap.
  • Il reste possible d'utiliser le service WMS via un client externe en passant les paramètres d'authentification de l'utilisateur (par exemple avec le menu de QGIS Ajouter une couche WMS )
  • Un groupe anonymous représente les utilisateurs non connectés, c'est-à-dire les visiteurs sans login ni mot de passe qui vont sur l'application LizMap.
    On peut donner l'accès à un ou plusieurs répertoire à ce groupe anonymous, ce qui revient à rendre ces répertoires accessibles à tous.

Dans la version de Lizmap fournie avec l'archive, nous avons créé par exemple un groupe Intranet Demo Group et un utilisateur logintranet (mot de passe "logintranet") appartenant à ce groupe. Nous avons créé un répertoire intranet et configuré son accès pour que seuls les groupes administrateurs et le groupe Intranet Demo Group y aient accès. Pour voir la carte montpellier_intranet, il faut être connecté en tant que logintranet. Sinon on est redirigé vers la page qui liste les projets et on ne peut accéder qu'aux cartes du répertoire montpellier

L'administrateur de LizMap peut ainsi créer autant de groupes thématiques qu'il souhaite. Les utilisateurs de ces groupes n'auront accès qu'aux cartes des répertoires accessibles par leur groupe.

Mise en cache automatique des images

Lizmap est construit autour d'un moteur PHP (codé à l'aide de l'excellent framework [[http://jelix.org|Jelix]] ). L'application Web agit comme un proxy (un intermédiaire) entre le navigateur de l'utilisateur et le serveur cartogaphique QGIS Server. Elle passe les requêtes WMS (par exemple GetMap) au serveur, récupère la réponse (une image par exemple) et la renvoit au client Web (la carte Lizmap). Cette architecture permet de gérer les droits comme décrit ci-dessus, mais permet aussi de créer un système simple de mise en cache.

Dans le plugin Lizmap, il est possible de définir une option Cache ? pour chaque couche d'un projet QGIS. Si cette option est choisie, Lizmap Web Client va vérifier pour chaque image demandée par le client web si elle est déjà dans le cache. Si oui, alors l'image en cache va simplement être renvoyée au client, et Qgis Server n'aura donc pas à la re-générer. Si non, alors l'image est demandée à Qgis Server via la requête WMS GetMap, et une fois reçue, elle est enregistrée dans le cache puis renvoyée au client. Activer le cache pour une couche permet donc de proposer des cartes web réactives, et de ne pas surcharger le serveur cartographique. C'est pertinent pour des données qui évoluent peu et qui sont lourdes à traiter (comme par exemple un réseau routier ou une occupation du sol fine).

Le système de cache de Lizmap n'est pas (encore) un service standard comme le WMTS (Web Map Tile Service). Il n'offre pas toutes les fonctionnalités des excellents serveur de cache Tilecache ou Mapcache. Mais il remplit son rôle de manière très simple pour l'utilisateur :

  • Pas de fichiers de configuration à modifier . Dans les outils comme Tilecache ou Mapcache, il faut configurer chaque couche pour chaque projection : donner l'étendue spatiale, la liste des échelles, etc. Cela est souvent fastidieux et peut être complexe. Et surtout il faut penser à modifier cette configuration à chaque modification ou création de couche. Avec Lizmap, si vous créez une nouvelle couche dans QGIS, il suffit de cocher l'option "Cache ?" dans le plugin, et de publier la carte. Le cache sera automatiquement créé.
  • Lizmap stockera automatiquement les images dans le cache pour chaque couche dans une arborescence de répertoires correspondant au répertoire LizMap, aux projet, à la couche et à sa projection. Pas besoin de préciser les échelles, l'étendue géographique ou la projection.
  • Dans l'interface d'administration, vous pouvez configurer:
    • le format du cache : Vous pouvez choisir entre "sqlite" et "fichiers"
      • Avec l'option sqlite, Lizmap Web Client créera un simple fichier de base de données sqlite pour chaque couche dans un répertoire dont le chemin est défini par le répertoire lizmap, le projet et le nom de la couche, comme par exemple /tmp/repertoire_lizmap/nom_du_projet/nom_de_la_couche_epsg_code.sqlite. Toutes les images mises en cache seront stockées dans ce fichier.
      • Avec l'option fichiers, Lizmap stockera simplement chaque image mise en cache dans plusieurs répertoires, par exemple dans /tmp/repository_name/project_name/layer_name_epsg_code/. Des sous répertoires seront créés automatiquement pour ne pas avoir trop d'images par répertoire (et éviter le problème de nombre max de fichiers par répertoire de certains systèmes de fichier). Mais les couches seront néanmoins séparée dans des répertoires distincts, pour faciliter la suppression du cache si besoin.
    • Durée d'expiration : vous pouvez définir un temps d'expiration en seconde pour les images du cache. Les images du cache plus vieilles que cette durée seront automatiquement supprimées et remplacées par des images récentes (nouvelle requête à QGIS Server) . Si vous mettez 0, le cache n'expirera jamais, c'est-à-dire que les images du cache seront conservées. Cela peut-être utile pour des données statiques, comme par exemple des fonds IGN ou des photos aériennes.
  • Vous pouvez supprimer le cache d'une couche facilement, simplement en supprimant le répertoire correspondant à la couche. Vous pouvez aussi utiliser l'interface d'administration (menu Lizmap Configuration) pour supprimer via un bouton tout le cache correspondant à un répertoire Lizmap. Tout le cache de toutes les couches des projets de ce répertoire sera supprimé via ce bouton Vider le cache. A l'avenir, nous proposerons sûrement une interface graphique plus fine pour supprimer seulement le cache lié à un projet, voir à une couche.
Fonctionnalités manquantes:
  • prégénération du cache : il n'est pas encore possible de prégénérer tout le cache d'une couche pour certains niveaux de zoom via Lizmap. Le cache est simplement généré à la demande, lorsque les utilisateurs naviguent dans les cartes via l'application Web Lizmap Web Client.
Projet de démonstration :

Refonte de l'interface

  • Nouvelle organisation de la carte
    • un panneau à gauche présente la légende et les fonds de carte. On peut masquer ce panneau.
    • un bandeau supérieur contient le titre du répertoire, le titre du projet et un menu (authentification)
    • une carte prend la place restante (avec gestion du redimensionnement de la fenêtre)
    • une barre d'échelle et une vue miniature de la carte (si elle a été configurée) sont intégrées en bas à droite.
  • Le positionnement et le style des différents éléments peuvent être facilement modifiés et adaptés en fonction des besoins, via un système de thèmes (à développer)
  • Une page liste les projets de chaque répertoire accessible à l'utilisateur :
    • seuls les répertoires accessibles sont affichés
    • une imagette illustre chaque projet
    • une description rappelle les informations du projet : titre, description, projection, emprise.

Internationalisation de l'application

  • 2 langues proposées pour l'instant : le français et l'anglais
  • détection automatique de la langue du navigateur (bascule sur l'anglais si la langue n'est pas trouvé)
  • ajout aisé de nouvelles langues, puisque les traductions sont enregistrées dans des fichiers textes regroupées par langue.
  • basculer sur une autre langue en passant un paramètre (lang=fr_FR ou lang=en_EN)

Fonctionnalités de la carte en lien avec QGIS server

  • Légende : rafraîchissement de la légende de chaque couche (ou groupe de couches) à chaque changement d'échelles.
  • Fenêtre d'information d'un objet de la carte, accessible sur simple clic.
    • affichage d'une image lorsqu'un champ de la couche contient une URL complète vers une image stockée sur internet
    • remplacement des liens http par des liens cliquables.
  • Format d'image : il est possible de préciser le format d'image qui sera produit par QGIS Server pour fournir les cartes via la requête WMS GetMap. Pour cela, il faut utiliser une version du plugin Lizmap supérieure ou égale à 1.3.0. Vous pouvez choisir entre les formats suivants :
    • image/png: le format png utilisé par défaut, qui produit des images de qualité, et gère la transparence.
    • image/png; mode=8bit: format PNG codé en 8bits , qui produit des images de taille plus réduite (divisée au moins par 5), mais avec moins de couleurs (la palette de couleur est réduite).
    • jpeg: format de compression avec perte, qui produit des images de petite taille, mais ne gère pas la transparence. A garder pour des fonds de carte donc. Les rendus des étiquettes peuvent aussi être de mauvaise qualité avec le jpeg.

Moteur

  • Mise à jour de Jelix (framework PHP utilisé pour développer le moteur de LizMap) : passage à la version 1.3.3
  • Intégration de Jelix dans l'archive téléchargeable, ce qui facilite l'installation de LizMap et les futures montées de version
  • Réorganisation du code en plusieurs modules ("lizmap": responsable des services web, "view" : affichage des pages et de la carte, "admin": gestion de l'administration)
  • Utilisation de bootstrap pour mettre en forme les pages non cartographiques.
  • Utilisation de jacl2 et de jauth pour gérer respectivement les droits et l'authentification.
  • Remplacement du fichier de configuration lizmap/var/projects.json (au format JSON) par lizmap/var/config/lizmapConfig.ini.php (au format ini) et factorisation du code pour gérer et utiliser cette configuration.

Gestion des erreurs

  • Redirection vers la liste des projets si le dépôt passé est incorrect
  • Redirection vers la liste des projets si le projet est incorrect (fichier QGIS non présent ou configuration manquante pour ce projet)
  • Erreurs conformes aux standards des services OGC si on lance une requête WMS sur un projet protégé (non accessible par l'utilisateur courant)