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

mardi 6 novembre 2012

Spatial operators in QGIS expression

To improve the implementation of the OGC WFS standard in QGIS-Server, I needed to evaluate filters including spatial operators. The Open Geospatial Consortium has defined in the Filter Encoding and Simple Feature Specification for SQL standard a list of spatial operators, who are :

  • Equals,
  • Disjoint,
  • Touches,
  • Within,
  • Overlaps,
  • Crosses,
  • Intersects,
  • et Contains.

To which must be added BBOX who corresponds to an intersection (Intersects) with the emprise (BoundingBox) of the geometry passed as a parameter.

All these operators require 2 arguments which are 2 geometries that can be:

  • that of the geographic object (Feature) for which the expression is evaluated
  • a GML2 geometry in the case of Filter Encoding standard, a WKT geometry in the expression case

After coding a QGIS-Server specific implemetation et getting feedback from QGIS contributors, I undertook the implementation of these operators in the QGIS expression système. These developments are currently on my QGIS github repository but already fonctional. And here are some examples.

QGIS Expression Window QGIS Window Expression constructor. In the list of available operators, you will find in the geometry category the new spatial operators $geometry, geomFromWKT, geomFromGML2, bbox, disjoint, etc.

To achieve these examples, I chose a dataset form Montpellier OpenData :

  • Sous-quartiers (Sub-districts), this data represents the administrative sub-division of the city of Montpellier.

In the layer metadata, we find the following extent :

  • xMin,yMin 765145.88,6274561.22
  • xMax,yMax 776031.67,6284189.52

We will first use it to select sub-districts on the diagonal xMin,yMin xMax,yMax, which gives the expression :

  • intersects( $geometry, geomFromWKT( 'LINESTRING(765145.88 6274561.22, 776031.67 6284189.52)' ) )

QGIS Expression test intersects linestring

QGIS Expression select intersects linestring

If you want to select all elements, you can write:

  • bbox( $geometry, geomFromWKT( 'LINESTRING(765145.88 6274561.22, 776031.67 6284189.52)' ) )

But it is also possible to use these expressions in set of style rules, with such expressions:

  • intersects( $geometry, geomFromWKT( 'POLYGON' ) )
  • NOT intersects( $geometry, geomFromWKT( 'POLYGON' ) )

QGIS Expression spatial style rules

Color is thus associated with each of these expressions which can easily styled Northwest and Southeast sub-districts of Montpellier.

QGIS Expression spatial style rules rendering

You can also add the selection on the diagonal with a priority higher than the other:

  • intersects( $geometry, geomFromWKT( 'LINESTRING(765145.88 6274561.22, 776031.67 6284189.52)' ) )

And get this: QGIS Expression spatial style rules rendering

This kind of thing was necessary to the WFS in QGIS-Server but now we can imagine extending these spatial operators by adding transformer like:

  • exportToWKT
  • buffer
  • centroid
  • convexhull
  • distance
  • simplify

To create content or complexify spatial queries.

Opérateurs spatiaux dans les expressions de QGIS

Pour l'amélioration de l'implémentation de la norme WFS de l'OGC dans QGIS-Server, j'avais besoin de pouvoir évaluer des filtres exploitant des opérateurs spatiaux. L'Open Geospatial Consortium a défini au sein des normes Filter Encoding ou Simple Feature Specification for SQL une liste d'opérateur spatiaux, qui sont :

  • Equals,
  • Disjoint,
  • Touches,
  • Within,
  • Overlaps,
  • Crosses,
  • Intersects,
  • et Contains.

Aux quels, il faut ajouter BBOX qui correspond à une intersection (Intersects) avec l'emprise (BoundingBox) de la géométrie passée en paramètre.

Tous ces opérateurs nécessitent 2 arguments qui sont 2 géométries qui peuvent être :

  • celle de l'objet géographique (Feature) pour lequel l'expression est évaluée
  • une géométrie décrite en GML2 dans le cas de la norme Filter Encoding, en WKT dans le cas d'une expression

Après avoir réalisé une implémentation spécifique à QGIS-Server et obtenu des retours de contributeur à QGIS, j'ai entrepris l'implémentation de ces opérateurs dans le système d'expression de QGIS. Ces développements sont actuellement sur mon dépôt github pour QGIS mais sont déjà fonctionnelle. Et voici quelques exemples.

QGIS Expression Window Fenêtre de construction d'expression de QGIS. Dans la liste des opérateurs disponibles dans la catégorie géométrie vous trouverez les nouveaux opérateurs comme $geometry, geomFromWKT, geomFromGML2, bbox, disjoint, etc.

Pour réaliser ces exemples, j'ai choisi un jeu de données OpenData de la ville de Montpellier :

  • Sous-quartiers, Cette donnée représente le découpage administratif en sous-quartier de la ville de Montpellier.

Dans les métadonnées de cette couche, on trouve l'emprise suivante :

  • xMin,yMin 765145.88,6274561.22
  • xMax,yMax 776031.67,6284189.52

Nous allons nous en servir tout d'abord pour sélectionner les sous-quartiers se trouvant sur la diagonale xMin,yMin xMax,yMax, soit l'expression :

  • intersects( $geometry, geomFromWKT( 'LINESTRING(765145.88 6274561.22, 776031.67 6284189.52)' ) )

QGIS Expression test intersects linestring

QGIS Expression select intersects linestring

Si on souhaite sélectionner tous les éléments, on peut faire :

  • bbox( $geometry, geomFromWKT( 'LINESTRING(765145.88 6274561.22, 776031.67 6284189.52)' ) )

Mais il est aussi possible d'utiliser ces expressions dans des ensemble de règles de style, avec par exemple les expressions :

  • intersects( $geometry, geomFromWKT( 'POLYGON' ) )
  • NOT intersects( $geometry, geomFromWKT( 'POLYGON' ) )

QGIS Expression spatial style rules

Une couleur est ainsi associé à chacune de ces expressions qui permettent de colorisé facilement les sous-quartiers Nord-Ouest et Sud-Est de Montpellier.

QGIS Expression spatial style rules rendering

On peut aussi rajouter, la sélection sur la diagonale avec un ordre de priorité supérieur aux autres :

  • intersects( $geometry, geomFromWKT( 'LINESTRING(765145.88 6274561.22, 776031.67 6284189.52)' ) )

Et obtenir ceci : QGIS Expression spatial style rules rendering

Ce genre de chose était nécessaire au WFS dans QGIS-Server mais maintenant on peut imaginer étendre ces opérateurs spatiaux en ajoutant des transformateur comme :

  • exportToWKT
  • buffer
  • centroid
  • convexhull
  • distance
  • simplify

Pour créer du contenu ou complexifier les requêtes spatiales.

Test LizMap on Windows with OSGEO4W

Short tutorial to help you test LizMap on Windows.

The environment is Windows 7 and the LizMap Web Client version is 2.2.0

1) Download OSGeo4W on the QGIS download page:
http://hub.qgis.org/projects/quantum-gis/wiki/Download#12-OSGeo4W-Installer

2) Run OSGeo4W installer and choose the advanced installation: osgeo4w-01.png

3) Use internet installation: osgeo4w-02.png

4) Select the root for OSGeo4W elements installation and prefer the option for acces to all users: osgeo4w-03.png

5) Select the root of local packages: osgeo4w-04.png

6) Specify the type of internet connection(with proxy or not): osgeo4w-05.png

7) Select in 'Desktop' the package 'QGIS-full' : osgeo4w-06.png

8) Select in 'Web' the package 'QGIS-server' : osgeo4w-07.png

9) Select in 'Lib' the package 'fcgi' : osgeo4w-08.png

10) Launch and complete the installation.

At this stage all that is necessary to LizMap is installed on your computer.
The next steps are to configure the server, install and configure LizMap.

11) To verify if the server is well installed, open the address 'http://localhost' in the browser; if nothing is displayed that the installation has failed.

12) Click on the link 'phpinfo' on the home page of the OSGeo4W Apache server. This page allows you to check the configuration of your server. You should find infomrtaion about cgi-fcgi, PDO and PDO_sqlite but not on CURL or GD which depends LizMap. osgeo4w-09.png osgeo4w-10.png

13) Open the file C:\OSGeo4W\bin\PHP.ini and uncomment the extensions curl and gd2: osgeo4w-11.png

14) The C:\OSGeo4W\bin\PHP.ini file change to enable CURL and GD in PHP, requires to restart the apache server. To do this, click in the windows main menu on the apache monitor 'All programs > OSGeo4W > Apache > OSGeo4W-Apache-Monitor'. osgeo4w-12.png

15) Click on the apache monitor that is among the hidden icons in the task bar (bottom right) and on 'Restart'. osgeo4w-13.png

16) In the browser, reload the page 'phpinfo'. You should find CURL and GD section. osgeo4w-14.png

17) Download LizMap. In the installation documentation, there is a 'wget' command line; it tells you how to build the LizMap download URL: osgeo4w-15.png What gives here : http://demo.3liz.com/download/lizmap-web-client-2.2.0.zip

18) Unzip LizMap in 'C:\OSGeo4W\apache\htdocs\lizmap': osgeo4w-16.png

19) Test whether LizMap is well instlled by oppening the address 'http://localhost/lizmap/lizmap-web-client/2.2.0/lizmap/www' in the browser. You should see the project "Montpellier" comes with LizMap and configured to be visible by all. To view the map, it will have to configure LizMap.

20) As indicated in the LizMap installation documentation, open the address 'http://localhost/lizmap/lizmap-web-client/2.2.0/lizmap/www/admin.php' and connect with the login / password: 'admin/admin'.

21) Click on 'LizMap Configuration' then on modify in the Services section to precise the url of your QGIS-Server.

22) Replace the WMS server url by 'http://127.0.0.1/qgis/qgis_mapserv.fcgi.exe' and save: osgeo4w-17.png

23) To ensure that the configuration was successfull, click on 'Projects list' on top of the page. You should have acces to two maps since you are logged in as admin. Click on one of the maps. If the configuration is correct you should see the map and be in possession of a LizMap version ready for your maps.

To configure LizMap I suggest you to read the documentation:
http://hub.qgis.org/wiki/lizmapwebclient/Installation_en

Any feedback is welcome, and good tests.

jeudi 27 septembre 2012

Tester LizMap sous Windows avec OSGeo4W

Petit tutoriel pour vous permettre de tester LizMap sous Windows.

L'environnement est Windows 7 et la version de LizMap Web Client est la 2.2.0

1) Télécharger OSGeo4W sur la page de téléchargement de QGIS :
http://hub.qgis.org/projects/quantum-gis/wiki/DownloadFr#Installateur-R%C3%A9seau-OSGeo4W

2) Lancer l'installateur OSGeo4W et choisir l'installation avancée : osgeo4w-01.png

3) Utiliser l'installation par internet : osgeo4w-02.png

4) Sélectionner la racine pour l'installation des éléments d'OSGeo4W et préférer l'option d'accessibilité à tous les utilisateurs : osgeo4w-03.png

5) Sélectionner la racine des paquets locaux : osgeo4w-04.png

6) Préciser le type de connexion internet (via un proxy ou non) : osgeo4w-05.png

7) Sélectionner dans 'Desktop' le paquet 'QGIS-full' : osgeo4w-06.png

8) Sélectionner dans 'Web' le paquet 'QGIS-server' : osgeo4w-07.png

9) Sélectioner dans 'Lib' le paquet 'fcgi' : osgeo4w-08.png

10) Lancer et terminer l'installation.

A cette étape tout ce qui est nécessaire à LizMap est installé sur votre machine.
Les étapes suivantes consistent à configurer le serveur, installer LizMap et de configurer LizMap.

11) Afin de vérifier que le serveur est bien installé ouvrir dans le navigateur l'adresse 'http://localhost'; si rien ne s'affiche c'est que l'installation n'a pas réussi.

12) Cliquer sur le lien 'phpinfo' de la page d'accueil du serveur apache d'OSGeo4W. Cette page permet de vérifier la configuration de votre serveur. Vous devriez y trouver des informations sur cgi-fcgi, PDO et PDO_sqlite mais pas sur CURL ni GD dont dépend LizMap. osgeo4w-09.png osgeo4w-10.png

13) Ouvrir le fichier C:\OSGeo4W\bin\PHP.ini et dé-commenter l'extension curl et gd2 : osgeo4w-11.png

14) La modification du fichier C:\OSGeo4W\bin\PHP.ini afin d'activer CURL et GD dans PHP, oblige à redémarrer le serveur apache. Pour ce faire, cliquer dans le menu principal de windows sur le moniteur apache 'Tous les programmes > OSGeo4W > Apache > OSGeo4W-Apache-Monitor'. osgeo4w-12.png

15) Cliquer sur le moniteur apache qui se trouve parmi les icônes cachées de la barre des tâches (en bas à droite) et sur 'Restart'. osgeo4w-13.png

16) Dans le navigateur web, recharger la page 'phpinfo'. Vous devriez y trouver une section CURL et GD. osgeo4w-14.png

17) Télécharger LizMap. Dans la documentation d'installation, se trouve une ligne de commande 'wget'; celle-ci vous indique comment construire l'url de téléchargement de LizMap : osgeo4w-15.png Ce qui donne ici : http://demo.3liz.com/download/lizmap-web-client-2.2.0.zip

18) Décompresser LizMap dans 'C:\OSGeo4W\apache\htdocs\lizmap' : osgeo4w-16.png

19) Tester si LizMap est bien installé en ouvrant dans le navigateur l'adresse 'http://localhost/lizmap/lizmap-web-client/2.2.0/lizmap/www'. Vous devriez y voir s'afficher le projet "Montpellier" fourni avec LizMap et configurer pour être visible par tous. Pour pouvoir consulter les cartes, il va falloir configurer LizMap.

20) Comme indiqué dans la documentation d'installation de LizMap, ouvrir l'adresse 'http://localhost/lizmap/lizmap-web-client/2.2.0/lizmap/www/admin.php' et se connecter avec le login / mot de passe : 'admin/admin'.

21) Cliquer sur 'Configuration LizMap' puis sur modifier dans la section Services afin de préciser l'url de votre QGIS-Server.

22) Remplacer l'url du serveur WMS par 'http://127.0.0.1/qgis/qgis_mapserv.fcgi.exe' et enregistrer : osgeo4w-17.png

23) Afin de s'assurer que la configuration a bien réussi, cliquer sur 'Liste des projets' en haut. Vous devriez avoir accès à deux cartes puisque vous êtes authentifié comme administrateur. Cliquer sur l'une des cartes. Si la configuration est bonne vous devriez visualiser la carte, et donc être en possession d'une version de LizMap prête pour vos cartes.

Pour la configuration de LizMap je vous conseille de lire la documentation : http://hub.qgis.org/wiki/lizmapwebclient/Installation_fr

Tout retour est le bienvenue, et bon tests.

jeudi 13 septembre 2012

Publication de LizMap Web Client Version 2.0.0

3Liz est fière de vous annoncer la publication de la version 2.0.0 de LizMap Web Client.

Cette nouvelle version de la partie Web de notre solution LizMap apporte de nombreuses fonctionnalités :

  • Un back-office pour gérer la configuration de LizMap
  • Un back-office pour gérer les droits d'accès
  • Une nouvelle interface cartographique
  • Une page listant les cartes accessibles à l'utilisateur (anonyme ou authentifier)
  • Un système de cache des images
  • la mise en place d'un système de thème

Nous en avons profiter pour ajouter une fonctionnalité au Plugin LizMap :

  • définir pour chaque couche le format des images ce qui peut permettre de réduire la taille du cache

Sans risque pour la compatibilité des versions.

Cette nouvelle version fut aussi l'occasion d'effectuer une monté de version des modules de bases :

  • Jelix 1.3.4 : framework PHP5 qui propulse le back et le front de LizMap Web Client
  • OpenLayers 2.12 : pour la cartographie
  • jQuery 1.8 : pour toutes les interfaces
  • jQuery-ui 1.8.23 : pour l'interface cartographique
  • Bootstrap 2.1 : pour toutes les interfaces

Vous trouverez toute la documentation nécessaire sur la plateforme de QGIS :

Vous pouvez aussi nous contacter pour :

  • l'hébergement
  • l'installation
  • la formation
  • la création de thèmes
  • ou le développement de nouvelles fonctionnalités

lundi 10 septembre 2012

Le Data Tuesday de Septembre avec 3Liz pour Cartographie et Géolocalisation

Le premier Data Tuesday de l’année sera consacré au thème : Cartographie et Géolocalisation, et sera hébergé par l’IGN.

Au programme, plusieurs sociétés et organisations interviendront parmi lesquelles :

  • L’IGN
  • OpenStreetMap
  • la Ratp
  • Bing Maps
  • Capgémini

et :

  • 3Liz

Retrouvez nous le mardi 18 septembre à 18h30 à l’Institut Géographique National, 4 avenue Pasteur à Saint-Mandé, Métro Saint-Mandé ou Bérault (Ligne 1). Présentations suivies d’un cocktail.

Vous pouvez vous Inscrire en ligne ici

Pour ceux qui ne connaitraient pas, petite présentation des Data Tuesday :

Les Data Tuesday ont été lancés par trois startups (Captain Dash, Data Publica et MFG Labs). Les données (data) sont une tendance lourde de la décennie 2010, regroupant les problématiques de Big Data, de DataViz et d’Open Data.

L’existence d’un éco-système riche et en plein développement ainsi que le rapide développement de la technologie, des applications et des nouveaux modèles économiques justifient l’organisation d’une rencontre périodique des acteurs de ce domaine pour en accompagner la croissance.

Les trois startups Data Publica, CaptainDash et MFG Labs sont pionnières de cet espace et ont pris l’initiative de la création d’un événement mensuel qui servira de point de ralliement et d’échange à l’ensemble des acteurs. .

jeudi 19 juillet 2012

OpenData PACA, OCSOL, QGIS, LibreOffice et LizMap

Evolution de la caractérisation de l'occupation du sol

Données OCSOL PACA 1999 et 2006

La région Provence Alpes Côte d'Azur (PACA), qui a ouvert son portail OpenData, a mis à disposition les données d'occupation du sol de 1999 et 2006, élaborées à partir d'images satellitaires Landsat 7 ETM et selon une méthode commune. Conjointement à ces données vecteurs, une charte graphique OCSOL est mise à disposition. Nous avons utilisé cette charte pour caractériser les différentes catégories d'éléments structurant les 2 sources de données.

Les résultats sont les suivants :

  • Pour les données OCSOL 1999

OCSOL PACA 1999

  • Pour les données OCSOL 2006

OCSOL PACA 2006

Données comparatives OCSOL PACA : 1999 et 2006

Accompagnant les données OCSOL 1999 et 2006, la région PACA met aussi à disposition dans le cadre de son portail OpenData l'Évolution de l'Occupation du sol en PACA entre 1999 et 2006.

Avant de s'intéresser à la représentation graphique de cette comparaison, nous nous sommes tout d'abord intéressés à l'extraction de l'information à traiter. En effet, le fichier ".dbf", base de données qui contient les attributs des objets de la source de données vecteurs, présentait les données qui nous intéressaient pour cette comparaison dans une seule colonne, comme le montre l'illustration suivante : Evolution de l'OCSOL PACA

Nous avons alors traité cette information afin de différencier les objets représentant une évolution de l'occupation des sols entre 1999 et 2006. Pour ce faire nous avons ouvert le fichier ".dbf" avec LibreOffice, pour dans un premier temps, diviser cette unique colonne en deux. Nous avons ensuite effectué les étapes suivantes :

  1. Nous avons copié le contenu de la colonne dans un éditeur de texte ;
  2. Nous avons effectué l'opération rechercher le tiret inférieur "_" pour le remplacer par le point virgule ";" pour tous les éléments;
  3. Nous avons copié le résultat ;
  4. Nous sommes ensuite revenus sur le fichier .dbf pour y coller le résultat. Au moment d'insérer les lignes dans le fichier, LibreOffice a demandé quel était l'élément de séparation des données. Nous avons indiqué le point-virgule ";" et il a collé dans deux colonnes distinctes

chaque valeur séparée par un ";" : Evolution OCSOL séparation des valeurs

Pour faire ressortir l'information de différence lorsqu'elle existe, entre les données de 1999 et celles de 2006, nous avons choisi de créer une dernière colonne pour accueillir le résultat du calcul logique suivant :

si(A1=B1;"0";"1")

qui signifie : si ( donnee1999 = donnee2006 ; alors le résultat = 0 ; sinon il = 1)

Pour la mer, nous avons utilisé ce même calcul, avec une demande de résultat différent, pour faire ressortir l'élément : si ( donnee1999 = donnee2006 ; alors le résultat = 3)

Voici le résultat de ce calcul : Evolution OCSOL extraction de différence

Ce type de classification nous a permis de déterminer 3 postes de légende :

  1. Catégorie OCSOL inchangée ["0"] ;
  2. Catégorie OCSOL modifiée ["1"] ;
  3. Mer méditerranée ["3"].

Nous avons appliqué la symbologie "catégorisée" proposée par QGIS en définissant deux tonalités contrastantes pour les postes 1 et 2, en privilégiant une couleur manifeste pour le poste 2 : Couleur Evolution OCSOl PACA

Voici les résultats cartographiques : Comparaison des cartes

Publication sur le Web avec LizMap

Enfin, afin que tout le monde puisse profiter de cette réalisation, nous avons publié ces données avec la charte graphique appliquée. Nous avons tout de même dû modifier la mise en forme graphique des données d'évolutions.

Pour la publication Web, nous avons décidé de ne conserver que les objets vectoriels qui présentaient une évolution de l'occupation du sol entre 1999 et 2006. Une fois cela fait nous avons changé leur représentation en dessinant le contour et en remplissant la surface de hachure noir. Il est ainsi facile d'identifier les zones ayant évolué et d'observer la classe d'occupation 1999 ou 2006.

Le résultat est accessible ici :
http://demo.3liz.com/lizmap/index.php/view/map?repository=opendata&project=paca_ocsol

mardi 17 juillet 2012

Les Tuiles OpenStreetMap dans QGIS

Comment visualiser directement le fond OpenStreetMap dans Qgis

OpenStreetMap met ses tuiles à disposition via le protocole TMS (Tile Map Service : http://en.wikipedia.org/wiki/Tile_M... ). Il est aussi possible d'utiliser ce protocole pour récupérer des tuiles Mapquest ou Google Maps. TMS est un protocole plus simple que le WMS (Web Map Feature), et est beaucoup utilisé dans les applications cartographiques web via les librairies OpenLayers ou Leaflet (qui le gèrent en natif).

En tant que contributeur OpenStreetMap et Qgis, j'ai été assez gêné de ne pas pouvoir utiliser simplement les tuiles OpenStreetMap comme un fond référentiel dans mes projets Qgis. Il existe bien un plugin qui aide l'utilisateur à récupérer puis afficher les tuiles, mais je cherchais une solution plus simple. C'est pourquoi j'ai regardé naturellement la documentation de la librairie Gdal. Depuis la version 1.7.0, Gdal sait utiliser le protocole TMS. La page de documentation http://www.gdal.org/frmt_wms.html est très complète. La seule chose à faire est de copier le texte suivant dans un fichier et de l'enregistrer sur votre ordinateur, par exemple en openstreetmap_mapnik.xml


<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://tile.openstreetmap.org/${z}/${x}/${y}.png</ServerUrl>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>18</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:900913</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <Cache />
</GDAL_WMS>

Une fois ce fichier enregistré, il suffit de l'ouvrir avec Qgis comme un simple fichier raster, via le menu Couche->Ajouter une couche raster. Et c'est tout ! Gdal va récupérer les tuiles OSM qui correspondent à votre emprise spatiale et Qgis va afficher l'assemblage.

Si vous avez quelques problèmes pour voir la carte OSM, vous pouvez modifier les propriétés de votre projet. Dans les options du projet, choisissez EPSG:900913 comme projection, et activez la reprojection à la volée. Ensuite, vous pouvez ajouter une de vos couches vecteur que vous connaissez bien, et zoomer dessus. Le fond OSM devrait s'afficher.

Certaines petites choses pour bien en profiter:

  • Les tuiles OSM sont fournies dans la projection Mercator. Il ne faut donc pas oublier d'utiliser cette projection dans votre projet, et de demander la reprojection à la volée de vos couches métier pour s'assurer d'un bon affichage d'OSM
  • Gdal créé un répertoire gdalwmscache à la racine de votre répertoire personnel. Toutes les tuiles téléchargées sont stockées dans ce répertoire, ce qui permet à Gdal de ne pas redemander les tuiles qui ont déjà été récupérées. Ceci est une bonne pratique, car cela permet de ne pas surcharger le serveur OSM sans raison : Gdal met en cache les tuiles. Néanmoins, si vous voulez avoir des tuiles OSM à jour, il vous faudra supprimer le contenu de ce dossier de temps en temps.
  • Comme son nom l'indique, le TMS est un protocole qui donne accès à des tuiles. Les images sont donc produites par le serveur OSM pour des échelles prédéfinies, sur lesquelles nous n'avons aucun levier. Pour éviter de visualiser une carte OSM un peu floue ou pixelisée dans Qgis, il faut utiliser les échelles d'OSM. Sinon Qgis agrandira ou diminuera les images pour respecter votre emprise, et cela peut beaucoup nuire à la lisibilité du fond OSM. Voici ci dessous les échelles approximatives qu'il faut utiliser :
0	591659030
1	295829515
2	147914757
3	73957378
4	36978689
5	18489344
6	9244672
7	4622336
8	2311168
9	1155584
10	577792
11	288896
12	144448
13	72224
14	36112
15	18056
16	9028
17	4514
18	2257

Une liste déroulante contenant des échelles prédéfinies (1/5000, 1/10000, etc.) est maintenant disponible dans Qgis depuis la version 1.8, en bas à droite de la carte. Cela permet de zoomer facilement à une échelle prédéterminée. Ce serait bien de pouvoir définir ses propres échelles pour cette liste, projet par projet. C'est pourquoi j'ai proposé un patch pour ajouter cette fonctionnalité dans Qgis : http://hub.qgis.org/issues/5561 . Cette fonctionnalité a été complétée récemment par Alexander Bruy et sera bientôt disponible dans la branche master de Qgis. La prochaine version de Qgis permettra donc à chacun de définir les échelles utilisées par OpenStreetMap dans le projet Qgis.

Une dernière astuce : dans Qgis, il est possible de définir le facteur de zoom à utiliser lorsqu'on utilise la molette de la souris. Si vous utiliser la valeur 2 (celle par défaut), vous pouvez passer d'une échelle OSM à une autre simplement en utilisant la molette de la souris (sauf problèmes dus aux arrondis de la liste d'échelle donnée ci-dessus)

Vous pouvez maintenant utiliser OpenStreetMap directement dans Qgis comme un fond référentiel ! Je vous souhaite une bonne cartographie libre !

Michael Douchin alias kimaidou

OpenStreetMap Tiles in QGIS

How to display OpenStreetMap data tiles with no plugin inside Qgis

TMS (Tiled Map Service : http://en.wikipedia.org/wiki/Tile_Map_Service) is the protocol used by OpenStreetMap server to provide access to the tiles. It is also possible to use this protocol to retrieve Google Maps or Mapquest tiles too. TMS is much more simple as WMS, and is a widly used in web applications via OpenLayers or Leaflet. This is a common protocol for webmappers.

I was a bit frustrated not to be able to simply load OpenStreetMap tiles in my prefered GIS desktop application, Qgis. There is a plugin which helps to get tiles from OpenStreetMap, but I do not find it simple enough for me. So I started looking at Gdal. Qgis uses Gdal as a generic driver to read and write raster. Since Gdal 1.7.0, support for TMS has been added. Every Qgis compiled with Gdal 1.7 or higher can therefore read this format directly. The Gdal documentation ( http://www.gdal.org/frmt_wms.html ) is very helpful. Basically, the only thing you have to do is to create a simple XML file with the following content :

<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://tile.openstreetmap.org/${z}/${x}/${y}.png</ServerUrl>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>18</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:900913</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <Cache />
</GDAL_WMS>

and save it as openstreetmap_mapnik.xml somewhere in your file system.

You can now simply open Qgis, then use the menu Add a raster layer, and choose the XML file you have just saved. And this is it ! Gdal gets the tiles for you and Qgis display them smoothly. If you have problems to zoom to the correct extent, you can set your project spatial system reference to EPSG:900913, activate on-the-fly reprojection, and add a vector file you know well. The zoom to your vector extent, and then open the XML file as a raster.

Some small issues remain:

  • OSM tiles are shiped in Mercator, so I usually ask Qgis to dynamically reproject my data into Mercator whenever I want to use OSM as a base layer.
  • Gdal creates a gdalwmscache folder in your home directory . Downloaded tiles are stored here and Gdal uses this folder as a cache (which is good, because you won't ask the same tile twice, which will give OSM server some rest). So if you want to refresh old OSM tiles, you have to manually remove the content of this folder some time to time.
  • TMS is a tiles service. So the tiles come in predefined scales. The scales are defined by the provider (Google as its own, OSM too, etc.). If you do not want to see OSM data with a blur effect, you must zoom to one of OSM predefined scale. Otherwise Qgis will show warped OSM tiles. Here are the approximated scales you need to use to display your data correctly :
0	591659030
1	295829515
2	147914757
3	73957378
4	36978689
5	18489344
6	9244672
7	4622336
8	2311168
9	1155584
10	577792
11	288896
12	144448
13	72224
14	36112
15	18056
16	9028
17	4514
18	2257

Since Qgis 1.8, there is a scale combo box in the right bottom of the map, alowing to use predefined scales. It could be great to have the above list of OSM scales instead of the Qgis scales. This is why I proposed a patch to let the use defined a scales list for each project. See : http://hub.qgis.org/issues/5561 . This feature is beeing completed by Alexander Bruy and will be in Qgis master branch soon. This means the next version of Qgis will give you the ability to define and save OSM scales, which will help a lot.

Last hint : in Qgis, you can define the zoom factor to use when zooming in or out with the mouse wheel. If you use the number 2, you will be able to zoom in or out and stay in OSM scales (approximatively).

Now you can easily use OpenStreetMap as a base layer for your Qgis projects ! Happy opensource mapping !

Michael Douchin aka kimaidou

mardi 12 juin 2012

Et Apple utilisa TomTom et non OSM

Suite à la présentation du nouvel iPhoto, il y a plusieurs mois, la rumeur fesant d'OpenStreetMap le fournisseur d'Apple avait jailli sur le Web. Cela n'a pas été confirmé directement par Apple. Par contre l'attribution a été modifié pour indiquer que des données OpenStreetMap était utilisé dans la carto de iPhoto (Welcome, Apple!).

L'étape suivante aurait pu être la création d'une application Apple Maps basée sur OpenStreetMap mais ce sera TomTom.

Hier, Apple a présenté les évolutions de son OS pour matériel mobile, iOS. Au cours de cette grande messe, Apple a présenté son application cartographique qui remplacera Google Maps. Les fonctionnalités principales sont :

  • la navigation (turn-by-turn)
  • un système d'info-traffic par crowd-sourcing
  • l'intégration de Siri (système de commande vocale)
  • une visualisation 3D des bâtiments (en europe seulement Copenhague mais bientôt Paris et d'autres villes)

Cette nouvelle application se devait d'être au niveau de Google Maps en terme de fonctionnalité, de justifier l'acquisition de société spécialisée dans la cartographie, et de permettre une meilleur intégration à iOS.

L'abandon d'OpenStreetMap, si nous pouvons appeler cela un abandon, est principalement dû à l'hétérogénéité des données sur l'ensemble des terres émergés. Même si le projet couvre la base australe en terre Adélie et que des pays comme l'Allemagne sont plutôt bien décrit, TomTom propose une couverture beaucoup plus homogène et dédié à la voiture.

TomTom est donc d'après les attributions de l'application le fournisseur principale. D'autres fournisseurs de données sont tout de même utilisé dont OpenStreetMap. D'ailleurs y a-t-il un lien entre l'utilisation par Apple de TomTom et le concours Map Paradize de TomTom pour cartographié certaines îles cet été ?

Liens :

lundi 11 juin 2012

OpenStreetMap dans le Dessous Des Cartes

Le Dessous Des Cartes (Mit Offenen Karten') est une émission de la chaîne franco-allemande Arte. Elle est présentée par Jean-Christophe Victor, elle a pour particularité de s'appuyer sur les cartes pour présenter des problématiques géopolitiques.

En janvier 2011, une émission intitulé "Tous cartographe ?" a été diffusé. Cette émission présentait le Géoportail et la problématique de la diffusion des cartes.

Symbole de pouvoir et de puissance dans le passé, les cartes géographiques connaissent aujourd’hui une véritable démocratisation. Quelles sont les applications actuelles et les enjeux de cette évolution ? Le Dessous des Cartes propose un voyage dans l’univers du Géoportail, initiative française de l’IGN à la vocation citoyenne et aux applications pédagogiques.

Le titre de l'émission avait laissé croire au contributeur OpenStreetMap qu'elle aborderait la problématique de la génération de données géographiques par tous ou crowdsourcing géographique. Mais ce n'était que partie remise.

En décembre 2011, Gaël Musquet alias RatZilla$, participait avec Jean-Christophe Victor à une conférence débat au Conseil Régional Nord Pas de Calais. Le thème de cette conférence était "Cartographier notre futur ? Les cartes, outils citoyens, pédagogiques et prospectifs".

A la fin du débat, Jean-Christophe Victor a annoncé un Dessous Des Cartes spéciale OpenStreetMap au second trimestre 2012! Et ce devrait être fait demain mardi 12 juin 2012 à 22h05 avec l'émission "Cartographie 2.0" :

Depuis la conquête spatiale dans les années 1970, qui a permis à l’humanité de découvrir des images de notre planète vue du ciel, jusqu’au boom Internet de la dernière décennie, le XXe siècle a permis une révolution de grande ampleur dans le domaine de la cartographie.

Le Dessous des Cartes cherche à savoir comment ces avancées profitent de plus en plus au grand public, grâce notamment à la contribution de cartographes amateurs.

C'est d'ailleurs la première émission tagger : Open Street Map

jeudi 26 avril 2012

LizMap, l'OpenData et OpenStreetMap

LizMap est une solution complète de publication de cartes sur internet. Elle est basée sur le logiciel Quantum GIS (QGIS), un SIG bureautique, et son serveur cartographique QGIS Server.

LizMap est constituée de 2 élements complémentaires :

  • un plugin pour QGIS, qui permet de configurer ses cartes à destination de l'Internet,
  • une application web basée sur QGIS Server, qui génère les cartes dynamiques avec les fonctionnalités de zoom, d'interrogation des couches de données géographiques, de visualisation de la légende et de localisation.

Le développement de LizMap a été en partie initié par la volonté de publier facilement les données des portails OpenData.

Lors de la publication par Paris de son projet OpenData, nous avons exploité chez 3Liz les données mises à disposition pour tester QGIS Server. Ce test s'est avéré concluant et nous en avons profité pour publier une première application de visualisation des données géographiques de l'OpenData de Paris, consultable sous ce lien : http://demo.3liz.fr/opendataparis

Nous avons ensuite cherché à nous faciliter le travail de publication de cartes sur internet basées sur des données OpenData. Nous avons donc souhaité développer LizMap .

Une première version de LizMap a été libérée et mise à disposition sur l'application de gestion de projet hébergée par le projet QGIS :

Ensuite, nous avons publié plusieurs applications web cartographiques basées sur des données OpenData à l'aide de LizMap :

Dans toutes ces applications, nous avons choisi d'utiliser des fonds de carte basés sur des données OSM (OpenStreetMap). Nous employons le rendu proposé par le projet OpenStreetMap et par la société MapQuest.

Il est ainsi possible de comparer les données OpenData et OSM.

Mais il est aussi possible d'utiliser les données OpenData pour mettre à jour les données OpenStreetMap grâce au Web Service OGC WMS et à JOSM, logiciel d'édition dédié à OSM.

Dans JOSM, il est possible de définir ses propres fonds images issus de services WMS. Cette opération se fait via la fenêtre de Préférences. Dans l'onglet "Paramètres d'imagerie", il est possible d'"ajouter un nouveau fournisseur" qui sera construit à partir d'un WMS. C'est ainsi que l'on peut utiliser :

  • Les zones 30 à Toulouse http://demo.3liz.com/lizmap/index.php/lizmap/service/?repository=opendata&project=toulouse
  • Les passages piétons à Montpellier http://demo.3liz.com/lizmap/index.php/lizmap/service/?repository=opendata&project=montpellier
  • Les Manades des Bouches du Rhônes http://demo.3liz.com/lizmap/index.php/lizmap/service/?repository=opendata&project=cg13

ou qu'ont été ajouté :

  • Les caméras de vidéo surveillance de Montpellier
  • Les fontaines d'eau potable publiques de Montpellier

Bien sûr l'utilisation des ces services est à coupler à une connaissance terrain afin de rester aussi précis que peut l'être OSM.

La publication prochaine d'une nouvelle version de QGIS apportera son lot d'évolutions pour QGIS Server et potentiellement pour LizMap.

jeudi 12 avril 2012

L'OpenData aux Rencontres SIG La Lettre 2012

Cette année les Rencontres SIG La Lettre avaient lieu début avril du 3 au 5 et comme chaque année à l'ENSG. Le mercredi 4 avril fut consacré à l'OpenData, le matin, et au crowdsourcing, l'après-midi, ce fut donc la principale journée de rencontres et de discussion autour de l'OpenData et d'OpenStreetMap.

De plus l'organisation des Rencontres SIG La Lettre avait décidé de monter un stand OpenData, pour permettre au delà des présentations d'avoir un lieu de rencontre et de discussion autour de l'OpenData. Ce stand fut animé par des structures ayant exploité des sources de l'OpenData (Codega Studio, Mobigis, Handimap, 3Liz) mais aussi par les membres d'OpenStreetMap France.

rsigll2012_opendata

Comme vous pouvez le constater sur la photo ci-dessus, le stand semblait plus consacré à OpenStreetMap qu'à l'OpenData, pourtant de nombreuses discussion autour de l'OpenData eurent lieu sur ce stand, et la photo a été prise le jeudi 5 avril.

Mais avant de parler d'OpenData, commençons par OpenStreetMap (OSM).

La première impression est que le projet est de plus en plus connu, ou plutôt que de plus en plus de personne en ont entendu parler, mais dans les fait peu connaissent vraiment le projet. OSM reste pour beaucoup un service cartographique à la Google Maps. D'où la surprise lorsque l'on présente des réalisations comme la carte de cyclabilité du centre de Lille ou la carte touristique de la ville d'Orange, mais aussi l'intérêt d'un service comme LizWatch ou OSMTransport.
Par contre ceux qui avaient eu le temps de se documenter sur OSM sont venu sur le stand pour obtenir des précisions sur les modèles de relation et les outils permettant d'exploiter les données OSM.
Enfin l'atelier, Master Class, OpenStreetMap intitulé Utilisation des données OSM dans un SIG a fait salle comble avec une majorité de personnes découvrant le projet.

C

C

Cette année fut donc un bon cru avec de nombreux contributeurs présents :

  • Michaël Douchin (kimaidou)
  • Emilie Laffray (melaskia)
  • Nicolas Moyroud
  • Chritian Quest
  • Jean-Louis Zimmermann (zimmy)

On a même pu voir passer et saluer partir-en-vtt.

Un bon cru aussi parce qu'OSM et OpenData font bon ménage.

Sinon au cours de ces rencontres de nombreuses questions ont été soulevées :

  • Pourquoi faire de l'OpenData ?
  • Faut-il mettre en place des APIs ?
  • Quels interactions avec OSM ?
  • Quels données mettre à disposition sous licence libre ?

Les réponses ne sont pas toujours évidentes mais mérites d'être posées.

mardi 3 avril 2012

Nouveau réseau TaM dans Boussole

Mandarine, Modulaweb et 3liz ont le plaisir de vous annoncer la mise en ligne dès aujourd'hui de Boussole nouvelle version, qui prend en compte le nouveau réseau TaM.

Le projet Boussole est porté par l'association Mandarine. Le réseau a été construit par 3liz, grâce aux données mises à jour par la communauté OpenStreetMap. Modulaweb a réalisé l'interface et affiné le calcul d'itinéraire. Le projet Boussole est soutenu, entre autres, par la Ville de Montpellier et Alter'Incub.

Boussole vous permet dès maintenant de calculer vos itinéraires sur le réseau TaM tels qu'ils seront possibles à compter du 7 avril 2012 avec la mise en route des lignes 3 et 4 du tramway et les modifications annoncées sur les lignes de bus (le calcul d'itinéraires ancienne version restera bien sûr accessible au moins jusqu'au 7 avril). Boussole vous permet également de choisir comme destinations les lieux (établissements sportifs, maison pour tous, écoles, etc.) fournis par la Ville de Montpellier dans le cadre de Montpellier Territoire Numérique, volet Open Data.

Les emplacements des nouveaux arrêts de bus et stations de tram ont été déterminés à la fois d'après les informations diffusées par TaM et grâce à des vérifications sur le terrain. Là où des incertitudes subsistent quant à certaines lignes de bus, nous avons mis en ligne le tracé et les emplacements les plus probables. Boussole sera mis à jour dès la semaine prochaine, quand nous pourrons examiner le réseau "en vrai".

Montpellier Agglomération nous donne rendez-vous vendredi 6 à 17h sur la place de la Comédie pour l'inauguration des lignes 3 et 4 de tramway. La fête se poursuivra ensuite au pied de la Tour de la Babotte, sur la nouvelle station Observatoire. Nous y serons !

lundi 2 avril 2012

3liz aux Rencontres SIG La Lettre 2012

Demain à l'ENSG commence les Rencontres SIG La Lettre 2012. Aux cours de ces rencontres vous pourrez assister à des conférences sur :

Mais aussi à des Master Class :

  • QGIS (mardi)
  • PostGIS (mercredi)
  • OpenStreetMap (jeudi)

Au cours de ces rencontres, nous interviendrons lors de la session sur l'ergonomie :

  • WebCarto et WebSIG : des ergonomies poussées pour des utilisateurs ciblés au cours de laquelle nous reviendrons avec Alisé Géomatique sur le travail réalisé pour le CBNM et le PNR du Ballons des Vosges.

Nous animerons le Master Class OpenStreetMap :

  • Utilisations des données OpenStreetMap au sein du SIG au cours du quel vous pourrez découvrir les méthodes et utilisations possibles des données OpenStreetMap au sein d'un SIG (filtrage, base de données, fond de plan)

Enfin lors de la session : les territoires sous observation], la ville d'Orange présentera l'utilisation des données OpenStreetMap par différents services dont le service du développement économique qui exploite LizWatch pour observer l'évolution du tissu économique du territoire.

Vous pourrez donc nous rencontrez dans les couloirs des rencontres mais aussi sur le stand OpenData pour lequel nous nous sommes engagé avec d'autres structures. Cela pourra être l'occasion de discuter :

  • OpenData : licence, format, qualité
  • OpenStreetMap : licence, utilisation
  • PostGIS 2 : évolution, raster, topologie
  • QGIS 1.8 : évolution, configuration, WFS server
  • LizMap, LizWatch, LizPrint, etc

mardi 13 mars 2012

Google n'est pas l'ennemi (d'openStreetMap)

Traduction du billet de Frederik Ramm sur osm.gryph.de

OpenStreetMap est souvent perçu par les observateurs extérieurs comme la Némésis de Google. Ou peut-être, sans délire de grandeur, un compétiteur. Lorsque je dois présenter OpenStreetMap en un seul paragraphe, j'utilise très souvent l'expression "à la différence de, par exemple, Google Maps". Et il est probable que cette expression puisse faire croire aux OpenStreetMapers que google est l'ennemi.

Mais l'est-il-vraiment ?

Nous avons toujours eu de bon rapports avec Google. Ed Parsons, Spécialiste du géospatiale chez google, et Steve Coast se connaissent depuis un certain temps ; Steve a fondé OpenStreetMap après avoir été frustré par la politique de licence de l'agence national cartographique britannique, l'Ordnance Survey. A cette époque Ed était le directeur technique de l'Ordnance Survey, et devait fréquemment défendre le modèle économique de l'Ordnance Survey face aux nouveaux entrants tel que nous. (Certaines sources affirment qu'il était tout autant frustré que nous vis à vis de la politique de l'Ordnance Survey.) En 2006, Steve a d'ailleurs réalisé une interview d'Ed pour le blog OpenGeoData. En 2007, Ed (maintenant chez Google) a fait le discours d'ouverture du State Of The Map (SOTM) de Manchester, et il fut l'invité et le conférencier de nombreuses autres de nos conférences, il a d'ailleurs écrit suite au SOTM 2011 "Très bon week-end au State Of The Map, OpenStreetMap semble être un projet très mature maintenant".

Google a sponsorisé des SOTM, nous a octroyé des places chaque année de puis 2008 au sein de son programme Summer of Code, et Google a même participé à notre premier tour de table pour l'équipement serveur en 2009 en tant que plus gros donateur avec 5 000 £ - snas même que nous ayons eu besoin de lui demander.

Mais pas seulement, technologiquement, nous profitons du sillon tracé tous les jours par Google. C'est grâce à Google si nous pouvons utiliser OpenLayers pour créer une carte dynamique au sein d'une page Web que tout le monde peut instantanément consulter. La projection que nous utilisons tous pour couper les nœuds gordiens des SIG et faire du Web mapping pragmatique, c'est Google. Le format de données peu encombrant que nous utilisant de plus en plus pour nos données géographiques est basé sur le format Protocol Buffer (pbf) de Google. Et la liste est encore longue. Je ne pense pas qu'OpenStreetMap ait plus profité du support d'une autre société de façon directe ou indirecte que celui de Google. Personnellement, j'ai pus décrire facilement OpenStreetmap grâce aux comparaisons avec Google Maps : "C'est comme Google Maps, sauf que tout le monde peut le modifier, et que vous pouvez télécharger et ré-utiliser les données."

Il y eu quelques cas dans le passé d'intégration de données OpenStreetMap à Google Maps, qui ont généralement été résolus sans qu'il y ai trop de bruit grâce à une communication rapide et conviviale avec la direction, et pour ce que j'ai pus voir, ces problèmes provenait toujours de fournisseurs ou d'utilisateurs de MapMaker impatients. Inversement, depuis le début et encore maintenant des contributeurs à OpenStreetMap franchissent la ligne et créent de la données à partir de Google Maps, données que nous supprimons rapidement sans que, à ma connaissance, nous n'ayons jamais reçu de menaces des avocats de Google.

Je ne suis pas un infiltré de Google mais je pense qu'il est juste de dire que leur ordre du jour est d'aider, et de surveiller, la circulation de l'information sur internet, et ainsi récolter de nombreuses informations sur ce que les pré-Facebook appelle la "sphère privé" et ainsi vendre de la publicité. Google lit vos emails, non pas parce qu'ils sont dangereux, mais parce que vous avez choisi d'utiliser leur très bonne solution d'e-mail à laquelle vous avez accès gratuitement. Google lit même des documents internes à la Foundation OSM (OSMF) avant même que vous et moi n'y ayons accès (si c'est prévu) parce que l'OSMF utilise Google Docs. Je reconnais volontiers que je suis un peu effrayé de leur omniprésence et quasi-omniscience, mais cela n'en fait pas pour autant notre ennemi. Je suis sûr que Google aimerait distribuer les données OpenStreetMap et voir les gens les consommer, ce qu'il font déjà. Il semble que les termes de notre licence ne s'appliquaient pas à eu jusqu'à maintenant mais je ne peux pas guère les blâmer ; J'ai entendu dire, que d'autres grands acteurs ont des projets prêt à être lancé dès qu'OpenStreetMap aura changé de licence, car ils craignent l'actuelle CC-by-SA.

Nous avons approché Google à plusieurs reprises car nous aimerions utiliser leur imagerie aérienne, la couverture et de la qualité du service Google est souvent meilleure que ce que nous avons avec Bing, en vain. Leur ligne officielle est qu'ils n'ont pas de licence permettant d'obtenir des données à partir de cette imagerie, ce qui sonne un peu creux vis-à-vis des données issues de MapMaker - mais je suis prêt à leur donner le bénéfice du doute; qui peut dire quels sont les règlements obscurs qui ont été mis en place par les avocats en propriété intellectuelle. Leur imagerie "StreetView" nous serait également utile dans certains cas, et même si nous n'avons pas un OK franc et clair, nous avons pus utiliser dans certains cas particuliers ces images.

Nous n'essayons pas d'être "meilleur que Google Maps". Nous ne pourrons jamais l'être, nous manquons de conteneurs de matériels informatiques pour cela. Google a récemment fait les gros titres en indiquant qu'il allait faire payer son API cartographique pour les usages intensifs, déclenchant un léger mouvement switch2osm ; mais la vérité est que si vous voulez la qualité du service que vous obtenez à partir de Google, avec leur CDN, leur haute capacité de charge et leur redondance, à partir d'une configuration basée sur OpenStreetMap, vous ne pourrez pas l'obtenir pour moins chère. OpenStreetMap n'offrira jamais de service d'imagerie aérienne ou tout autre fonctionnalité considéré comme acquise par les utilisateurs de Google.

Ce qu'OpenStreetMap souhaite être, c'est une alternative aux données géographiques acquise par les gouvernement ou produite commercialement. C'est pourquoi nous sommes plus des concurrents de NavTeq ou TéléAltlas que de Google. Oui, Google est en train de produire ces propres données, mais seulement parce qu'ils ont souffert des mêmes règles qu'OpenStreetMap lorsqu'il a été lancé : l'abscence de données que l'ont peu acquérir pour un prix décent.

Deux de nos administrateurs de la Fondation OpenStreetMap, Steve Coast et Mikel Maron, ont dans le passé craché un peu de venin sur la direction générale de Google; il y eu des actes de vandalisme qui tous deux ont été reconnu par Google et pour lesquels il était complice ou tout du moins négligent, Mikel a alors utilisé son blog personnel pour fortement critiquer la stratégie de Google dans les pays en développement qu'il a perçu comme un affront au mouvement OpenData. Google a également récemment conclu un accord avec la Banque mondiale qui, si ils sont appliqués comme indiqué, irait à l'encontre de l'engagement de la Banque mondiale envers l'OpenData, ce qui entraina plus de critiques de Mikel et d'autres.

Google est une organisation comme toutes les autres organisations ; ils ne sont pas exemptés de la règle qui dit que si vous n'êtes pas vigilent, les dirigeants prêt à tout pour atteindre les sommets, quelque soit leur un agenda personnel ou la manière d'atteindre de tel ou tel objectif, choisiront toujours la manière permet de maximiser leur bonus, sans se soucier de ce qui est bon. Il est important que nous surveillons Google afin de lui des données des coup de coudes de temps en temps. Mais dans le grand schéma des chose, dans la grande enceinte du "les données produites par la foule dans un esprit de ruche à but mondiale et collective Contre les données cathédrales contrôlées par les gouvernements et le profit", Google est du même côté que nous. Plus encore, peut-être, que d'autres organisations qui rivalisent ingéniosité pour nous plaire.

vendredi 9 mars 2012

OpenStreetMap serait-il devenu crédible ?

Depuis fin janvier 2012, la fondation OpenStreetMap est dans une démarche de promotion auprès des entreprises utilisant Google Maps, switch2osm. Cette démarche est principalement due au changement des règles financières de Google Maps, Google ayant décidé fin 2011 d'appliquer enfin le paiement de son service et l'apparition de publicités.

Depuis cette date mais aussi avant des sociétés sont passées à OpenStreetMap comme base de données géographiques pour leur fond cartographique :

  • Nestoria : moteur de recherche immobilière
  • StreetEasy : Agence immobilière basée à New-York City
  • Fubra : Société de création de site Web
  • Flickr : Solution de partage de photos

Mais aussi :

Mais depuis Mercredi, et la présentation du nouvel iPad, il semblerait bien qu'Apple ait décidé d'utiliser les données OpenStreetMap en dehors des USA pour son application iPhoto. Serait ce le signe qu'OpenStreetMap est enfin crédible ?

Tout d'abord, il semble que l'aspect financier prime dans la prise de décision d'un changement. Mais, comme le montre certaines réactions aux changements 1 2 3 4 5 6 7 8, cela ne peut pas être suffisant.
Car OpenStreetMap ne propose pas le même service que Google Maps. Tout d'abord il n'y a pas d'imagerie aérienne. Ensuite la qualité des données est variable. Certaines zones sont très bien décrites voir mieux décrites que dans Google Maps, par contre d'autres sont des déserts, car la densité des contributeurs n'est pas homogène. Enfin la fondation OpenStreetMap ne garantit pas le service de tuile, il ne garantit que l'accès aux données. Cela signifie que tout changement pour un besoin important nécessite de s'appuyer sur une société tierce (CloudMade, MapBox, 3Liz, etc) ou de créer son propre système.
Par contre OpenStreetMap offre la possibilité de se réapproprier le service cartographique, de créer sa propre identité cartographique ; et toute entreprise qui rejoint le mouvement switch2osm démontre que Google Maps n'est pas la norme des services cartographiques.

Et donc Apple se serait appuyé sur les données d'OpenStreetMap pour créer son propre service cartographique mais cette utilisation n'est pas vraiment officielle car :

  • Apple n'a rien annoncé ;
  • La vérification a été faite par les contributeurs ;
  • Les données datent d'avril 2010 ;
  • Et même si la fondation OpenStreetMap se félicite de cette utilisation aucune ATTRIBUTION n'est présente au sein de l'application.

J'ai donc le même avis que la fondation OpenStreetMap car cela augmente la visibilité du projet, d'ailleurs le nombre de contributeurs a fortement augmenté depuis, mais tant qu'Apple n'aura pas fait de déclaration officielle ni qu'aucune ATTRIBUTION ne figurera dans iPhoto, je resterais sceptique.

Il n'y a qu'une chose qui me réjouit pour le moment de ce nouveau service cartographique, c'est que Google Maps ne soit plus la norme, si il l'a un jour été. Cela nous permet chez 3Liz d'être plus confiants dans la présentation d'OpenStreetMap et dans la possibilité de proposer des services cartographiques dédiés avec une identité cartographique unique pour le client.

Pour en savoir plus :

LizMap : Publier facilement des cartes web dynamiques

LizMap est une solution complète de publication de cartes sur internet. Elle est basée sur le logiciel Quantum GIS (QGIS), et son serveur cartographique QGIS Server.

LizMap est constituée de 2 élements complémentaires :

  • une application à installer sur un serveur : le client web LizMap, qui génère les cartes web dynamiques. Il a été réalisé autour de QGIS Server à l'aide du framework PHP5 Jelix, de jQuery et OpenLayers ;
  • un plugin python pour QGIS, qui permet de configurer ses cartes à partir de projets QGIS et de les synchroniser via FTP.

Cette première version de LizMap, disponible sur le hub QGIS, a été réalisée avec le soutien :

Concept

Nous avons conçu LizMap pour faciliter le travail de l'utilisateur. Nous pensons qu'il doit pouvoir se concentrer sur son métier, la représentation de données spatiales, et non devenir un programmeur avancé.

Tout le travail de construction, de configuration de la carte et de sémiologie se fait directement dans QGIS. L'utilisateur n'a pas de fichier de configuration à éditer, il utilise l'interface conviviale du plugin LizMap pour modifier les options générales de la carte et celles liées aux couches. Une fois son projet enregistré sous QGIS, il suffit de synchroniser de manière automatique les données entre le poste de travail et le serveur.

Le client web LizMap prend alors le relais pour construire automatiquement une carte identique à celle du projet QGIS. L'organisation des couches d'information et l'apparence sur l'interface web sont identiques à ceux du projet QGIS. Il est ainsi aisé pour un administrateur sans connaissances techniques liées au Web, de construire et de faire évoluer plusieurs cartes thématiques de manière visuelle via QGIS, depuis son ordinateur, avec un retour visuel immédiat de l'impact de ses choix.

Fonctionnement

Une interface Web basée sur du HTML/CSS/Javascript
Au lieu de concevoir l'interface Web seulement en JavaScript comme le propose certains frameworks, nous avons choisi de nous appuyer sur une base HTML, mise en forme avec du CSS et améliorer par du JavaScript. L'apparence de l'interface Web peut ainsi être facilement modifiée par les développeurs ou designers Web (couleurs, positionnement des fenêtres,etc.).

Des cartes interactives riches
Carte plein écran, arbre des couches avec légende intégrée, popup affichant les données des objets cartographiques, carte miniature de localisation, outils de navigation (zoom, déplacements, etc.).

Seuils de visibilité
Si une couche ou un groupe de couches a été défini comme invisible à une échelle donnée, il apparaîtra inactif et grisé (il est également possible de les masquer en modifiant la CSS).

Intitulés des couches
Dans le plugin LizMap à l'aide du champ "titre", il est aisé de donner un nom intelligible aux couches de la carte interactive et, parallèlement, de conserver le nom original de la couche dans le projet QGIS. Par exemple, une couche appelée "xy_arbre22" peut-être visualisée en ligne sous la dénomination "Arbres remarquables".

Regroupement de couches
Il est possible de définir l'affichage d'un groupe de couches sous QGIS comme couche unique dans l'application Web LizMap.

Définition des échelles de la carte
Il est possible de spécifier les échelles accessibles à l'utilisateur de la carte web (via une liste d'échelle définie ou une résolution minimum et maximum).

Mode aperçu de la carte
Si un projet local comporte un groupe de couches "Overview", celles-ci seront affichées sous forme d'une carte miniature nommée "aperçu" pour permettre à l'utilisateur de situer sa vue.

Fonds de plan optionnels
Si l'utilisateur ne dispose pas de fonds référentiels pour ses données, il lui est possible d'utiliser un ou plusieurs fonds Google ou OpenStreetMap.

Application multi-projets et multi-dépôts
Une seule application Web LizMap peut utiliser plusieurs projets conservés dans de multiples dossiers sur le serveur. Ceci doit-être défini lors de la configuration de l'application.

Synchronisation des données via FTP
Le plugin LizMap permet d'envoyer facilement tous les fichiers du projet sur le serveur (projet, données, configuration). Il utilise une synchronisation en mode "miroir", ce qui permet de n'envoyer que les fichiers qui ont été modifiés, afin d'économiser des ressources et du temps de transfert.

Utilisation possible de serveur de cache (Mapcache, Tilecache)
LizMap peut utiliser en option des couches de données qui auraient été mises en cache. Le plugin permet de préciser quelles couches sont mises en cache.

Quelques exemples

LizMap est utilisée par le PNR des Ballons des Vosges, afin de publier une version Web de la charte graphique de la carte du Parc. Cette version a été adaptée et mis en forme en fonction des demandes du PNR. La mise en œuvre de la publication a été réalisée en partenariat avec Alisé Géomatique qui, par ailleurs, exploite en interne LizMap, pour soumettre certains de ses résultats cartographiques.

Vous pouvez aussi consulter nos démonstrateurs :

Nous devrions d'ailleurs publier toutes nos réalisations autour de l'OpenData à l'aide de LizMap.

Le futur

Le projet LizMap ne fait que commencer et nous avons quelques évolutions en tête que nous souhaiterions réaliser. Par exemple, l'implémentation du WFS dans QGIS Server, et du WFS-T fait partie de ce plan d'amélioration. Donc nous souhaiterions :

  • Ajouter une fonctionnalité d'impression
  • Ajouter la gestion des droits d'accès aux cartes
  • Mieux gérer l'interrogation des données vectorielles
  • Ajouter la possibilité de définir un outil de zoom sur objet vectoriel
  • Ajouter un outil de requête et sélection d'objets vectoriels
  • etc...

Pour le moment aucun planning précis n'est défini, mais si certaines évolutions vous intéressent, nous pouvons en étudier un.

vendredi 2 mars 2012

Le WFS dans QGIS Server

Il y a un peu plus d'un an, un nouveau serveur cartographique a été publié par la communauté QGIS : QGIS Server. Le principe de ce serveur cartographique est d'exploiter le moteur de rendu de QGIS, de configurer son service à partir d'un projet QGIS et d'implémenter la dernière norme Web Map Service (WMS) de l'Open Geospatial Consortium (OGC) : la version 1.3.0. On peut donc facilement créer des services WMS à partir de QGIS.

Le projet QGIS propose aussi une interface cliente Web, le QGIS Web Client, développée à partir du framework Javascript GeoExt. Chez 3Liz nous avons décidé de développer notre propre solution avec un système de configuration complémentaire, LizMap. Elle est basée sur Jelix/HTML/Jquery/CSS.

Pour aller plus loin dans la création de cartes dynamiques sur le Web, nous avons décidé de développer l'implémentation de la norme Web Feature Service (WFS) version 1.0.0 de l'OGC dans QGIS Server. Cette norme décrit la façon d'accéder aux données vectorielles au travers du Web via le format GML2. Elle offre donc la possibilité de créer plus d'interaction avec l'utilisateur au sein d'une interface Web.

Nous avons ajouté le service WFS à QGIS Server, dont voici les différentes requêtes possibles via le paramètre REQUEST :

  • GetCapabilities qui liste les couches de données vectorielles accessibles au format XML ;
  • DescribeFeatureType qui fournit la liste des attributs d'une couche de données vectorielles au format XSD, XMLSCHEMA ;
  • GetFeature qui fournit les données vectorielles d'une couche au format GML2 (une norme de l'OGC basé sur XML), et GeoJSON, un format non prévu dans la norme WFS 1.0.0 mais plus léger que le GML2.

La requête GetFeature permet de filtrer les objets vectorielles à l'aide des paramètres suivants :

  • FEATUREID qui permet de retourner un seul objet via son ID ;
  • FILTER qui permet de passer un filtre au format Filter Encoding (FE), norme de l'OGC basé sur XML ;
  • BBOX qui permet de filtrer en fonction d'une emprise appelée Bounding Box.

Ces paramètres sont exclusifs, c'est à dire qu'il n'est possible d'en utiliser qu'un seul à la fois.

Enfin, il est possible de préciser la requête GetFeature à l'aide des paramètres suivants :

  • MAXFEATURES qui précise le nombre maximum d'objets vectoriels à renvoyer;
  • PROPERTYNAME qui précise les attributs, géométrie incluse, que l'on souhaite récupérer.

L'ensemble de ces ajouts sont disponibles au travers de 2 patchs :

Ces patchs ont été testés avec de nombreuses sources de données vectorielles, c'est à dire de nombreux types de géométries, à l'aide du plugin WFS de QGIS et d'OpenLayers pour le GeoJSON et le GML2; et ils ont été proposés à la communauté de développeurs de Qgis pour intégration, et sont en attente de validation : http://hub.qgis.org/issues/5094.

Nous prévoyons de continuer le développement afin de permettre l'édition de données via la norme Transactionnelle du WFS, WFS-T. Pour le moment aucun planning n'a été défini, mais si cette évolution vous intéresse, nous pouvons en étudier un.

vendredi 9 décembre 2011

LizWatch - Un outil cartographique de suivi des évolutions d'OpenStreetMap

OpenStreetMap (OSM) est une base de données en constante évolution, où chacun est invité à contribuer en ajoutant, modifiant ou supprimant des objets géographiques. Si certaines données sont visibles sur une carte, d' autres modifications sont plus difficiles à voir. En effet, les cartes produites par les moteurs de rendu proviennent d'un choix de représentation des données OSM. Comme il n'est pas possible de tout représenter sur une carte, au risque de la rendre illisible, certains objets et la plupart des "tags" ne sont pas visibles sur les cartes. En outre, s'il reste possible de surveiller manuellement les modifications réalisées dans une zone déterminée, via des outils dédiés, aucun outil open-source ne nous a paru suffisamment simple et intuitif pour aider les utilisateurs dans ce suivi.
C'est pourquoi nous avons créé LizWatch, une interface cartographique en ligne qui permet de consulter les changements effectués entre deux dates, en partenariat avec la ville d'Orange. Elle a soutenu une partie du développement de cet outil car il correspondait à leur besoin de suivi de l'activité économique via OpenStreetMap. Le démonstrateur LizWatch-Ville d'Orange permet de visualiser en temps réel l'évolution des données OSM sur la commune d'Orange.

Les fonctions de LizWatch

Filtres de recherche

Via un formulaire, il est possible de filtrer les modifications OpenStreetMap que l'utilisateur souhaite voir sur la carte :

  • intervalle temporel de recherche (date et heure)
  • statut des modifications : ajout (add), modification (mod) ou suppression (del)
  • veille sur les contributeurs :
    • on peut rentrer le pseudo complet d'un utilisateur. Par exemple "Ben"
    • on peut entrer une liste d'utilisateurs séparée par | . Par exemple "Ben|Alban"
    • il est enfin possible de mettre "Marc" pour chercher Marcel et Louis-Marc.
  • tags :
    • Si on entre un seul mot, c'est la clé (exacte) qui est cherchée. Par exemple "shop" pour trouver tous les magasins.
    • On peut rentrer un couple clé/valeur pour affiner la recherche. Par exemple "shop=florist" pour voir seulement les fleuristes.
    • La recherche sur les valeurs n'est pas stricte. Par exemple, on peut mettre "amenity=fire" pour chercher les "fire_hydrant" (bornes à incendies) et les "fire_station" (caserne de pompier).
    • Il est aussi possible de faire des recherches de type "OU" sur les clés et sur les valeurs. Par exemple "shop=florist|supermarket" qui renverra tous les magasins de fleurs et les supermarchés, ou "amenity|emergency=fire_hydrant". Ici, on utilise le "pipe" | comme séparateur. Il peut être mis du côté des clés, ou bien du côté des valeurs. Par exemple "amenity=post_office|post_box".
    • On peut enfin affiner la recherche en combinant les filtres via une recherche de type "ET". Par exemple "[building=yes][source=cadastre]" ne renverra que les immeubles qui ont pour source le cadastre. Dans ce cas, il faut bien encadrer les blocs par des crochets.
  • changeset : si on connait le numéro du groupe de modification ("changeset"), on peut le saisir dans ce champ pour ne voir que les modifications qui le concernent.

Affichage

La carte affiche dynamiquement les objets OpenStreetMap qui répondent aux critères de recherche. En vert, les objets ajoutés pendant la période, en orange les objets modifiés et en rouge les objets supprimés. Via la légende en bas à droite, on peut masquer/afficher les nodes (les points) et de Ways (les lignes ou les polygones)

Pour les points, nous avons activé le mode "cluster", c'est-à-dire que les points proches ne sont pas affichés séparément, mais représentés par un cercle dont la taille dépend du nombre de points (le nombre de points est affichés dans le cercle). Il est possible de désactiver ou de réactiver ce mode en cliquant sur le bouton placé à droite de "Nœuds" dans la légende en bas à droite.

En cliquant sur un des objets sur la carte, on peut ouvrir une fenêtre « popup » qui montre le détail de l'objet OpenStreetMap. Cette fenêtre contient des liens vers le détail du contributeur, de l'objet et du groupe de modifications. Si on est en mode "cluster", un clic sur un cercle affiche dans la « popup » les informations sur les 10 premiers points du cercle.
Il faut fermer la popup pour pouvoir faire des modifications dans le formulaire de recherche.

Permalink

Il est possible de conserver les critères de recherche pour une consultation ultérieure en cliquant sur le lien "permalink" à côté du bouton "Filtrer". Cela rafraichit la page avec une adresse contenant les paramètres de la recherche. Vous pouvez enregistrer cette adresse dans vos favoris pour y revenir plus tard.

Le futur de LizWatch

Cet outil graphique permet de trouver facilement les modifications effectuées selon de multiples critères. Chez 3Liz, nous pensons que LizWatch peut être utile pour aider toutes les personnes ou organismes qui souhaitent utiliser OpenStreetMap tout en contrôlant les modifications faites par les contributeurs.

Des améliorations vont venir prochainement, comme la possibilité de faire des exports au format CSV, de recevoir périodiquement un email de suivi des modifications suivant des critères prédéfinis.
Le code source complet de l'application va être libéré, pour permettre à chacun d'installer une version de LizWatch pour sa zone géographique sur son propre serveur. En effet, nous ne pouvons pas proposer cette application à l'échelle de la France, car le volume de données est trop important.

Nous espérons que LizWatch sera une brique utile pour la Communauté OpenStreetMap, et remercions encore la Ville d'Orange, et spécialement Jean-Louis Zimmermann et Tony Emery, pour leur confiance et leur retour utilisateur.

Accès au démonstrateur

Pour tester la version de LizWatch mise en place pour la commune d'Orange, vous pouvez vous rendre ici :
http://178.32.101.237/lizwatch/index.php/view/map
login = lizwatch
mot de passe = osm

Et un petit exemple de recherche :
Tous les objets OSM avec une source qui contient le mot cadastre édités par Jean-Louis Zimmerman depuis le 1er novembre

- page 5 de 24 -