<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>neogeo &#187; Mapserver</title>
	<atom:link href="http://www.neogeo-online.net/blog/archives/tag/mapserver/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.neogeo-online.net</link>
	<description>SIG, OpenSource et Web 2.0</description>
	<lastBuildDate>Wed, 08 Feb 2012 11:54:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WFS et JSON</title>
		<link>http://www.neogeo-online.net/blog/archives/1577/</link>
		<comments>http://www.neogeo-online.net/blog/archives/1577/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 09:47:54 +0000</pubDate>
		<dc:creator>Benjamin Chartier</dc:creator>
				<category><![CDATA[OGC, ISO & INSPIRE]]></category>
		<category><![CDATA[GeoJSON]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Mapserver]]></category>
		<category><![CDATA[WFS]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=1577</guid>
		<description><![CDATA[Lundi 21, j’ai assisté à la 5e journée de l’interopérabilité organisée par le Forum français de l’OGC pour y faire une présentation du standard WFS. Ce standard constituait d’ailleurs le thème principal de la journée. Au cours de cette journée, il a été fait mention à plusieurs reprises de l’inadéquation de GML à certains usages [...]]]></description>
			<content:encoded><![CDATA[<p>Lundi 21, j’ai assisté à la 5e journée de l’interopérabilité organisée par le Forum français de l’OGC pour y faire une présentation du standard WFS. Ce standard constituait d’ailleurs le thème principal de la journée. Au cours de cette journée, il a été fait mention à plusieurs reprises de l’inadéquation de GML à certains usages (en particulier pour l’affichage d’objets vectoriels dans un client léger, voire au travers d’un smartphone. Plusieurs intervenants ont donc évoqué le besoin d’utiliser un format plus compact et plus facilement assimilable par des applications écrites en javascript : GeoJSON pour ne pas le nommer.</p>
<p>Aujourd’hui, le format par défaut de WFS est le GML. Le standard laisse néanmoins la porte ouverte à d’autres formats. Voici un exemple de requête GetFeature tiré de la version 2.0 des spécifications de WFS et qui demande une réponse en KML :<br />
<code></code></p>
<pre>http://www.someserver.com/wfs.cgi?
SERVICE=WFS&amp;
VERSION=2.0.0&amp;
REQUEST=GetFeature&amp;
TYPENAMES=PLACES&amp;
BBOX=18.54,-72.3544,18.62,-72.2564&amp;
OUTPUTFORMAT=KML</pre>
<p>J’ai effectué une petite recherche pour essayer de déterminer si le format GeoJSON est une alternative répandue au format GML du côté des serveurs. Voici quelques exemples de listes de formats issues de services qui indiquent le support de JSON :<br />
<code></code></p>
<pre>text/xml;subtype=gml/3.1.1
application/csv
application/javascript
application/shape
application/serialized.feature</pre>
<pre>text/xml; subtype=gml/3.1.1
text/xml; subtype=gml/2.1.2
application/json</pre>
<pre>text/xml; subtype=gml/3.1.1
GML2
GML2-GZIP
SHAPE-ZIP
csv
gml3
json
text/xml; subtype=gml/2.1.2</pre>
<p>Plusieurs constats :</p>
<ul>
<li>le support de JSON et GeoJSON par les services WFS n’est pas rare mais est loin d’être supporté par toutes les implémentations ;</li>
<li>certains de ces services supportent JSON mais pas GeoJSON ;</li>
<li>la distinction entre les deux formats est impossible à faire en lisant les « capabilities » du service ;</li>
<li>l’utilisation des types MIME n’est pas homogène d’une implémentation à une autre. Pour information, une discussion est en cours à l’OGC pour essayer de l’homogénéiser l’usage des types MIME ;</li>
<li>les implémentations supportent souvent d’autres formats que GML pour l’opération GetFeature mais pas pour les autres opérations (DescribeFeatureType et Transaction notamment).</li>
</ul>
<p>En conclusion, oui vous pouvez utiliser du GeoJSON en sortie d’un service WFS. Il y a un &laquo;&nbsp;mais&nbsp;&raquo; : la déclaration de ce format dans les capabilities des services WFS reste imparfaite ce qui peut entrainer des problèmes d’interopérabilité entre clients et services. Par ailleurs, son usage semble se limiter à l’opération GetFeature. On peut également noter que des initiatives au sein de l’OGC visent à définir des interfaces de services web respectant les principes de REST. Les travaux (propositions faites par ESRI et CubeWerx) allant dans ce sens font figurer JSON et GeoJSON en bonne place.</p>
<p>Note pour ceux qui utilisent MapServer : le support de JSON peut être ajouté en sortie d’un service WFS à l’aide de templates (cf. <a title="Template-Driven Output" href="http://mapserver.org/output/template_output.html">ici</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/1577/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MapServer et Inspire</title>
		<link>http://www.neogeo-online.net/blog/archives/1242/</link>
		<comments>http://www.neogeo-online.net/blog/archives/1242/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 20:40:24 +0000</pubDate>
		<dc:creator>Guillaume Sueur</dc:creator>
				<category><![CDATA[OGC, ISO & INSPIRE]]></category>
		<category><![CDATA[Web mapping]]></category>
		<category><![CDATA[INSPIRE]]></category>
		<category><![CDATA[Mapserver]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=1242</guid>
		<description><![CDATA[Comme ce fut le cas pour GeoNetwork, nous avons réalisé à la demande du BRGM un audit de MapServer face aux exigences de la directive INSPIRE pour ce qui est des ViewServices, autrement dit les services de visualisation. Nous vous proposons donc ce document, en anglais : Télécharger En quelques mots voici ce qu&#8217;on y [...]]]></description>
			<content:encoded><![CDATA[<p>Comme <a href="http://www.neogeo-online.net/blog/archives/679/">ce fut le cas pour GeoNetwork</a>, nous avons réalisé à la demande du BRGM un audit de MapServer face aux exigences de la directive <a title="Le texte de la directive Inspire" href="http://eur-lex.europa.eu/JOHtml.do?uri=OJ:L:2007:108:SOM:EN:HTML" target="_blank">INSPIRE</a> pour ce qui est des <a title="Le guide technique INSPIRE" href="http://inspire.jrc.ec.europa.eu/documents/Network_Services/TechnicalGuidance_ViewServices_v3.0.pdf" target="_blank">ViewServices</a>, autrement dit les services de visualisation.</p>
<p>Nous vous proposons donc ce document, en anglais : <a href="http://www.neogeo-online.net/blog/wp-content/uploads/2011/04/MAPSERVER_INSPIRE.pdf">Télécharger</a></p>
<p>En quelques mots voici ce qu&#8217;on y trouve :</p>
<p>L&#8217;essentiel des exigences Inspire pour les services de visualisation s&#8217;appuie sur WMS 1.3.0 / ISO-19128, déjà pris en charge par MapServer. Les manques ne sont donc pas trop importants mais néanmoins suffisants pour imposer quelques interventions.</p>
<p>Pour ce qui est du GetCapabilities du service, le guide technique Inspire décrit deux scénarios (scenarii pour les esthètes, je sais qu&#8217;il y en a parmi les lecteurs de ce blog) :</p>
<ul>
<li>Le premier dans lequel il suffit d&#8217;inclure le support de la langue (ok, ce n&#8217;est pas rien), et un lien externe vers un document de métadonnées de service (potentiellement présent dans un catalogue tel que GeoNetwork / GéoSource donc)</li>
<li>Le deuxième, plus confus, dans lequel on injecte également les éléments principaux des métadonnées de service directement dans le GetCapabilities, tout en pointant quand-même vers un catalogue pour garantir la compatibilité avec les services de découverte&#8230; Usine à gaz en vue, surtout quand il s&#8217;agira de maintenir ces informations en cohérence.</li>
</ul>
<p>Le choix d&#8217;un scénario ou d&#8217;un autre revient à l&#8217;Etat membre, et il semblerait pour l&#8217;instant que ce soit le scénario 1 qui soit privilégié en nos contrées.</p>
<p>Concernant les autres blocs du GetCapabilities, et la description des Layers notamment, on peut noter quelques éléments optionnels en WMS qui deviennent obligatoires avec Inspire (Fees, Keyword&#8230;) et dont le contenu peut être amené à suivre un certain formalisme. Quelques autres sont vraiment spécifiques à Inspire (MetadataDate&#8230;) ou peuvent se retrouver en plusieurs fois au lieu d&#8217;une seule en WMS (ContactInformation). Tous ces ajouts doivent donc être intégrés dans un bloc spécifique ExtendedCapabilities dédié à Inspire.</p>
<p>Au final, la principale difficulté réside bien dans la prise en charge du multi-linguisme, qui oblige le service à interpréter un paramètre d&#8217;appel complémentaire (language) et surtout le traiter. Cela suppose d&#8217;exposer les langues acceptés (supported languages) dans le GetCapabilities, et d&#8217;être capable de renvoyer des &laquo;&nbsp;titles&nbsp;&raquo; et des &laquo;&nbsp;abstracts&nbsp;&raquo; dans la langue choisie par l&#8217;utilisateur, pour peu qu&#8217;elle fasse partie des &laquo;&nbsp;supported languages&nbsp;&raquo;.</p>
<p>Pour qui connait la structure d&#8217;un mapfile, la crainte de voir se multiplier les éléments de METADATA tels que &laquo;&nbsp;wms_title_fr&nbsp;&raquo;, &laquo;&nbsp;wms_title_en&nbsp;&raquo;&#8230; peut sembler justifiée. Surtout lorsqu&#8217;on voit que les styles doivent également être soumis à ce mécanisme et voir leur titre traduit, le nom restant la clé unique. Déjà que les styles nommés c&#8217;était un peu du sport, si en plus il faut en traduire les titres (pour lequel il n&#8217;y a aucun tag dans le Mapfile, MapServer se contentant de reprendre le nom du style dans le tag style:title). Pour parer au plus pressé, et il y en a quelques uns pour qui ça devient urgent, on peut certes envisager la multiplication des entrées dans les METADATA. Mais pour envisager l&#8217;avenir sereinement (quand on aura 5 styles nommés à traduire dans 8 langues, pour chacun des 50 layers du mapfile&#8230;), je pense qu&#8217;il est nécessaire de mettre en place un mécanisme externe au mapfile, utilisant <a href="http://www.gnu.org/software/gettext/" target="_blank">gettext</a> par exemple. Dans cette optique, le contenu du mapfile serait considéré comme correspondant au langage par défaut. Un script externe permettrait de générer les fichiers de langue pour chacun des &laquo;&nbsp;supported languages&nbsp;&raquo; décrits dans le fichier map, prenant en clé/valeur les valeurs récupérées dans le fichier map et laissant donc à l&#8217;utilisateur le soin de les remplacer par les traductions correspondantes. Cette approche permettrait de plus de déléguer les tâches de traduction à des spécialistes (parce qu&#8217;un géomaticien qui se met au maltais, ça peut faire mal) sans avoir à leur transmettre un mapfile (parce qu&#8217;un traducteur devant un fichier map, ça peut faire mal aussi). A chacun son boulot.</p>
<p>Merci à Assefa Yewondwossen de <a title="DMSolutions website" href="http://www.dmsolutions.com/" target="_blank">DMSolutions</a> et à Daniel Morissette de <a title="MapGears website" href="http://www.mapgears.com/" target="_blank">MapGears</a> pour leurs éclairages et leur relecture, ainsi bien sûr qu&#8217;au BRGM pour sa démarche générale en faveur de l&#8217;OpenSource et la publication de ce document en particulier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/1242/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MapServer GeoStack</title>
		<link>http://www.neogeo-online.net/blog/archives/1018/</link>
		<comments>http://www.neogeo-online.net/blog/archives/1018/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 17:25:13 +0000</pubDate>
		<dc:creator>Guillaume Sueur</dc:creator>
				<category><![CDATA[News of the GeoWorld]]></category>
		<category><![CDATA[Optimisation & performances]]></category>
		<category><![CDATA[Web mapping]]></category>
		<category><![CDATA[Mapserver]]></category>
		<category><![CDATA[mod_geocache]]></category>
		<category><![CDATA[tinyOWS]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=1018</guid>
		<description><![CDATA[Vous connaissez mon affection pour MapServer, aussi je ne reprendrai pas d&#8217;emblée les habituels qualificatifs utilisés. Néanmoins, on lui reproche parfois d&#8217;être un peu isolé au sein d&#8217;une infrastructure de données spatiales, avec le seul rôle de serveur WMS/WFS, mais sans mécanisme interne de cache et surtout sans WFS-T. Ainsi l&#8217;habitude vint de lui adjoindre [...]]]></description>
			<content:encoded><![CDATA[<p>Vous connaissez mon affection pour MapServer, aussi je ne reprendrai pas d&#8217;emblée les habituels qualificatifs utilisés. Néanmoins, on lui reproche parfois d&#8217;être un peu isolé au sein d&#8217;une infrastructure de données spatiales, avec le seul rôle de serveur WMS/WFS, mais sans mécanisme interne de cache et surtout sans WFS-T. Ainsi l&#8217;habitude vint de lui adjoindre quelques comparses, tels que <a href="http://www.tilecache.org" target="_blank">TileCache</a> pour le cache, ou <a href="http://tinyows.org/trac">TinyOWS</a> pour le WFS-T, ceci ayant généralement pour résultat de complexifier les opérations de configuration, puisque chacun des éléments réclame la sienne propre.</p>
<p>Vous serez alors sans doute ravis d&#8217;apprendre, comme je peux l&#8217;être, l&#8217;intégration au sein de MapServer des projets TinyOWS, fièrement soutenu par nos collègues <a href="http://www.oslandia.com/">d&#8217;Oslandia</a>, et de <a href="http://code.google.com/p/mod-geocache/">mod_geocache</a>, un projet récent mais diablement performant de Thomas Bonfort (à qui l&#8217;on devait déjà le support AGG dans MapServer) qui est un module Apache dédié au tuilage mais qui peut aussi fusionner des tuiles à la volée pour construire la réponse à une requête WMS non tuilée.</p>
<p>Que peut signifier &laquo;&nbsp;intégration&nbsp;&raquo; dans ce contexte ? C&#8217;est déjà le partage d&#8217;un fichier de configuration identique, le fameux MapFile, dans lequel devront donc être déclarés les éléments permettant la mise en route de ces nouveaux services. C&#8217;est aussi l&#8217;incorporation des sources de ces deux projets à celles de MapServer, de sorte que l&#8217;on compilera tout cela à la fois de manière à produire une sorte de bundle multi-tâches. C&#8217;est également le bénéfice pour MapServer d&#8217;approches techniques innovantes. Il paraît que MapServer en module Apache c&#8217;est pour bientôt aussi et que les résultats des tests sont très prometteurs. C&#8217;est enfin l&#8217;intégration de chacune des communautés de ces deux projets à celle de MapServer et de ce fait l&#8217;implication de la communauté MapServer dans l&#8217;amélioration de ces one-man-projects qu&#8217;ils étaient jusqu&#8217;alors.</p>
<p>Ne vous précipitez pas tout de suite vers la dernière archive des sources de MapServer, nous en sommes seulement à une phase d&#8217;intentions avancées disons. Mais il est heureux de voir une telle initiative voir le jour, d&#8217;autant qu&#8217;elle promeut la qualité du travail de deux petits Français.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/1018/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MapServer Code Sprint Montreal</title>
		<link>http://www.neogeo-online.net/blog/archives/903/</link>
		<comments>http://www.neogeo-online.net/blog/archives/903/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 09:06:01 +0000</pubDate>
		<dc:creator>Guillaume Sueur</dc:creator>
				<category><![CDATA[News of the GeoWorld]]></category>
		<category><![CDATA[Web mapping]]></category>
		<category><![CDATA[Mapserver]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=903</guid>
		<description><![CDATA[Du 15 au 18 mars va se tenir à Montréal un code sprint, session de travail réunissant les développeurs destinée à finaliser la très attendue version 6 de MapServer. Les organisateurs ont besoin du soutien de tous ceux qui aiment MapServer et veulent lui permettre de rester un des meilleurs serveurs cartographiques du moment.]]></description>
			<content:encoded><![CDATA[<p>Du 15 au 18 mars va se tenir à Montréal un <a href="http://wiki.osgeo.org/wiki/Montreal_Code_Sprint_2011">code sprint</a>, session de travail réunissant les développeurs destinée à finaliser la très attendue version 6 de MapServer. Les <a href="http://dmorissette.blogspot.com/2011/03/osgeos-montreal-code-sprint-2011-only.html">organisateurs ont besoin du soutien</a> de tous ceux qui aiment MapServer et veulent lui permettre de rester un des meilleurs serveurs cartographiques du moment. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/903/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MapServer : attention à Greenwich en WMS 1.3.0</title>
		<link>http://www.neogeo-online.net/blog/archives/509/</link>
		<comments>http://www.neogeo-online.net/blog/archives/509/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 19:38:41 +0000</pubDate>
		<dc:creator>Guillaume</dc:creator>
				<category><![CDATA[GeoHacks]]></category>
		<category><![CDATA[Web mapping]]></category>
		<category><![CDATA[Mapserver]]></category>
		<category><![CDATA[QGis]]></category>
		<category><![CDATA[WMS]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=509</guid>
		<description><![CDATA[MapServer est un excellent serveur WMS, mais j&#8217;ai récemment découvert un bug qui peut affecter l&#8217;affichage d&#8217;une couche WMS dans un client quelconque. Enfin, pas complètement quelconque non plus. Le problème se situe au niveau du calcul de la BBOX de la couche en coordonnées géographiques (WGS84), dont le résultat est exposé dans la balise [...]]]></description>
			<content:encoded><![CDATA[<p>MapServer est un excellent serveur WMS, mais j&#8217;ai récemment découvert un bug qui peut affecter l&#8217;affichage d&#8217;une couche WMS dans un client quelconque. Enfin, pas complètement quelconque non plus.</p>
<p>Le problème se situe au niveau du calcul de la BBOX de la couche en coordonnées géographiques (WGS84), dont le résultat est exposé dans la balise EX_GeographicBoundingBox du GetCapabilities. Le calcul de cette BBOX se fait sans vérifier que le méridien d&#8217;origine de la projection source de la donnée est bien Greenwich, qui est celui utilisé par le WGS84. Dès lors, si vos données sont dans un système de référence utilisant le méridien de Paris comme origine (les Lambert français de la NTF par <a title="WKT du Lambert II étendu" href="http://spatialreference.org/ref/epsg/27572/prettywkt/" target="_blank">exemple</a>, à la différence du <a title="Le WKT du Lambert93" href="http://spatialreference.org/ref/epsg/2154/prettywkt/" target="_blank">Lambert 93</a> (RGF93) qui utilise Greenwich plus un décalage), la BBOX en WGS84 sera erronée car décalée de plus de 2 degrés vers l&#8217;ouest.</p>
<p>Bon, mais qu&#8217;est-ce que ça change en pratique ? Je suis sûr que nombre d&#8217;entre vous ont déjà utilisé MapServer en WMS 1.3.0 sur ce type de projection sans rencontrer de problème&#8230; Il se trouve que certains logiciels clients WMS (l&#8217;excellent QGis notamment), plus malins que d&#8217;autres, se servent de cette information pour déterminer l&#8217;emprise de la couche (quelle que soit la projection utilisée pour l&#8217;affichage d&#8217;ailleurs), et n&#8217;envoient donc pas de requête au serveur WMS quand la vue se situe à l&#8217;extérieur de cette emprise, afin de ne pas solliciter inutilement le serveur. Finaud donc. Si vous publiez des données France entière, il y aura recouvrement, et donc pas de problème (à moins peut-être de zoomer sur Strasbourg par exemple. A tester sur vos services WMS 1.3.0 préférés avec QGIS. J&#8217;en ai déjà trouvé un&#8230;). Mais si l&#8217;emprise de vos données est suffisamment étroite (une agglomération par exemple), vous ne verrez tout simplement rien là où vous comptiez les voir apparaître, car d&#8217;après le GetCapabilities les données ne se trouvent pas là du tout. Vous ne verrez non seulement rien, et certainement pas d&#8217;erreur, et vous risquez de passer quelque temps (je parle d&#8217;expérience) à vous creuser la tête pour comprendre ce qui ne va pas dans votre configuration. Sauf que la configuration va bien. Là où ça devient énervant, c&#8217;est que les clients WMS qui envoient comme des bourrins des requêtes au serveur où qu&#8217;on se situe, ignorant par là la présence et le rôle de la balise EX_GeographicBoundingBox, ces barbares donc, vont eux recevoir une réponse correcte, puisque la reprojection de la donnée elle-même fonctionne normalement. Funeste sort que celui des clients WMS les plus exigeants, les plus respectueux de l&#8217;esprit de l&#8217;inter-opérabilité, induits ainsi en erreur par un calcul approximatif.</p>
<p>Mais heureux dénouement qui voit les lecteurs assidus de ce blog non seulement informés mais dépannés par un <a title="le patch" href="http://trac.osgeo.org/mapserver/attachment/ticket/2578/wms_1.3.0.patch" target="_self">patch</a> tout frais déposé sur le bug-tracker de MapServer ! Pour l&#8217;utiliser, il suffit de l&#8217;appliquer (commande patch mapows.c wms_1.3.0.patch) au fichier source puis de recompiler et remplacer son mapserv par le nouveau. Il devrait également être rapidement disponible dans la version officielle.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/509/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WMS : livre de recettes écossaises</title>
		<link>http://www.neogeo-online.net/blog/archives/497/</link>
		<comments>http://www.neogeo-online.net/blog/archives/497/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 13:02:08 +0000</pubDate>
		<dc:creator>Benjamin Chartier</dc:creator>
				<category><![CDATA[OGC, ISO & INSPIRE]]></category>
		<category><![CDATA[Web mapping]]></category>
		<category><![CDATA[ArcGIS]]></category>
		<category><![CDATA[INSPIRE]]></category>
		<category><![CDATA[ISO]]></category>
		<category><![CDATA[Mapserver]]></category>
		<category><![CDATA[OGC]]></category>
		<category><![CDATA[WFS]]></category>
		<category><![CDATA[WMS]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=497</guid>
		<description><![CDATA[Le British Geological Survey ou BGS (l&#8217;équivalent britannique du BRGM semble-t-il) a publié un livre de recettes destiné à ceux qui doivent mettre en œuvre des services WMS dans le cadre de l&#8217;infrastructure de données spatiale écossaise et d&#8217;INSPIRE : How to serve a Scottish SDI and INSPIRE conformant Web Map Service. Ce document volumineux (plus [...]]]></description>
			<content:encoded><![CDATA[<p>Le British Geological Survey ou BGS (l&#8217;équivalent britannique du BRGM semble-t-il) a publié un livre de recettes destiné à ceux qui doivent mettre en œuvre des services WMS dans le cadre de l&#8217;infrastructure de données spatiale écossaise et d&#8217;INSPIRE : <a href="http://www.scotland.gov.uk/Publications/2010/05/06161701/0">How to serve a Scottish SDI and INSPIRE conformant Web Map Service</a>.</p>
<p>Ce document volumineux (plus de 300 pages) est riche en informations pour ceux qui s&#8217;intéressent au déploiement de services WMS dans le cadre d&#8217;INSPIRE. Ses annexes décrivent comment paramétrer des services motorisés par ArcGIS et MapServer et comment les consommer depuis une variété intéressante de clients (Gaia, WorldWind, Google Earth et le portail OneGeology notamment).</p>
<p>La confrontation de ce document au guide technique des services de visualisation d&#8217;INSPIRE est également instructive. Le premier point qui saute aux yeux : le livre de recettes écossaises propose d&#8217;utiliser WMS 1.1.1 (avec MapServer) et WMS 1.3 (à l&#8217;aide d&#8217;ArcGIS) alors que le guide technique d&#8217;INSPIRE recommande WMS 1.3. La volonté de continuer à supporter WMS 1.1.1 est logique tant la quantité de services ne supportant pas WMS 1.3 est importante. Il est également possible que ces recettes datent de l&#8217;époque où MapServer ne supportait pas encore WMS 1.3.</p>
<p>Le deuxième point qui a attiré mon attention réside dans la manière de gérer le multilinguisme. Le document n&#8217;est pas très bavard sur ce sujet. Il fait l&#8217;impasse sur la présence du paramètre LANGUAGE dans les URL des requêtes adressées aux services WMS. Par contre, il recommande de déployer autant de services que de langues à supporter. Ainsi, chaque service n&#8217;a qu&#8217;une langue à gérer. Les spécificités de chaque langue peuvent donc être gérées au niveau de chaque service déployé. Cette solution est suggérée par moment (mais pas de manière homogène) dans la version 2.12 du guide technique d&#8217;INSPIRE. Elle a l&#8217;avantage d&#8217;être facilement mise en œuvre avec les logiciels actuellement disponibles sur le marché. Cette approche du multilinguisme ne me satisfait guère et je ne serais pas étonné qu&#8217;elle disparaisse totalement du guide technique d&#8217;INSPIRE dans ses prochaines versions au bénéfice d&#8217;une solution basée sur l&#8217;emploi du paramètre LANGUAGE utilisé de manière homogène pour toutes les opérations de WMS.</p>
<p>Un dernier point qui vaut la peine d&#8217;être mentionné : pour ce qui est de la sécurité et de l&#8217;authentification des utilisateurs (dans le cas où l&#8217;accès à certaines opérations ou données ne doit pas être libre), le document fait un rappel de quelques standards et outils qui pourraient être employés. Aucune recommandation claire ou tranchée n&#8217;est faite sur ce sujet. Ce n&#8217;est pas très étonnant tant les solutions n&#8217;ont pas l&#8217;air d&#8217;être mûres sur le sujet (pour s&#8217;en convaincre il suffit de voir à quel point ce sujet n&#8217;avance guère du côté de l&#8217;OGC). On peut toutefois noter l&#8217;implication d&#8217;EDINA (l&#8217;un des contributeurs au livre de recettes) dans l&#8217;organisation d&#8217;un prochain test d&#8217;interopérabilité (Interoperability Experiment) de l&#8217;OGC sur l&#8217;emploi conjoint de Shibboleth et de services web géospatiaux (cf. <a href="http://www.opengeospatial.org/projects/initiatives/shibbolethie">ici</a>).</p>
<p>Une lecture intéressante qui laisse tout de même une légère impression d&#8217;inachevé. Celle-ci n&#8217;est pas uniquement imputable aux auteurs. En effet, reconnaissons que certains sujets ne sont pas tout à fait mûrs à la fois du côté de la Commission Européenne et du côté des solutions logicielles (pour ne pas citer l&#8217;OGC, les éditeurs et les projets libres). Les auteurs en sont conscients puisqu&#8217;ils insistent sur le fait que ce document est destiné à évoluer. Ils annoncent également qu’un livre de recettes pour WFS devrait voir le jour en 2010 ou 2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/497/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mapserver et GDAL, duo magique</title>
		<link>http://www.neogeo-online.net/blog/archives/283/</link>
		<comments>http://www.neogeo-online.net/blog/archives/283/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 11:26:29 +0000</pubDate>
		<dc:creator>Guillaume</dc:creator>
				<category><![CDATA[GeoHacks]]></category>
		<category><![CDATA[Web mapping]]></category>
		<category><![CDATA[GDAL]]></category>
		<category><![CDATA[Mapserver]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[TileCache]]></category>
		<category><![CDATA[WMS]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=283</guid>
		<description><![CDATA[La dernière version de GDAL, la 1.7.1, améliore encore l&#8217;utilisation de sources de données distantes de type WMS. La documentation reste toutefois succinte et ne dévoile pas les possibilités offertes par les &#171;&#160;minidrivers&#160;&#187;. Rappelons le principe de base : il s&#8217;agit de pouvoir considérer une ressource distante (WMS, TMS) comme une source de données GDAL [...]]]></description>
			<content:encoded><![CDATA[<p>La dernière version de GDAL, la 1.7.1, améliore encore l&#8217;utilisation de sources de données distantes de type WMS. La <a href="http://www.gdal.org/frmt_wms.html" target="_blank">documentation</a> reste toutefois succinte et ne dévoile pas les possibilités offertes par les &laquo;&nbsp;minidrivers&nbsp;&raquo;. Rappelons le principe de base : il s&#8217;agit de pouvoir considérer une ressource distante (WMS, TMS) comme une source de données GDAL standard et de pouvoir la manipuler comme s&#8217;il s&#8217;agissait d&#8217;un raster en local. Ca peut déjà rendre service avec le WMS. Mais l&#8217;intérêt principal réside en sa capacité à exploiter des ressources tuilées. Qui n&#8217;a jamais été frustré de ne pas pouvoir exploiter un service WMS-C ou TMS car la projection proposée ne correspondait pas à son besoin ? Les &laquo;&nbsp;minidrivers&nbsp;&raquo; permettent de contourner cet obstacle. Comment ? Assez simplement en fait. GDAL va considérer le résultat que vous lui demandez (étendue géographique, projection&#8230;), récupérer les tuiles correspondantes, en découper le superflu,  les assembler en une seule image et reprojeter le tout dans ce que vous aurez demandé.  La configuration de l&#8217;accès au service se fait via un petit fichier XML <span style="text-decoration: line-through;">simple</span> à renseigner :</p>
<pre>&lt;GDAL_WMS&gt;
  &lt;Service name="WMS"&gt; --&gt; Description du type de service (WMS, TMS...)
    &lt;Version&gt;1.1.1&lt;/Version&gt; --&gt; Version du service
    &lt;ServerUrl&gt;http://labs.metacarta.com/wms-c/Basic.py?&lt;/ServerUrl&gt;
                    --&gt; Url d'accès au service
      &lt;Layers&gt;basic&lt;/Layers&gt; --&gt; Couches à récupérer
  &lt;/Service&gt;
  &lt;DataWindow&gt; --&gt; Configuration plus générale de la données distante
    &lt;UpperLeftX&gt;-180.0&lt;/UpperLeftX&gt; --&gt; Sur ces quatres lignes, la bbox
    &lt;UpperLeftY&gt;90.0&lt;/UpperLeftY&gt;
    &lt;LowerRightX&gt;180.0&lt;/LowerRightX&gt;
    &lt;LowerRightY&gt;-90.0&lt;/LowerRightY&gt;
    &lt;TileLevel&gt;19&lt;/TileLevel&gt; --&gt; Le nombre de niveaux dans le cache
    &lt;TileCountX&gt;2&lt;/TileCountX&gt; --&gt; Le nombre de tuiles en X à la plus
                                   faible résolution (niveau 0)
    &lt;TileCountY&gt;1&lt;/TileCountY&gt; --&gt; Le nombre de tuiles en Y à la plus
                                   faible résolution (niveau 0)
  &lt;/DataWindow&gt;
  &lt;Projection&gt;EPSG:4326&lt;/Projection&gt; --&gt; Projection de la source de données
  &lt;BlockSizeX&gt;256&lt;/BlockSizeX&gt; --&gt; Largeur des tuiles
  &lt;BlockSizeY&gt;256&lt;/BlockSizeY&gt; --&gt; Hauteur des tuiles
  &lt;BandsCount&gt;3&lt;/BandsCount&gt; --&gt; Canaux de couleur dans l'image
                                 (ici, 3 pour RGB)
&lt;/GDAL_WMS&gt;</pre>
<p>Avec ces informations, GDAL se retrouve capable de traiter la ressource distante comme une donnée locale. Mais ce n&#8217;est pas tout. MapServer pouvant utiliser un tel fichier de configuration XML comme source de données d&#8217;un LAYER, on peut connecter le service distant à un contexte MapServer particulier, et créer un service WMS non tuilé exploitant des données distantes tuilées. Pratique pour les outils SIG bureautiques par exemple, qui restent incapables d&#8217;exploiter le WMS-C !</p>
<p>La configuration d&#8217;un tel LAYER dans MapServer est assez basique :</p>
<pre>LAYER
 NAME test_wms_c
 DATA "wms_c.xml"
 METADATA
   "ows_title"    "Couche WMS-C réassemblée"
 END
 TYPE raster
 PROCESSING "OVERSAMPLE_RATIO=1" --&gt; Ne pas récupérer
                                     plus de tuiles que
                                     nécessaire (directive pour GDAL)
 PROCESSING "RESAMPLE=BILINEAR" --&gt; rééchantillonner l'image
 STATUS ON
 PROJECTION
 "init=epsg:4326"
 END
END</pre>
<p>On peut alors reprojeter la ressource initiale, ainsi que l&#8217;exploiter sur des échelles intermédiaires non prévues dans le tuilage. Attention quand-même à ne pas trop en faire, car les tuiles reprojetées et rééchantillonnées ne seront pas forcément très belles à voir. L&#8217;idéal reste quand-même de conserver au moins la projection initiale.</p>
<p>En résumé nous avons donc :</p>
<pre>  ressource distante tuilée, définie sur certaines échelles
                             et une projection spécifique
     |
     |
  GDAL : calcule les requêtes à effectuer,
         récupère les tuiles, les assemble,
         reprojette si demandé,
         découpe si nécessaire
     |
     |
  MapServer : publie la nouvelle ressource pseudo-locale
              en toute liberté (projection, échelles...) mais
              avec une qualité du rendu potentiellement
              dégradée (en fonction des transformations effectuées).</pre>
<p>Pour les obsessionnels, oui, on peut aussi mettre en cache la ressource MapServer locale. Mais pas besoin de TileCache pour cela. Les &laquo;&nbsp;minidrivers&nbsp;&raquo; intègrent un mécanisme de cache qui permet à GDAL de stocker localement les tuiles récupèrées et ainsi de pouvoir les réutiliser plus tard. Pour ce faire, il suffit de rajouter un bloc &laquo;&nbsp;cache&nbsp;&raquo; dans le fichier XML (voir la doc pour cela).</p>
<p>Mais je sens déjà la question venir chez tous les habitués des caches&#8230; Comment GDAL fait-il pour déterminer les résolutions et la grille à utiliser ? Ah, bonne question. Pour les résolutions, autant le dire tout de suite, il suppose unilatéralement que chaque niveau vaut la moitié du précédent, ou que chaque tuile se subdivise en quatre si vous préférez. C&#8217;est l&#8217;approche standard, mais si on vous demande du 25k, 20k,15k,10k,5k, ça ne va pas être possible.</p>
<p>Pour les limites de la grille, l&#8217;exemple plus haut se base sur une grille standard WGS sur le monde entier, et le TileCount permet de calculer l&#8217;emprise des tuiles du premier niveau, puis des niveaux suivants. Pour des emprises plus spécifiques, on peut aussi utiliser TileX et TileY, qui représentent des valeurs à ajouter pour gérer un décalage de la grille sans toucher à l&#8217;extent globale.</p>
<p>Les domaines d&#8217;application sont nombreux. On peut citer d&#8217;emblée :</p>
<ul>
<li>L&#8217;intégration de données tuilées dans des clients non prévus pour cela</li>
<li>La reprojection de données tuilées</li>
<li>L&#8217;utilisation de données tuilées à des zooms spécifiques non disponibles</li>
<li>L&#8217;alignement des grilles de deux ressources tuilées configurées différemment</li>
<li>L&#8217;exploitation en pur WMS de données lourdes à générer (Open Street Map par exemple)</li>
<li>Et sans doute bien d&#8217;autres problèmes d&#8217;exploitation que l&#8217;on rencontre.</li>
</ul>
<p>Ainsi, ce petit exemple illustre bien, une fois de plus, les étonnantes possiblités offertes par MapServer et GDAL quand ils sont utilisés de concert. Plus que le strict respect des normes, c&#8217;est la liberté qu&#8217;ils donnent aux utilisateurs pour résoudre leurs problèmes qui est précieuse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/283/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Retour sur le sprint</title>
		<link>http://www.neogeo-online.net/blog/archives/280/</link>
		<comments>http://www.neogeo-online.net/blog/archives/280/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 12:05:50 +0000</pubDate>
		<dc:creator>Guillaume</dc:creator>
				<category><![CDATA[Bases de données]]></category>
		<category><![CDATA[Mapserver]]></category>
		<category><![CDATA[PostGIS]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=280</guid>
		<description><![CDATA[Olivier Courtin nous propose un joli résumé du New York Sprint 2010. Deux posts plus techniques vont bientôt apparaître, quand la fatigue du voyage se sera estompée sans doute&#8230; On devrait aimerait alors en savoir plus sur les roadmaps de PostGIS et MapServer quant à leurs versions respectives 2.0 et 6.0. Pour Microsoft Word, ça [...]]]></description>
			<content:encoded><![CDATA[<p>Olivier Courtin nous propose un<a href="http://www.oslandia.com/tech/?p=624"> joli résumé</a> du <a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010" target="_blank">New York Sprint 2010</a>. Deux posts plus techniques vont bientôt apparaître, quand la fatigue du voyage se sera estompée sans doute&#8230; On <span style="text-decoration: line-through;">devrait</span> aimerait alors en savoir plus sur les roadmaps de PostGIS et MapServer quant à leurs versions respectives 2.0 et 6.0. Pour Microsoft Word, ça avait été des évolutions majeures&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/280/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MapServer et GeoServer perdent le nord…</title>
		<link>http://www.neogeo-online.net/blog/archives/277/</link>
		<comments>http://www.neogeo-online.net/blog/archives/277/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 15:02:31 +0000</pubDate>
		<dc:creator>Guillaume</dc:creator>
				<category><![CDATA[News of the GeoWorld]]></category>
		<category><![CDATA[Web mapping]]></category>
		<category><![CDATA[GeoServer]]></category>
		<category><![CDATA[Mapserver]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=277</guid>
		<description><![CDATA[En direct du New York City Code Sprint, Paul Ramsey nous transmet cette intéressante carte générée par MapServer : Inutile d&#8217;attraper un torticoli, tout est normal. Ce n&#8217;est que l&#8217;expression de l&#8217;utilisation du nouveau paramètre ANGLE dans MapServer et également disponible dans GeoServer, que chacun des logiciels implémente dans son interface WMS.  L&#8217;intérêt principal réside [...]]]></description>
			<content:encoded><![CDATA[<p>En direct du New York City Code Sprint, <a href="http://blog.cleverelephant.ca/2010/02/nyc-sprint-day-2.html" target="_blank">Paul Ramsey</a> nous transmet cette intéressante carte générée par MapServer :</p>
<div class="wp-caption alignnone" style="width: 510px"><img title="Carte avec rotation" src="http://farm3.static.flickr.com/2794/4376132629_d5ea4065b3.jpg" alt="" width="500" height="233" /><p class="wp-caption-text">Carte avec rotation</p></div>
<p>Inutile d&#8217;attraper un torticoli, tout est normal. Ce n&#8217;est que l&#8217;expression de l&#8217;utilisation du nouveau paramètre ANGLE dans <a href="http://trac.osgeo.org/mapserver/ticket/3332">MapServer</a> et également disponible dans GeoServer, que chacun des logiciels implémente dans son interface WMS.  L&#8217;intérêt principal réside dans le fait que si la carte est bien pivotée, les labels restent lisibles à l&#8217;horizontale, ce qui n&#8217;était pas le cas avec des rotations appliquées a posteriori, sur l&#8217;image finale.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/277/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WMS 1.3 et gestion des coordonnées</title>
		<link>http://www.neogeo-online.net/blog/archives/191/</link>
		<comments>http://www.neogeo-online.net/blog/archives/191/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 16:29:59 +0000</pubDate>
		<dc:creator>Guillaume</dc:creator>
				<category><![CDATA[News of the GeoWorld]]></category>
		<category><![CDATA[Mapserver]]></category>
		<category><![CDATA[WMS]]></category>

		<guid isPermaLink="false">http://www.neogeo-online.net/?p=191</guid>
		<description><![CDATA[Comme tout un chacun féru de nouveautés, l&#8217;intégration d&#8217;une nouvelle version d&#8217;un standard international (le WMS de l&#8217;OGC) dans un quasi-standard des serveurs cartographiques (MapServer 5.4) me donne envie de l&#8217;essayer. Tout le problème fut de trouver un client compatible WMS 1.3. C&#8217;est le côté contraignant de l&#8217;inter-opérabilité, il faut trouver des agents capables d&#8217;utiliser [...]]]></description>
			<content:encoded><![CDATA[<p>Comme tout un chacun féru de nouveautés, l&#8217;intégration d&#8217;une nouvelle version d&#8217;un standard international (le WMS de l&#8217;OGC) dans un quasi-standard des serveurs cartographiques (MapServer 5.4) me donne envie de l&#8217;essayer. Tout le problème fut de trouver un client compatible WMS 1.3. C&#8217;est le côté contraignant de l&#8217;inter-opérabilité, il faut trouver des agents capables d&#8217;utiliser la même norme, et ce n&#8217;est pas toujours le cas.</p>
<p>Autodesk proposant un <a href="http://geospatialfrance.typepad.com/geospatialfrance/2009/06/tlcharger-gratuitement-les-versions-dvaluations-dautocad-map-3d-2010-dautodesk-mapguide-enterprise-2010-et-dautocad-raster-d.html">téléchargement gratuit d&#8217;Autocad Map 2010</a> en version 30 jours, je me suis lancé (ou plutôt assis avec un café car le fichier à télécharger fait 2.1 Go !). Je n&#8217;avais pas vu Autocad Map depuis la version 2002, j&#8217;ai dû avoir la même sensation que le pilote de Caravelle qui se retrouve aux commandes d&#8217;un A 380&#8230; Rien que le nombre de barres d&#8217;outils vous donne l&#8217;envie de signer fissa pour une formation accélérée. C&#8217;est peut-être pour ça que c&#8217;est en téléchargement d&#8217;ailleurs.</p>
<p>Après quelques recherches je trouve la fonction d&#8217;ajout de couche WMS (il faut cliquer sur DATA dans les pratiques outils de gestion des cartes au dessus de la liste des couches&#8230;), avec dans la configuration du serveur un choix de version intégrant le 1.3.0. On touche au but donc. Je saisis ce qu&#8217;il faut, choisis une couche en projection Lambert (je ne dirais pas laquelle, pour ne pas raviver de querelle entre les anciens et les modernes, ce n&#8217;est pas mon propos). Résultat impeccable, bravo. Je refais un autre test avec une couche non projetée cette fois. Echec, rapport d&#8217;erreur un peu obscur&#8230; Après de longues recherches, je tombe <a href="http://mapserver.org/development/rfc/ms-rfc-30.html" target="_blank">sur le loup</a>. La norme WMS 1.3.0 impose aux coordonnées de la bounding box d&#8217;être en lat,lon pour les systèmes de référence non projetés, et non plus en lon,lat comme pour la version 1.1.1 et comme c&#8217;est encore le cas pour les systèmes projetés en WMS 1.3.0. Donc mon AutoCad, qui n&#8217;a sans doute pas pris cette subtilité en considération, ou mal, a soumis à MapServer une requête incohérente quant à la BBOX utilisée dans le contexte EPSG:4326. Et l&#8217;inter-opérabilité pris fin.</p>
<p>Autre nouveauté du WMS 1.3.0 l&#8217;utilisation du paramètres CRS= plutôt que SRS= dans la désignation du système de coordonnées, bien que MapServer accepte encore les deux, avec priorité au SRS. Celui-ci peut d&#8217;ailleurs s&#8217;affranchir du registre EPSG, le WGS 84 pouvant être désigné par CRS:84 plutôt que EPSG:4326. Ces diverses subtilités n&#8217;ont pas manqué de provoquer quelques <a href="http://www.mail-archive.com/mapserver-users@lists.umn.edu/msg06761.html" target="_blank">saines réactions</a> sur la liste MapServer-users dès 2006 !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neogeo-online.net/blog/archives/191/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

