<?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>Sp.Blog &#187; mashup</title>
	<atom:link href="http://blog.stephanepouyllau.org/tag/mashup/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.stephanepouyllau.org</link>
	<description>le blog de Stéphane Pouyllau</description>
	<lastBuildDate>Sat, 07 Jan 2012 18:07:33 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ca, mais si souviens toi, c&#8217;était où déjà ? ou le geocaching scientifique</title>
		<link>http://blog.stephanepouyllau.org/189</link>
		<comments>http://blog.stephanepouyllau.org/189#comments</comments>
		<pubDate>Fri, 26 Dec 2008 17:44:03 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[informatique]]></category>
		<category><![CDATA[géolocalisation]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[métadonnées]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xmp]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/?p=189</guid>
		<description><![CDATA[Pour noël, j&#8217;ai eu un GPS ! Ceux qui me connaissent me diront que n&#8217;ayant pas de voiture à Paris, ce n&#8217;est pas très utile. Et pourtant, si l&#8217;ont veut géo-référencer les photos de noël et le déballage des cadeaux par les enfants, cet outil devient très pratique, testons un peu&#8230; J&#8217;ai donc un GPS [...]]]></description>
			<content:encoded><![CDATA[<p>Pour noël, j&#8217;ai eu un GPS ! Ceux qui me connaissent me diront que n&#8217;ayant pas de voiture à Paris, ce n&#8217;est pas très utile. Et pourtant, si l&#8217;ont veut géo-référencer les photos de noël et le déballage des cadeaux par les enfants, cet outil devient très pratique, testons un peu&#8230;</p>
<p><a title="D90+GP-1 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3137994093/"><img src="http://farm4.static.flickr.com/3263/3137994093_23ef642c62.jpg" alt="D90+GP-1" width="500" height="375" /></a></p>
<p>J&#8217;ai donc un GPS pour mon <a href="http://imaging.nikon.com/products/imaging/lineup/d90/fr" target="_blank">D90</a> : il s&#8217;agit de l&#8217;unité GP-1, qui se place à la place du flash ou sur le coté. Pour info, dans le <a href="http://www.europe-nikon.com/product/fr_FR/products/broad/1635/overview.html" target="_blank">Nikon P.6000</a>, un compact, le GPS est en standard.</p>
<p>Mes grands-parents, s&#8217;ils étaient en vie, diraient : &laquo;&nbsp;Mais que fait Stéphane, dans le jardin, avec un appareil photographique pointant vers le ciel ?&nbsp;&raquo; Au début, la première capture des satellites est un peu longue : plus de 5 s., c&#8217;est déjà embêtant si vous devez déclencher tout de suite&#8230; passons. En laissant l&#8217;appareil en veille, ça va mieux. Ensuite cela semble assez précis (même dans le jardin), l&#8217;altitude aussi (testé avec un bon vieil altimètre).</p>
<p><a title="D90+GP-1 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3137992033/"><img src="http://farm4.static.flickr.com/3124/3137992033_3cc8639363.jpg" alt="D90+GP-1" width="500" height="375" /></a></p>
<p>Clic-clac, les coordonnées et l&#8217;altitude sont bien capturées et incluses dans les méta-données EXIF de l&#8217;image. Avec Exiftool (et tous les outils qui tourne autour), par exemple, il est facile de voir et d&#8217;exporter ces valeurs de positionnement (extrait) dans ExiftoolGUI&#8230;</p>
<p><a title="D90+GPS_1 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3138640188/"><img src="http://farm4.static.flickr.com/3210/3138640188_3e1408c5cd.jpg" alt="D90+GPS_1" width="450" height="500" /></a></p>
<p>De les sortir sous la forme d&#8217;un tableau HTML (voir plus bas)&#8230;</p>
<table border="1">
<tbody>
<tr>
<td>EXIF</td>
<td style="text-align: left;">GPSVersionID</td>
<td>2.2.0.0</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSLatitudeRef</td>
<td>North</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSLongitudeRef</td>
<td>West</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSAltitudeRef</td>
<td>Above Sea Level</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSTimeStamp</td>
<td>11:24:24</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSSatellites</td>
<td>05</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSMapDatum</td>
<td></td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSDateStamp</td>
<td>2008:12:25</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSAltitude</td>
<td>36 m Above Sea Level</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSDateTime</td>
<td>2008:12:25 11:24:24</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSLatitude</td>
<td>44 deg 45&#8242; 15.21&#8243; N</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSLongitude</td>
<td>0 deg 34&#8242; 31.58&#8243; W</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSPosition</td>
<td>44 deg 45&#8242; 15.21&#8243; N, 0 deg 34&#8242; 31.58&#8243; W</td>
</tr>
<tr>
<td>Composite</td>
<td>SubSecDateTimeOriginal</td>
<td>2008:12:25 13:21:45.00</td>
</tr>
</tbody>
</table>
<p></p>
<p>&#8230;Et bien entendu, il est très facile d&#8217;exploiter cela avec un outil cartographique en local, tel que l&#8217;excellent <a href="http://www.geosetter.de/en/" target="_blank">GeoSetter</a> dont une version en français est disponible :</p>
<p><a title="D90+GPS_2 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3138641032/"><img src="http://farm4.static.flickr.com/3291/3138641032_f12609b930.jpg" alt="D90+GPS_2" width="500" height="313" /></a></p>
<p><a title="D90+GPS_3 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3138641916/"><img src="http://farm4.static.flickr.com/3104/3138641916_15b5d686b5.jpg" alt="D90+GPS_3" width="500" height="313" /></a><br />
ou bien via <a href="http://www.flickr.com/photos/stephanepouyllau/3137816926/map/?view=everyones" target="_blank">l&#8217;outil carte de Flickr</a> (là, rien à faire de particulier, les photos sont positionnées par défaut lors du chargement).</p>
<p>Tout cela peut aussi ce faire via son Firefox avec IExif, Dans la monde Google avec Picasa et Google Earth, etc.</p>
<p>Si <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format#Problems" target="_blank">le format EXIF vous pose un problème</a>, il est possible de stocker ces données dans du <a href="http://www.loc.gov/standards/mix/" target="_blank">MIX</a>. C&#8217;est évidement plus complexe pour l&#8217;exploitation, du moins pour le grand public.</p>
<p>Extraire ce type de méta-données avec du Perl est très facile : le programme <a href="http://www.sno.phy.queensu.ca/~phil/exiftool/" target="_blank">perl exiftool de Phil Harvey</a> est très bien pour cela : une petit ligne du type <em>&laquo;&nbsp;Exiftool -exif:GPSAltitude -h  img &gt; mes_exifs.html&nbsp;&raquo;</em> et l&#8217;on récupère l&#8217;altitude d&#8217;une série d&#8217;images dans un tableau HTML.</p>
<p>Avec du PHP c&#8217;est possible aussi : <a href="http://fr2.php.net/manual/fr/book.exif.php" target="_blank">il faut charger les extensions php_mbstring et exif (dans cet ordre)</a> dans le php.ini ; ensuite il est possible d&#8217;utiliser la fonction <em><span class="methodname"><a href="http://fr2.php.net/manual/fr/book.exif.php" target="_blank">exif_read_data</a>.</span></em></p>
<p>Bref, bientôt TOUS les appareils géo-tagueront en automatique et l&#8217;on ne comprendra pas pourquoi les photos anciennes ne le sont pas (les documentalistes vont avoir du travail) : ainsi les interfaces d&#8217;intérogations vont évoluer : un fond de carte, des outils de sélection (ronds, carrés, etc.), des plots de couleurs, des requêtes externes, des réponses aux questions qui s&#8217;afficheront sous la forme d&#8217;un chapelet de marqueurs. Au CN2SV, nous avons commencé à le faire des cartes et des atlas anciens, j&#8217;imagine ce que nous allons faire dans quelques années !</p>
<p><a title="Capture d'écran de l'application CN2SV pour les géodonnées de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/1613039316/"><img src="http://farm3.static.flickr.com/2377/1613039316_a1d82ab446.jpg" alt="Capture d'écran de l'application CN2SV pour les géodonnées" width="500" height="313" /></a></p>
<p>Mais j&#8217;y pense&#8230; le temps d&#8217;écrire ce billet et tout cela doit déjà exister, j&#8217;en suis sûr (et en open-source ?). En attendant la suite, j&#8217;espère que <a href="http://www.flickr.com/photos/jacquesperconte/sets/72157610731032923/" target="_blank">les artistes vont trouver des applications moins &laquo;&nbsp;utiles&nbsp;&raquo; que celles décrites ici</a>. Je m&#8217;en retourne à mon mash-up de noël.</p>
<p>Joyeuses fêtes,</p>
<p>Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/189/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Frises chronologiques sur le web : utilisation de Timeline pour faire un mashup AJAX avec PHP et MySQL</title>
		<link>http://blog.stephanepouyllau.org/99</link>
		<comments>http://blog.stephanepouyllau.org/99#comments</comments>
		<pubDate>Sun, 02 Dec 2007 11:36:34 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[informatique]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/frises-chronologiques-sur-le-web-utilisation-de-timeline-un-mashup-ajax-avec-php-et-mysql</guid>
		<description><![CDATA[Bonsoir, Je profite d&#8217;un week-end loin de Paris et d&#8217;un long voyage en train pour décrire (mais avec beaucoup de retard) un petit mashup que j&#8217;ai réalisé pour le site @.ampère et l&#8217;histoire de l&#8217;électricité. L&#8217;idée de départ était de développer des chronologies avec l&#8217;outil Timeline mis au point par le MIT et que pas [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir,</p>
<p>Je profite d&#8217;un week-end loin de Paris et d&#8217;un long voyage en train pour décrire (mais avec beaucoup de retard) un petit mashup que j&#8217;ai réalisé pour le site <a href="http://www.ampere.cnrs.fr" target="_blank">@.ampère et l&#8217;histoire de l&#8217;électricité</a>. L&#8217;idée de départ était de développer des chronologies avec <a href="http://simile.mit.edu/timeline/" title="Timeline" target="_blank">l&#8217;outil Timeline</a> mis au point par le <a href="http://www.mit.edu/" title="MIT, Boston, US." target="_blank">MIT</a> et que pas mal de développeurs connaissent et utilisent. Timeline permet de créer des frises chronologiques à l&#8217;image de celles encore présentes dans les livres scolaires d&#8217;histoire (nous avons tous rêvés devant ces frises en couleurs présentant l&#8217;histoire de l&#8217;Homme par exemple). C&#8217;est outil utilise des éléments en javascript et du XML : c&#8217;est donc un système basé sur AJAX. Dans le site @.ampère nous voulions faire une frise avec des éléments historiques différents le tout devant être synchronisé :</p>
<ul>
<li>une sous-frise sur les grands personnages de l&#8217;histoire de l&#8217;électricité</li>
<li>une sous-frise sur les grandes découvertes de ce même domaine</li>
</ul>
<p>Dans Timeline, les évènements (events) sont stockés dans un fichier XML très simple. Dans le but d&#8217;inclure Timeline dans le système d&#8217;information (SI) du site, nous avons utilisé deux tables MySQL pour mettre les données brutes (date, contenu de l&#8217;évènement, etc.). Un script PHP utilisant DOM réalise alors une présentation XML de ces données : en sortie, nous avons deux fichiers XML, un pour chaque sous-frise, qui sont normés suivant le schéma des fichier nécessaire au fonctionnement de Timeline. Nos deux tables MySQL sont indépendantes du système AJAX de Timeline : c&#8217;est PHP/DOM qui formate les données en XML suivant la grammaire Timeline. Nous avons d&#8217;ailleurs un autre programme PHP qui présente ces même données sous la forme d&#8217;une page web classique. Le schéma suivant en résume le modèle :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/2079757325/" title="Modèle informatique de frise chronologique (site www.ampere.cnrs.fr) de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2275/2079757325_35b1f4a0ca.jpg" alt="Modèle informatique de frise chronologique (site www.ampere.cnrs.fr)" border="0" height="375" width="500" /></a></p>
<p>Les deux fichiers XML sont stockés dans un répertoire du serveur et chargé dans l&#8217;application AJAX qui gère Timeline. Le XML resemble à ceci :<br />
<code><br />
</code></p>
<pre id="line1"><span class="pi">&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;</span>&lt;<span class="start-tag">data</span>&gt;

&lt;<span class="start-tag">event</span><span class="attribute-name"> start</span>=<span class="attribute-value">"Jan 00 1544 00:00:00 GMT" </span><span class="attribute-name">end</span>=<span class="attribute-value">"Jan 00 1603 00:00:00 GMT" </span><span class="attribute-name"></span></pre>
<pre id="line1"><span class="attribute-name">image</span>=<span class="attribute-value">"AMP_1015.jpg" </span><span class="attribute-name">isDuration</span>=<span class="attribute-value">"true" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name">title</span>=<span class="attribute-value">"William GILBERT"</span>&gt;(1544-1603)&lt;/<span class="end-tag">event</span>&gt;&lt;<span class="start-tag">event</span><span class="attribute-name"> start</span>=<span class="attribute-value">"Jan 00 1666 00:00:00 GMT" </span><span class="attribute-name">end</span>=<span class="attribute-value">"Jan 00 1736 00:00:00 GMT" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name"></span></pre>
<pre id="line1"><span class="attribute-name">isDuration</span>=<span class="attribute-value">"true" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name">title</span>=<span class="attribute-value">"Stephen GRAY"</span>&gt;(1666-1736)&lt;/<span class="end-tag">event</span>&gt; ...</pre>
<pre id="line1">&lt;/data&gt;</pre>
<p>Pour le tout fonctionne, il nous a fallu ajouter un petit programme php de vérification de la forme des dates/heures histoire de ne pas avoir de bug dans l&#8217;une des deux sous-frises. Pour terminer nous avons ajouté, dans le fichier javascript de la frise (main.js) qui pilote l&#8217;affichage écran, les instructions suivantes :</p>
<pre><font color="#99cc00">bandInfos[1]</font>.eventPainter.setLayout(bandInfos[1].eventPainter.getLayout());

tl = Timeline.create(document.getElementById("my-timeline"), bandInfos, Timeline.HORIZONTAL);

Timeline.loadXML(<font color="#993366">"kronos1.xml"</font>, function(xml, url) { <font color="#ff6600">eventSourceA</font>.loadXML(xml, url); });

Timeline.loadXML(<font color="#993366">"kronos2.xml"</font>, function(xml, url) { <font color="#ff6600">eventSourceB</font>.loadXML(xml, url); });</pre>
<p>Nous avons une <font color="#99cc00">&laquo;&nbsp;bandInfos&nbsp;&raquo;</font> dans laquelle nous &laquo;&nbsp;chargeons&nbsp;&raquo; les deux fichier XML : <font color="#993366">kronos1.xml et kronos2.xml</font>. Ce chargement est réalisé au sein des deux <font color="#ff6600">eventSource (A et B)<font color="#000000">. Ce fichier, main.js, qui est un fichier javascript pur est chargé dans une page HTML (ou PHP dans notre cas) par l&#8217;utilisation d&#8217;une simple balise &lt;script&gt; dans l&#8217;entête. La frise &laquo;&nbsp;double&nbsp;&raquo; est ensuite affiché dans le code HTML via un &laquo;&nbsp;id&nbsp;&raquo; de balise &lt;div&gt; : </font></font></p>
<pre id="line10">&lt;<span class="start-tag">div</span><span class="attribute-name"> id</span>=<span class="attribute-value">"my-timeline" </span><span class="attribute-name">style</span>=<span class="attribute-value">"height:800px; width:100%;"</span>&gt;&lt;/<span class="end-tag">div</span>&gt;</pre>
<pre id="line10"></pre>
<p>Le tour est joué, nous avons une belle frise chronologique présentant de façon synoptique ces deux types d&#8217;évènements.  Voici le résultat :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/2079807147/" title="FriseChronoAmpere de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2088/2079807147_ae47b09cb8.jpg" alt="FriseChronoAmpere" border="0" height="375" width="500" /></a></p>
<p>Bonne fin de week-end,</p>
<p>Stéphane.</p>
<p>PS : Merci à Marie-Hélène Wronecki pour le travail sur la base de données MySQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/99/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KML simple et géodonnées (partie 1)</title>
		<link>http://blog.stephanepouyllau.org/96</link>
		<comments>http://blog.stephanepouyllau.org/96#comments</comments>
		<pubDate>Thu, 18 Oct 2007 08:06:12 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[archives numériques]]></category>
		<category><![CDATA[kml]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/kml-simple-et-geodonnees-au-service-darchives-de-science-partie-1</guid>
		<description><![CDATA[Il est possible de construire rapidement de petites applications simples permettant d&#8217;exploiter des documents issus d&#8217;archives visuelles (cartes, photos, plans) en les connectant a des données bibliographiques. Ces applications utilisent de plus en plus les langages du web (et, depuis 2005, ceux du web 2.0) et elles se développent autour d&#8217;XML. Voici une première partie/introduction [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0cm">Il est possible de construire rapidement de petites applications simples permettant d&#8217;exploiter des documents issus d&#8217;archives visuelles (cartes, photos, plans) en les connectant a des données bibliographiques.  Ces applications utilisent de plus en plus les langages du web (et, depuis 2005, ceux du web 2.0) et elles se développent autour d&#8217;XML. Voici une première partie/introduction au KML et le début d&#8217;un exemple avec le géo-référencement 2D de cartes anciennes via Google Maps, du KML et du XML.</p>
<p style="margin-bottom: 0cm">Le KML (Keyhole Markup Language) est une grammaire XML permettant d&#8217;afficher et de gérer des données dans Google Maps et Earth. Il offre la possibilité de poser des points, tracer des lignes, des polygones. Dans Google Earth, s&#8217;y ajoute les angles de vue, les objets 3D simples ou texturés. Mais l&#8217;une des fonctionnalités les plus intéressante pour la recherche reste l&#8217;enrichissement en données externes. KML peut diffuser des données XHTML riches (textes, images, videos), des images plaquées sur la photo satellitaire, etc&#8230;</p>
<p style="margin-bottom: 0cm">Il existe une version compressé du KML, le KMZ. Pour ceux qui ont utilisé comme moi du VRML (Virtual Reality Modeling Language), nous avions aussi une version &laquo;&nbsp;Gzipé&nbsp;&raquo; du langage  : le .wrz (à la place du .wrl). le KMZ encapsule aussi les images qui peuvent être liées au fichier KML. Il est possible de fabriquer du KMZ avec un simple compresseur : WinZip, Gzip, etc.</p>
<p style="margin-bottom: 0cm">Sur le plan syntaxique, le KML se présente comme du XML :</p>
<p>&lt;?xml version=&nbsp;&raquo;1.0&#8243; encoding=&nbsp;&raquo;UTF-8&#8243;?&gt;<br />
&lt;kml xmlns=&nbsp;&raquo;http://earth.google.com/kml/2.2&#8243;&gt;<br />
&lt;Placemark&gt;<br />
&lt;name&gt;Siège du CNRS&lt;/name&gt;<br />
&lt;description&gt;Paris, le siège du CNRS.&lt;/description&gt;<br />
&lt;LookAt&gt;<br />
&lt;longitude&gt;2.264605600614077&lt;/longitude&gt;<br />
&lt;latitude&gt;48.84727288728012&lt;/latitude&gt;<br />
&lt;altitude&gt;0&lt;/altitude&gt;<br />
&lt;range&gt;171.6689944655567&lt;/range&gt;<br />
&lt;tilt&gt;-6.848248640637841e-011&lt;/tilt&gt;<br />
&lt;heading&gt;0.0004740658326556625&lt;/heading&gt;<br />
&lt;/LookAt&gt;<br />
&lt;Point&gt;<br />
&lt;coordinates&gt;2.264605600614077,48.84727288728013,0&lt;/coordinates&gt;<br />
&lt;/Point&gt;<br />
&lt;/Placemark&gt;<br />
&lt;/kml&gt;</p>
<p style="margin-bottom: 0cm"> Ce petit fichier KML permet de placer dans Google Earth ou Maps, un point localisé sur le siège du CNRS, l&#8217;élément &lt;LookAt/&gt; correspondant au point de vue de la caméra qui « regarde » ce point. &lt;Placemark/&gt; encapsule le &lt;Point/&gt; géocodé présentant la latitude et la longitude. Dans le monde Earth / Maps de Google, les coordonnées géographiques sont en degrés décimaux (comptés positivement vers le Nord pour la latitude, et vers l&#8217;Est pour la longitude). Ici, le géocodage est très précis (2.264605600614077), mais si vous utilisez l&#8217;API de Maps, la précision est de l&#8217;ordre du mètre.  Autre limite, dans Google Maps, seuls certains éléments peuvent être utilisés : les points, les lignes, les polygones, les styles, les icônes et les liens et l&#8217;application de couches multiple (placage d&#8217;images), mise en œuvre de dossiers et types de vues. Pour le moment (version 2.2 du KML) la 3D n&#8217;est pas utilisée (nous sommes dans Maps, donc le royaume de la 2D).</p>
<p style="margin-bottom: 0cm">Ce petit exemple, permet de ce lancer dans la construction de fichiers KML et ainsi enrichir en information de toutes sortes de cartes dans le vaste &laquo;&nbsp;bac à sable&nbsp;&raquo; que peut être Google Maps ou Earth. De nombreux scientifiques, les géographes principalement, utilisent déjà ce format. J&#8217;ai découvert aussi <a href="http://www.discip.ac-caen.fr/histgeo/geoportail/comparaison.htm">ce site qui présente Google Earth et le KML pour les enseignants du secondaire</a>.  Le KML n&#8217;est pas le seul format XML dans le domaine des &laquo;&nbsp;géo-formats/2D/3D&nbsp;&raquo; : il y a le WMS, WFS et GML venant du monde de la géographie, les formats pour &laquo;&nbsp;services web&nbsp;&raquo; : AtomPub, GeoRSS et le KML/Z (avec <a href="http://www.rajsingh.org/blog/2007/09/19/kml-is-about-maps-not-data/">d&#8217;autres limites cependant</a>).</p>
<p style="margin-bottom: 0cm">Dans le cadre du <a href="http://www.arch.cn2sv.cnrs.fr/ead/">CN2SV</a>, nous avons publié l&#8217;inventaire d&#8217;un fonds de cartes topographiques anciennes (XIXe-XXe siècle) de la cartothèque du <a href="http://www.regards.cnrs.fr">centre de documentation REGARDS-CNRS</a>. Nous avons décidé de coupler ce fonds de cartes, après numérisation, avec une base de données bibliographique/documentaire classique. Pour cela, nous avons utilisé une base de données intermédiaire qui, à partir des données lat./long. des quatres angles d&#8217;une carte, a pour mission de stocker des données pour produire à la fois du KML (pour l&#8217;instant sous la forme de petit fichier, donc nous sommes en mode asynchrone) qui peut être utilisé dans Google Earth pour visualiser l&#8217;emprise de la carte, ces villes importantes, etc. Mais aussi du XML compatible avec l&#8217;API de Google Maps (qui est légèrement différent du KML natif, du moins dans sa version 2.2 ).</p>
<p style="margin-bottom: 0cm">Dans un second temps, j&#8217;ai développé une petit programme PHP qui exploite ces fichiers XML (pour l&#8217;API&#8230;) dans un contexte l&#8217;application riche. Du KML simple, nous passons dans un micro format XML propre (mais nous pourrions faire cela avec du KML directement, c&#8217;est juste une histoire d&#8217;optimisation du fichier pour l&#8217;API de Google Maps), ainsi pour chacune des cartes nous avons ceci :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/1613039316/" title="Capture d'écran de l'application CN2SV pour les géodonnées de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2377/1613039316_139531b4e0_o.png" width="550" height="344" alt="Capture d'écran de l'application CN2SV pour les géodonnées" /></a></p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p>&lt;?xml version=&nbsp;&raquo;1.0&#8243; encoding=&nbsp;&raquo;UTF-8&#8243;?&gt;<br />
&lt;mygeod xmlns=&nbsp;&raquo;http://www.cn2sv.cnrs.fr/xml/mygeoc/0.1&#8243;&gt;</p>
<p>&lt;markers&gt;<br />
&lt;marker lat=&nbsp;&raquo;-20.53105&#8243; lng=&nbsp;&raquo;47.24332&#8243; label=&nbsp;&raquo;Ville d&#8217;Ambositra&nbsp;&raquo; html=&nbsp;&raquo;Informations sur la ville d&#8217;Ambositra &lt;br&gt;avec la base de données REGARDS-ADES-CNRS&nbsp;&raquo; infolink=&nbsp;&raquo;query.php?value=Ambositra&nbsp;&raquo;/&gt;<br />
&lt;marker lat=&nbsp;&raquo;-20.62105&#8243; lng=&nbsp;&raquo;47.20332&#8243; label=&nbsp;&raquo;Carte de Madagascar&nbsp;&raquo; html=&nbsp;&raquo;Informations sur la ville d&#8217;Ivato &lt;br&gt;avec la base de données REGARDS-ADES-CNRS&nbsp;&raquo; infolink=&nbsp;&raquo;query.php?value=Ivato+Madagascar&nbsp;&raquo;/&gt;<br />
&lt;marker lat=&nbsp;&raquo;-19.871795326377995&#8243; lng=&nbsp;&raquo;47.03521728515625&#8243; label=&nbsp;&raquo;Carte de Madagascar&nbsp;&raquo; html=&nbsp;&raquo;Informations sur la ville d&#8217;Antsirabe &lt;br&gt;avec la base de données REGARDS-ADES-CNRS&nbsp;&raquo; infolink=&nbsp;&raquo;query.php?value=Antsirabe&nbsp;&raquo;/&gt;<br />
&lt;marker lat=&nbsp;&raquo;-20.27137605095937&#8243; lng=&nbsp;&raquo;44.31661605834961&#8243; label=&nbsp;&raquo;Carte de Madagascar&nbsp;&raquo; html=&nbsp;&raquo;Une carte est disponible&nbsp;&raquo; infolink=&nbsp;&raquo;?id=R_MADA11_04_00014&#8243;/&gt;<br />
&lt;line colour=&nbsp;&raquo;#ff0000&#8243; width=&nbsp;&raquo;5&#8243;&gt;<br />
&lt;point lat=&nbsp;&raquo;-19.40&#8243; lng=&nbsp;&raquo;45.32&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-19.40&#8243; lng=&nbsp;&raquo;48.11&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-21.20&#8243; lng=&nbsp;&raquo;48.11&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-21.20&#8243; lng=&nbsp;&raquo;45.32&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-19.40&#8243; lng=&nbsp;&raquo;45.32&#8243;/&gt;<br />
&lt;/line&gt;<br />
&lt;center lat=&nbsp;&raquo;-20.33&#8243; lng=&nbsp;&raquo;46.90&#8243; zoom=&nbsp;&raquo;8&#8243;/&gt;<br />
&lt;/markers&gt;</p>
<p>&lt;/mygeod&gt;</p>
<p>Ce fichier XML permet de délimiter la couverture de carte et de pointer des lieux (les &laquo;&nbsp;markers&nbsp;&raquo; de Google Maps). Les attributs sont très simples :</p>
<ul>
<li>label : titre de la vignette/popup</li>
<li>html : contenu de la vignette/popup</li>
<li>lat : latitude</li>
<li>lng : longitude</li>
<li>zoom (pour &lt;center/&gt;) : facteur du zoom d&#8217;entrée dans la carte</li>
<li>infolink : lien vers le connecteur de/des bases de données à interroger (mais on pourrait imaginer une chose avec  du xlink et xpointer si l&#8217;on veut rester dans le monde XML)</li>
</ul>
<p style="margin-bottom: 0cm">Il suffit d&#8217;utiliser de <a href="http://www.google.com/apis/maps/">l&#8217;API de Google Map</a> pour monter l&#8217;application. Mais cela sera pour le prochain billet&#8230;</p>
<p style="margin-bottom: 0cm">Stéphane.</p>
<p style="margin-bottom: 0cm">PS : Le format KML est relativement simple, mais un ouvrage de référence en français manque (à moins qu&#8217;il soit sous presse).</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/96/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

