Ce blog a pour but de diffuser les informations liées aux applications et données libre et open source, plus connus sous le terme de GFOSS. Esprit critique, annonce de nouveautés, compte rendu de salon et bien d'autres choses encore, voilà ce que vous y trouverez. RSS Souscrire via RSS

[GDAL-OGR] Mode ajout dans une base de données PostGreSQL

Il y a quelques temps je devais importer des données au format EDIGEO dans une base PostGreSQL/PostGIS existante. J’avais plusieurs fichiers THF à importer par conséquent je devais créer la table puis importer les fichiers les nus après les autres. Après lecture attentive de la documentation puis poser quelques questions sur la liste gdal, voici la méthode ainsi que les petites astuces qui font la différence.

Visualisation du problème

Puisque la table n’existe pas au premier fichier THF, il faut que la commande ogr2ogr s’en occupe puis, dans un deuxième temps, il faut que cette même commande ajoute les données. La doc est assez clair là dessus : il faut lancer deux commandes l’une après l’autre (en fait seules quelques options sont différentes) :

ogr2ogr -gt 65536 -f "PostgreSQL" "PG:dbname=test  host='localhost'" -lco "GEOMETRY_NAME=the_geom" -lco "SCHEMA=test" -lco "OVERWRITE=YES" -nln EDIGEO_parcelle  E0001.THF PARCELLE_id

Cette commande s’exécute sans problème. Les options utilisées ici sont les suivantes :

  • -gt 65536 : permet de grouper les géométries par groupe de 65 536 géométries avant de les commiter. Cela évite de commiter les géométries les unes après les autres. La valeur utilisée est celle préconiser par la documentation.
  • -lco « SCHEMA=test » : importer les données dans un schéma particulier.
  • -lco « GEOMETRY_NAME=the_geom » : totalement inutile mais j’aime bien avoir une cohérence dans mes noms de colonnes géométriques.
  • -lco « OVERWRITE=YES » : obligatoire quand on fait plusieurs essaie ou quand la table existe déjà pour cause d’import déjà réalisé. Cette option indique que la table sera écrasée (détruite puis recrée).
  • -nln EDIGEO_parcelle : donner un nom différent à la table que l’on va créer. Notez le mélange de majuscules et de minuscule, nous en reparlerons plus tard.

La deuxième commande que j’ai testé pour ajouter les données à une table existante esty celle-ci :

ogr2ogr -append -update -gt 65536 -f "PostgreSQL" "PG:dbname=test host='localhost'" -lco "GEOMETRY_NAME=the_geom" -lco "SCHEMA=test" -nln EDIGEO_parcelle  E0002.THF PARCELLE_id

Et là, ca marche beaucoup moins bien car je reçois ce message :

ERROR 1: Layer test.edigeo_parcelle already exists, CreateLayer failed.
Use the layer creation option OVERWRITE=YES to replace it.
ERROR 1: Terminating translation prematurely after failed
translation of layer PARCELLE_id (use -skipfailures to skip errors)

Et les logs de PostgreSQL montrent que cela ne provient pas de la base de données :

Postgresql log file shows:
2013-03-06 15:35:44 CET LOG:  could not receive data from client: Connection
reset by peer
2013-03-06 15:35:44 CET LOG:  unexpected EOF on client connection

Compréhension du problème et solution

En regardant les logs d’un peu plus près, voici ce que l’on y trouve :

  1. le nom de la table créée est test.edigeo_parcelle, ce qui est incorrecte en regard de la commande que j’ai lancé (le nom de la table aurait dû être EDIGEO_parcelle.
  2. une commande est réalisée lors du mode ajout et celle-ci ne cherche pas la table dans le schéma test mais dans le schéma public.

Ces deux problèmes peuvent être réglés de plusieurs manières différentes.

La solution « fainéant »

Résumons la par « Ah ben ca marche pas avec des majuscules et dans un schéma autre que le schéma public, tant pis ». La solution ici est de mettre le nom de la table en minuscule (bonne pratique) et celle-ci dans le schéma public (pas bien !).

La solution dite de « contournement »

Elle s’approche de la première car elle n’utilise pas les options nécessaires (et ajoutées pour) ce cas de figure et elle ne sert qu’au deuxième problème (celui du schéma) :

ogr2ogr -append -update -gt 65536 -f "PostgreSQL" "PG:dbname=test host='localhost'" -nln test.edigeo_parcelle  E0002.THF PARCELLE_id

Notez ces modifications :

  1. -lco « SCHEMA=test » et -lco « GEOMETRY_NAME=the_geom » ont été supprimés car inutile. Les options -lco ne sont pas utilisées en mode append ou update (ben oui le c de lco est pour « création », logique !).
  2. le nom de la table dans l’option -nln a été modifié en test.edigeo_parcele : tout en minuscule et ajout du schéma

La solution qui utilise les bonnes options

Comprenons bien les problèmes. Un premier problème vient du fait que le nom de la table que nous souhaitons créer contient des majuscules qui sont transformés en minuscule. Le deuxième problème vient du fait que nous utilisons une option de création pour définir le schéma dans lequel insérer des données alors que nous somme en mode append/update.

Nettoyage des noms de couches/table, colonne

Le pilote PostgreSQL dans GDAL/OGR contient un système de nettoyage des valeurs données lors de la création d’une couche. Cette option se nomme « LAUNDER » et est définie dans la page du pilote : http://gdal.gloobe.org/ogr/formats/pg.html (en français) :

Elle peut être définie à *YES* pour forcer les nouveaux champs créés sur cette couche à avoir les noms de champs « nettoyés » dans une forme compatible avec PostgreSQL. Cela convertie la valeur en minuscule ainsi que certains caractères spéciaux comme « – » et « # » en « _ ». Si la valeur *NO* est utilisée les noms exacts seront préservés. La valeur par défaut est *YES*. Si activé le nom de la table (couche) sera également nettoyé.

Si l’on souhaite garder nos majuscules il faut définir cette option à « NO ».

Définition du schéma en mode append/update

Lorsque nous somme en mode append ou update, nous ne somme pas en mode de création. C’est peu de le dire, c’est évident, mais au final on n’en saisit pas toujours les conséquences : les options de création ne nous serons d’aucune utilité ! Heureusement il y a une possibilité : le paramètre « active_schema » dans la chaîne de connexion. Notre commande devient alors :

ogr2ogr -append -update -gt 65536 -f "PostgreSQL" "PG:dbname=test host='localhost' active_schema=test" -nln edigeo_parcelle  E0002.THF PARCELLE_id

Merci à Even Rouault pour son aide sur la liste.


Comments Off on [GDAL-OGR] Mode ajout dans une base de données PostGreSQL
Posté le : jeudi 21 mars 2013 à 20:49
Tags: , , ,
Posté dans Applications, Données |

Google Fusion Table, OGR et QGIS

Google Fusion Table, OGR et QGIS : trois projets a priori indépendant, même si nous savons que derrière QGIS se cache la bibliothèque GDAL/OGR. Mais celle-ci est généralement sous estimée, notamment ses possibilités de virtualisation de données (raster ou vecteur). Entre autre chose cela permet à QGIS de pouvoir lire tous les formats de données gérés par GDAL/OGR même si elles ne sont pas listés dans les formats gérés ou qu’elles demandent des étapes intermédiaires (comme pour le format NetCDF).

Google Fusion Table (GFT) est une application Google lié plus ou moins à leur Google Doc, le tableur en particulier. En effet Google propose une feuille calc dans laquelle nous pouvons définir plusieurs colonnes, donc une spéciale, appelée Location qui contient une adresse ou une géométrie (KML par exemple).

GDAL/OGR gère le format GFT depuis sa version 1.9 (toute récente). Cet article a pour but de présenter quelques fonctionnalités et comment utiliser, simplement, un GFT au sein de QGIS (ou de MapServer bien sur).

Il y a quelques temps j’ai créé une feuille test_shapefile composée de quelques colonnes : nom, prénom, location (une adresse), et quelques informations diverses. Je peux me connecter à cette feuille via ogr comme cela :

yves@poseidon-vb:~$ ogrinfo -ro "GFT:email=yjacolin@gmail.com password=XXXXXX"
INFO: Open of `GFT:email=yjacolin@gmail.com password=XXXXXX'
      using driver `GFT' successful.
1: test_shapefile

Mais entrer un mot de passe en clair n’est pas très sécurisé, Google proprose de récupérer une clé d’authentification, que l’on peut modifier enfin je suppose) :

 $ ogrinfo --config CPL_DEBUG ON "GFT:email=yjacolin@gmail.com password=XXXXXX"  HTTP: Fetch(https://www.google.com/accounts/ClientLogin) HTTP: These HTTP headers were set: Content-Type: application/x-www-form-urlencoded GFT: Auth key : MACLéICI-LONGUE_DE_PLUSIEURS_CARACTèRES GFT: Run SHOW TABLES [..] 

Puis, sous linux, nous utilisons une variable d’environnement pour définir la clé (d’autres possibilités existent en plus du mot de passe en clair et de la clé d’authentification, référez vous à la documentation du pilote GFT de GDAL/OGR (voir bibliographie plus bas) :

</code> export GFT_AUTH=MACLéICI-LONGUE_DE_PLUSIEURS_CARACTèRES

On teste la prise en compte de la clé d’authentification :

</code>ogrinfo -ro "GFT:"

J’exporte ma table en shapefile :

ogr2ogr -f "Esri Shapefile" test_shapefile "GFT:tables=1jfYFX051Gbq5JU7Fd-Yxd_Q4aPDslDwDypsm3VU"

Puis j’importe une couche – différente – au format shapefile :

</code>ogr2ogr -f GFT "GFT:" point_etude.shp

Pour visualiser ces données dans QGIS ou MapServer j’ai besoin de virtualiser ma couche GFT au moyen du format VRT vecteur.

Création du fichier vrt :

<OGRVRTDataSource>

    <OGRVRTLayer name="point_etude">
        <SrcDataSource>GFT:</SrcDataSource>
        <SrcLayer>1SWEVgpny8Ojh-dzJEURhhEJVVa44Vnitey3DRhk&pli=1</SrcLayer>
        <LayerSRS>WGS84</LayerSRS>
    </OGRVRTLayer>

</OGRVRTDataSource>

puis j’utilise ce fichier vrt pour vérifier que je me connecter correctement à ma couche GFT :

ogrinfo -so point_etude.vrt point_etude
INFO: Open of `point_etude.vrt'
      using driver `VRT' successful.

Layer name: point_etude
Geometry: Unknown (any)
Feature Count: 1500
Extent: (-5.974657, 40.712886) - (9.572308, 52.068039)
Layer SRS WKT:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        TOWGS84[0,0,0,0,0,0,0],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0,
        AUTHORITY["EPSG","8901"]],
    UNIT["degree",0.0174532925199433,
        AUTHORITY["EPSG","9108"]],
    AUTHORITY["EPSG","4326"]]
ID: Real (0.0)
geometry: String (0.0)

Les géométries sont affichées comme celles-ci :

OGRFeature(point_etude):1425
ID (Real) = 1423
geometry (String) = <Point><coordinates>-3.443027539873455,47.169053485738431</coordinates></Point>
POINT (-3.443027539873455 47.169053485738431)
OGRFeature(point_etude):1426
ID (Real) = 1424
geometry (String) = <Point><coordinates>8.270853712116637,45.104331014323307</coordinates></Point>
POINT (8.270853712116637 45.104331014323307)
OGRFeature(point_etude):1427
ID (Real) = 1425
geometry (String) = <Point><coordinates>3.631323682505393,46.460888984293931</coordinates></Point>
POINT (3.631323682505393 46.460888984293931)

Enfin l’export fonctionne :

ogr2ogr -f "Esri Shapefile" test.shp point_etude.vrt point_etude

La visualisation au sein de QGIS se fait simplement en ouvrant le fichier vrt comme tout format de données vecteur.

Conclusion

Le format Google Fusion Table est un format intéressant, l’interface avec un format vrt permet de s’y connecter avec toute application s’appuyant avec GDAL/OGR comme QGIs ou MapServer mais le principale intérêt aurait été de pouvoir géocoder ses adresses au moyen de GFT et de pouvoir s’en service comme source de données. Malheureusement GFT ne permet que de géocoder ses adresses et de les visualiser dans une carte Google Map ou Google Earth. Il est impossible de sauver le géocodage dans une colonne dans un format WKT par exemple.

Si cette limitation ne vous pose pas de problème, vous pouvez stocker vos couches sur les serveurs de Google au format GFT et les lire dans QGIS/MapServer.

Bibliographie


Posté le : lundi 27 février 2012 à 09:00
Tags: , , ,
Posté dans Applications |

Personnalisation de QGIS : présentation de quelques méthodes simples

QGIS est constitué d’un coeur sous forme de bibliothèque dont l’interface graphique n’est qu’une des manières de l’utiliser. Le langage Python, largement utilisé pour les extensions, permet d’utiliser ce cœur pour créer ses extensions ou une autre application, totalement différente. Avant d’en arriver à ce niveau de personnalisation il existe plusieurs fonctionnalités qui permettent de modifier l’interface de QGIS. C’est de ces méthodes que je vais parler.

Je ne parlerais pas des possibilités de personnalisation des formats de données que l’on peut ouvrir avec QGIS, ou les paramètres de personnalisation lors de la sauvegarde d’un fichier (déjà parlé ici), ni de la personnalisation des projections, de la localisation des barres d’outils. Non il va s’agir d’utiliser les possibilités de QGIS pour simplement modifier le comportement par défaut de QGIS lorsqu’on clique sur une seule feature avec l’outil « identifier », faire en sorte que les outils et fonctions superflus ne s’affichent pas lors du lancement de QGIS et enfin de personnaliser le formulaire d’édition.

Formulaire d’édition des features

Dans les options de QGIS vous trouverez la possibilité d’afficher le formulaire par défaut lorsque vous cliquez sur une feature avec la fonction « identifier » (représenté par une flèche avec un bouton « i » avec un fond bleuté). Il y a alors deux types de fonctionnement : le premier lorsqu’on clique sur plusieurs features (en fait quand il y a plusieurs feature qui se superposent) une fenêtre s’ouvre et liste les attributs des features. Le deuxième fonctionnement, et c’est le plus intéressant, apparaît lorsqu’on clique sur une seule feature. Un formulaire d’édition apparaît et celui-ci permet de modifier les attributs si nous somme en mode édition.

 

La capture d’écran suivante montre les deux comportements. Les deux features sur lesquels j’ai cliqué sont entouré de rouge (on remarque que les multiples-features sélectionnées et qui donnent la fenêtre de gauche sont celles situées vers le bas). La fenêtre de droite est le fameux formulaire d’édition de la feature. Nous verrons un peu plus bas comment personnaliser ce formulaire très facilement.

Personnalisation des outils affichés

Cette fonctionnalité est nouvelle et n’est pas encore disponible dans la version stable actuelle, elle le sera dans la version 1.8.0. Un nouvel item fait son apparition dans le menu Options : « Paramétrage ». Celui-ci parait un peu obscure mais il s’agit d’un paramétrage pour choisir les menu, boutons et toolbars qui vont s’afficher dans QGIS. La fenêtre permet de choisir ce que vous désirez activer ou non. Il y a deux possibilités : décocher les items dans la liste déroulante ou bien utiliser la fonction « attraper les widgets dans l’interface » (traduction de mon fait).

Après avoir coché et décoché les cases désirées, vous cliquez sur le bouton « Appliquer ». À la prochaine ouverture de QGIS seules les barres d’outils, menu et boutons cochés seront affichés. Vous pouvez aussi sauver le fichier sous forme de fichier ini pour le charger dans une autre instance de QGIS. Voici ce que donne un exemple de personnalisation, à l’extrême :

Notez que pour revenir en arrière vous devez lancer qgis avec l’option –nocustomization et réinitialiser le paramétrage.

Créer son formulaire d’édition

QGIS propose la possibilité de créer son propre formulaire qui sera affiché lors de l’édition de la feature. Cela peut paraître compliqué mais c’est en fait très simple. Vous devez avoir qt4designer installé sur votre système. Lancez le, créez votre projet (celui par défaut conviendra parfaitement). Créez le formulaire en vous aidant des widgets sur la gauche et n’oubliez pas de les configurer avec la partie droite. Attention, il est important de données le nom du champ auquel le widget se rapporte à ce widget. C’est de cette manière que se fera le lien entre le champ du formulaire et le champ de la table attributaire. Voici ce que donne le mien :

Puis dans les propriétés de la couche, entrez le chemin vers le fichier formulaire créé précédemment (l’extension des formulaires créés avec qt4designer est .ui).

Enfin entrez en mode édition et éditez une feature :


Posté le : mardi 20 septembre 2011 à 09:00
Posté dans Applications, OSGeo |

Mise à jour de la documentation de GDAL en français

L’annonce a déjà transpiré sur Twitter mais il faut l’officialiser : la doc de GDAL en français a été mise à jour. Celle-ci contient non seulement la traduction de la doc de GDAL mais également de nouveaux chapitres originaux : Python, FAQ, et d’autres traductions de commandes utiles et complémentaire à celles de GDAL-OGR.

La doc a été passée en restructured text permettant une export en HTMl et PDF à partir de la version Softlibre (et non celle du wiki de GeoRezo.net) afin de faire évoluer la licence vers une licence proche de celle de GDAL : Licence Creative Common BY.

La version HTML est disponible à cette adresse : http://gdal.gloobe.org/index.html


Comments Off on Mise à jour de la documentation de GDAL en français
Posté le : vendredi 09 septembre 2011 à 21:11
Tags: , , ,
Posté dans Applications, OSGeo |

[QGIS] Sauver un fichier dans un autre format

Ce cours article fait suite à une question posée sur le forum Geolibre de GeoRezo.net. L’utilisateur souhaitait sauvegarder ses données au format MapInfo à partir de données au format d’ESRI en utilisant le pluging OGR. Ce plugin très utile n’était plus maintenu ce qui posait certain problème (notamment celui présenté dans ce thread). D’autre part depuis la version 1.7 de QGIS ce plugin a été supprimé.

L’alternative est d’utiliser la fonctionnalité « sauver sous … » de QGIS. Jusqu’ici rien de bien compliqué et cette fonctionnalité peut paraitre bien trop simple pour l’ensemble des cas d’utilisation possible. Cependant, comme souvent au sein du projet QGIS, la fonctionnalité intégrée dans QGIS apporte plus de fonctionnalité que l’ancien plugin. L’exemple est venu de ce même thread où un autre utilisateur désirait transformer sa couche au format GPX. Malheureusement le format GPX présente quelques contraintes et l’export par défaut échoué car la table attributaire ne correspondait pas à la structure du fichier GPX. OGR propose une option qui permet de récupérer ces champs attributaires et de les placer dans une balise « <extension> ». Cette option doit être placée dans la commande sous forme de flag « option de création ».

Voici la méthode pour réaliser cet export. Cette méthode est généralisable à toutes les options de tous les formats :

  1. aller sur le site d’OGR pour connaitre les options et les limites du pilote du formatou sur le wiki de GeoRezo.net pour la version française
  2. trouver l’option « qui va va bien », dans notre cas c’est l’option GPX_USE_EXTENSIONS=YES
  3. cliquer-droit sur la couche dans QGIS, sous-menu « sauvegarder sous … »
  4. dans la fenêtre qui s’ouvre, renseigner les infos : couche d’export, projections et l’option de création. voir la capture d’écran ci-dessous :


Comments Off on [QGIS] Sauver un fichier dans un autre format
Posté le : samedi 25 juin 2011 à 13:38
Tags: , ,
Posté dans Applications |

Projection à la volée dans QGIS 1.7

La version 1.7 de QGIS est dans les startings blocs. Ma distribution me l’ayant proposée en mise à jour, je me suis empressé de l’installer. De nombreuses nouveautés sont à l’ordre du jour, des évolutions au niveau de l’IHM (ajout d’un menu supplémentaire pour les bases de données, options de gestion des symboles)  bien sur mais aussi des nouveautés plus ou moins visible, disons moins liées à l’interface (jointure sur les couches vecteur, reprojection des raster, etc.).

Parmi ces nouveautés, une que j’attendais depuis longtemps : la reprojection à la volée des couches raster ! J’ai donc testé la superposition d’une couche raster (couche WMS de Géosignal), une couche vecteur dans une projection européenne (ETRS89). Le flux WMS de Géosignal ne propose pas de projection européenne, seulement les projections française (lambert 2, lambert 93) et « WGS 84 ». La couche vecteur provient d’OSM, elle est donc en WGS84/latlong.

Première étape : on lance QGIS et on définie la projection du projet : ETRS84 ou EPSG:4258, cochez la case ‘reprojection à la volée’.

Deuxième étape : on ajoute la couche raster : configuration du flux WMS de Geosignal dans QGIS si ce n’est pas déjà fait, choix des couches (pour ma part toutes les couches raster 5k, 25k, etc.), choix de la projection ; lambert 93 puis ajouter, la couche s’affiche.

Troisième étape : ajoutez une couche vecteur dans une 3eme projection : celle des réseaux ferrés de France provenant d’OSM (http://download.qualitystreetmap.org/osm/)

Les couches se superposent toutes parfaitement !



Comments Off on Projection à la volée dans QGIS 1.7
Posté le : samedi 18 juin 2011 à 16:10
Tags:
Posté dans Applications, OSGeo |

Présentation des nouveautés de MapServer 6.0

UMN MapServer est un serveur cartographique prenant en charge un grand nombre de formats de fichier. Il est possible de l’utiliser en mode CGI ou à travers des langages de script tels que PHP, Ruby, Java, C#, etc à l’aide de MapScript. MapServer constitue donc un environnement de développement d’outils plus qu’un outil en lui même prêt à être installé et à être utilisé directement.

Au niveau des nouveautés de cette version majeure, nous trouvons au niveau du coeur de MapServer : une API d’interface de rendu, le refactoring de l’interpréteur des Expressions dans MapServer (MS RFC 64) et les requêtes en une seule passe (MS RFC 65), au niveau des améliorations : la sortie KML, amélioration de la gestion des étiquettes, amélioration de la gestion des styles des features, de nouveaux formats pour la requête GetFeature du service WFS, un visualiseur OpenLayers interne, une meilleure gestion des fichiers temporaires, la possibilité d’activer ou pas les services OGC, la fusion et le cluster des features.

Note : un document détaillant ces nouveautés est disponible sur le site du PortailSIG. Je reprend ici que l’introduction de chaque nouveautés.

Nouveautés

API de rendu d’interface (MS RFC 54)

L’objet de ce développement est de créer une API pour brancher des moteurs de rendues différents en fonction du format de sortie voulu, pour l’anecdote cette API fonctionne d’une manière similaire à la lecture des données.

Révision du parseur d’expression de MapServer (MS RFC 64)

L’objet de cette RFC est de revoir le parseur d’expression (i.e. le code qui interprète les expressions utilisées dans le mapfile, par exemple [name] = “Yves”) et en particulier les endriots où celui-ci est utilisé. Les modifications pouvant avoir un impact sur les expressions des requêtes et particulièrement aux bases de données. Un objectif de ces modifications est l’implémentation des expressions de filtres de l’OGC en seule passe et indépendamment du pilote.

Modification de la requête en seule passe (MS RFC 65)

Ces modifications consistent à une simplification du travail qui a été effectué lors de la release précédente (la 5.6). À ce moment un premier travail a été effectué mais il s’avère insuffisant même s’il a amélioré les choses. Avant la 5.6, une première requête permettait de récupérer les géométries potentielles, puis n requêtes plus petites pour récupérer les résultats, cela été lent particulièrement pour les serveurs de bases de données. À partir de la 5.6, seulement deux requêtes sont effectuées.

Gestion du rendu OpenGL (MS RFC 50)

Cette nouvelle fonctionnalité apporte l’utilisation du module Opengl pour le rendu à MapServer pour un rendu plus rapide des images.

Kml Output (MS RFC 58)

Le travail initial a été réalisé par David Kana lors du Google Summer of Code de 2009. Le code pour le rendu KML est basé sur la nouvelle API du moteur de rendu décrit dans la RFC 54. La première intention était d’utiliser la bibliothèque KML originale fournie par Google mais celle-ci était trop complexe et la bibliothèque libxml2, déjà incluses dans MapServer, a été utilisée.

Amélioration des étiquetages : possibilité d’annuler les étiquettes ANGLE FOLLOW si trop de caractères se superposent (MS RFC 60)

Lorsque des étiquettes étaient placées sur une ligne à forte courbure et que ces étiquettes devaient suivre la ligne (ANGLE FOLLOW) il arrivait que des caractères se chevauchent rendant illisible le texte. L’amélioration ici consiste à détecter ce genre de problème et à sauter l’emplacement qui pose problème. Le prochain emplacement qui ne présente pas ce problème affichera l’étiquette. La stratégie est la suivante et permettra de comprendre le nouveau mot-clé : l’angle des deux caractères consécutifs sont comparé et s’il est supérieur à 22.5° l’étiquette ne sera pas affichée.

Amélioration de la gestion des styles dans MapServer (MS RFC 61)

L’idée ici est de pouvoir utiliser des styles stockés avec la géométrie. Seul le pilote OGR gère le rendu avec le style lié à la géométrie de plus théoriquement seuls quelques formats gèrent le stockage des styles avec la géométrie (comme MapInfo, AutoCAD DXF, Microstation DGN), cependant ces styles peuvent facilement être transférés sous forme d’attributs en utilisant l’option SQL d’ogr2ogr.

Gestion de formats de sortie supplémentaire pour le GetFeature du WFS (MS RFC 62)

L’amélioration ici consiste à définir différent format de sortie pour la requête GetFeature du service WFS.

Visualiseur OpenLayers interne (MS RFC 63)

Les utilisateurs ont souvent demandée un moyen simple de tester les mapfiles. Cette amélioration permet un moyen simple de visualiser, tester et naviguer dans un mapfile en utilisant un visualiser interne basé sur OpenLayers. Il ne doit servir que pour tester et développer et non pas en production !

Meilleur prise en charge des fichiers temporaires (MS RFC 66)

Jusqu’à maintenant, MapServer écrit les fichiers temporaires dans un répertoire IMAGEPATH accessible par le web, ce qui n’est pas optimale mais pouvait être suffisant mais au fur et à mesure que les fichiers temporaires étaient de plus en plus utilisés, il fallait mettre en place une meilleure prise en charge.

Activer/Désactiver des couches dans les services web OGC (MS RFC 67)

Jusqu’à maintenant il n’était pas possible de cacher/désactiver une couche de service web OGC, cela est maintenant possible. Vous pouvez trouver une discussion sur ce sujet dans le wiki : http://trac.osgeo.org/mapserver/wiki/HidingLayersInOGCWebServices

Gestion de la combinaison de features à partir de différentes couches (MS RFC 68)

Aujourd’hui, vous pouvez combiner plusieurs fichiers en utilisant la fonction TILEINDEX, mais seulement si ces données ont les mêmes attributs et description. Il peut être intéressant d’être en mesure d’avoir des couches sources multiples qui ont des attributs semblables et d’être en mesure de les combiner en une seule couche (appelé couche “union”) en utilisant un sous-ensemble compatible des colonnes attributaires sources de sorte que la couche combinée peut être considérée comme une seule couche. On pourrait alors utiliser cette seule couche de la même manière que toute autre couche lors de la création des styles, classes et étiquettes.

Gestion des clusters de géométries dans les couches ponctuelles (MS RFC 69)

Afin de rendre les cartes pertinente pour une vue donnée, nous pouvons avoir besoin de limiter le nombre d’éléments affichés qui normalement se chevauchent les uns sur les autres. Nous pouvons maintenant réaliser un rendu des symboles sous forme de cluster à une échelle particulière. Selon l’exemple à http://trac.osgeo.org/mapserver/attachment/ticket/3700/cluster.png le nombre de traits formant les groupes sont affichés dans les étiquettes pour chaque feature dans le cluster.

 


Comments Off on Présentation des nouveautés de MapServer 6.0
Posté le : vendredi 27 mai 2011 à 13:01
Tags: , , , , ,
Posté dans Applications, OSGeo |

La qualité dans un projet logiciel : mythe ou réalité ?

Les développements de projets Open Source sont connus et reconnus pour leur qualité : l’argument établis est que du fait de la publication du code, la qualité étant visible de tous, les développeurs auront tendance à prêter attention à la qualité du code. D’autres arguments existent : un projet communautaire (dont les développeurs ont chacun une vision et un objectif propre) se doit d’être irréprochable en matière de développement. Comment peut-on montrer ou démontrer la qualité d’un code ou d’un projet ? La question se pose aussi pour les données, mais j’y reviendrai plus tard dans un autre billet.

Différents paramètres sont parfois pris en compte comme le nombre de développeurs, d’utilisateur, le dynamisme des commits. Des services sont alors apparus comme ohloh, voir la page sur MapServer par exemple, se basant justement sur ce genre de paramètres. Ces méthodes ont des limites, je doute qu’il y ait seulement 103 utilisateurs de MapServer dans le monde, mais donnent un aperçu intéressant des projets (open source). Les listes de diffusion donnent également un aperçu : répond on à des questions (de difficulté diverse) ? Y a t’il des services commerciaux de formation et de support derrière ces projets ?

Lire plus »


Posté le : dimanche 20 février 2011 à 17:31
Tags:
Posté dans Applications, Avis personnel |

GeoShield : gérer les accès à vos services web OGC

GeoShield est un petit nouveau dans les applications de gestion des accès aux services web OGC. Nous connaissons secureows, développé par Camptocamp, celle intégré dans GeoServer, celles de 52North (WAS et WSS).

Pourquoi parler de ce nouveau venu ? D’abord parce que souvent la diversité des applications permet de comparer et d’avoir la possibilité de choisir celui qui nous convient le mieux et qu’il me semble important de les suivre. Ensuite parce que j’ai été séduit par cette application. Bien sur elle n’est pas exempt de petit soucis et d’imperfection, mais nous la mettrons sur le compte de sa relative jeunesse (la première version a été présentée lors du FOSS4G 2009 dont j’ai été absent) et 2010.

Lire plus »


Comments Off on GeoShield : gérer les accès à vos services web OGC
Posté le : jeudi 27 janvier 2011 à 09:17
Tags: , , , , ,
Posté dans Applications, Standards |

Even Rouault : développeur de GDAL-OGR

1. Peux tu faire une présentation de ton parcours professionnel et ce qui t’a amené à travailler dans la géomatique open source ?

Je ne travaille pas, à proprement parler, dans la géomatique Open Source. Je suis actuellement employé par une grande entreprise française dans le secteur de la défense où nous développons des systèmes d’information opérationnels.

Lire plus »


Posté le : lundi 02 novembre 2009 à 09:30
Tags: , ,
Posté dans Applications, Interview, OSGeo |

- Faire un don - Contact - Mentions légales -