exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Acquisition, exploitation et diffusion de donn´ ees issues du GPS
Jean-Michel Friedt Association Projet Aurore
jmfriedt@femto-st.fr transparents `ajmfriedt.free.fr
10 octobre 2008
1 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Introduction
Objectif :
• exploiter au mieux les informations issues d’un r´ecepteur GPS ...
• ... avec des outils d´evelopp´es exclusivement au moyen de logiciels libres.
• Fournir des outils d´edi´es `a la cartographie libre par GPS.
M´ethodes :
• enregistrer en continu les trames issues d’un r´ecepteur et les stocker sur support de stockage de masse non volatile.
• int´egrer ces informations dans des bases de donn´ees existantes
• exploiter ladatationdes trames pour synchroniser diverses sources d’informations (par exemple, un appareil photo num´erique)
2 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel
Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
M´ ethodes
• un r´ecepteur GPS OEM, ET312 ('70 euros)
• un microcontrˆoleur capable d’acqu´erir les trames et communiquer avec ...
• ... un support de stockage de masse non volatile (≤10 euros) le tout compatible avec une utilisation comme application embarqu´ee mobile,i.e.alimentation par piles.
Afin de diffuser le montage `a un maximum d’utilisateurs, maintenir le coˆut global en dessous de 100 euros.
3 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel
Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Le support de stockage de masse
Les cartes MultiMediaCard (MMC) ou Secure Digital (SD) :
• facilement disponibles, coˆut r´eduit (1 GB pour 5 euros !)
• volume de stockage “infini” pour notre application
• initialement bien document´ee
• peu de signaux : MOSI, MISO, CK et CS (+ alimentation et masse : 7 broches) en mode SPI
1 = CS 2= MOSI 3=GND 5=CK 6=GND 7=MISO 4=Vcc=3,3 V
1 2 3 4 5 6 7 8 9
8,9 : NC (SD)
4 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel
Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Le microcontrˆ oleur : 8051
• Initialement, un cœur de 8051 dans un boˆıtier compact : l’ADuC814.
• Outil de d´eveloppement : programmation en assembleur sous asxxxx, programmation par port s´erie bien document´e1.
• Diponibilit´e d’un port de communication SPI (communication avec cartes MMC ou SD)
• Fonctionnement `a fr´equence r´eduite pour une consommation r´eduite mais RAM r´eduite (pas de buffer de caract`eres)
1http:
//www.analog.com/static/imported-files/application_notes/uC004_v30.pdf
5 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel
Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Le microcontrˆ oleur : MSP430
• Microcontrˆoleur d´edi´e aux applications faibles consommations
• Plusieurs sources d’horloge pour adapter la vitesse aux besoins
• 2 KB de RAM⇒programmation en C possible
• Support´e pargcc:msp430-gcc pour une programmation en assembleur ou en C. D´eveloppement exclusivement avec des logiciels libres (msp430-jtagpour la programmation2).
• Disponibilit´e d’une librairie d’acc`es aux cartes MMC et SD 3.
2http://jmfriedt.free.fr/tp1.pdf
3http://www.true-random.com/homepage/projects/msp430_mmc/
6 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel
Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Architecture du circuit
• In system programming : logiciel embarqu´e ´evolutif en fonction des besoins
• Communication USB par FT232.
• Possibilit´e de couper alim. GPS et SD par FET+LTC1157 mais d´egrade la pr´ecision de la mesure
Vservo
"JTAG"
USB DVCC1P6.3/A32P6.4/A43P6.5/A54P6.6/A65P6.7/A76VREF+7XIN8XOUT/TCLK9VEREF+10VEREF-11P1.0/TACLK12P1.1/TA013P1.2/TA114P1.3/TA215P1.4/SMCLK16
P1.5/TA0 17
P1.6/TA1 18
P1.7/TA2 19
P2.0/ACLK 20
P2.1/TAINCLK 21
P2.2/CAOUT/TA0 22
P2.3/CA0/TA1 23
P2.4/CA1/TA2 24
P2.5/ROSC 25
P2.6/ADC12CLK 26
P2.7/TA0 27
P3.0/STE0 28
P3.1/SIMO0 29
P3.2/SOMI0 30
P3.3/UCLK 31
P3.4/UTXD0 32
P3.5/URXD033P3.6/UTXD134 P3.7/URXD135 P4.0/TB036P4.1/TB137P4.2/TB238 P4.3/TB339P4.4/TB440P4.5/TB541 P4.6/TB642 P4.7/TBCLK43P5.0/STE144P5.1/SIMO145 P5.2/SOMI146P5.3/UCLK147P5.4/MCLK48 P5.5/SMCLKP5.6/ALK 4950 P5.7/TBOUTH!RST/NMITDO/TDIXT2OUTP6.0/A0P6.1/A1P6.2/A2XT2INAVSSDVSSAVCCTMSTCKTDI 5152535455565758596061626364
12345678
JP4
R8
C9
C1
C10 C13C14 R14
C35
C36
C11C12
A1B2 C13 IC3AA8B9 C6
IC3C
7 14VDDIC3PVSS
LED5LED6
D3
3V3OUT 17
USBDM 16
USBDP 15
_RESET 19
27 OSCI
28 OSCO
GND17 GND218 GND321 TXD 1 RXD 5 _RTS 3 _CTS 11 _DTR 2 _DSR 9 _DCD 10 _RI 6
CBUS0 23 CBUS1 22 CBUS2 13 CBUS3 14 CBUS4 12
VCCIO4
AGND25
26 TEST
VCC20
IC5 CS 1
DI 2 GND 3 VCC 4 SCK 5 GND1 6 DO 7 IRQ 8
WP WP
CD CD
SW SW
SHIELD 14
D+
D- VBUS GND
R1
21
Q1
Q3
R4
R5 12
JP1 12
JP2
GATE1 2 GATE2 7
GND3
4 IN1 5 IN2
VCC6IC2 Q2
D S GQ4
D S G
SHDN/
5 2LBI
LBO/3 4REF
FB1
LX7 OUT8
GND6
IC4
C2
L1R2
1 2 3 JP3
1 2 3 JP5
1 2
JP7
1 2
JP6 1
2 3 4 5
MPS_RST
VDD
VDD VDD
GND
GND
GND TDI TCLKTCK TDOTMS
ONOFF1
ONOFF2
VSERIE VSERIE
3.3
SHOOT2 SHOOT1
CSVCC_SDSCK MOSI
MISO
4.0MHz xtal 3k
VDD
100n 1n
GND
GND
GND
GND
1n
GND
VDD
10k
VDD 100nf
>22uF
GND
GND
4066D
4066D
VDD GND 4k7
2k
2k LTC1157
GND 2N3819
2N3819
MAX1674
GND
GND GND
7 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt
Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Interface utilisateur
• L’utilisateur emm`ene son circuit pour acqu´erir une trace.
• Logiciel graphique de r´eception des traces enregistr´ees et conversion aux divers formats : gnuplot, KML, page web ...
• Condition n´ecessaire pour faire adopter le circuit par des utilisateurs en dehors de la communaut´e des d´eveloppeurs.
• Interface graphique portable sous GNU/Linux/Windows, programm´ee en Qt avec gestion
“optimis´ee” de la communication par port s´erie.
8 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt
Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Statistiques du trajet
Une page web capable de traiter un fichier au format NMEA pour en extraire des informations (Julien Garcia, Sequanux) :
http://sequanux.org/jg/stats.html?file=http://espace.web/fichier.nmea
$GPRMC,112634.000,A,4545.4884,N,00306.0006,E,29.75,206.66,090808,,*37
$GPGGA,112635.000,4545.4807,N,00305.9952,E,1,07,1.1,408.2,M,48.7,M,,0000*56
$GPGSA,A,3,09,18,26,12,28,17,15,,,,,,2.1,1.1,1.7*38
$GPRMC,112635.000,A,4545.4807,N,00305.9952,E,30.94,206.43,090808,,*3F
$GPGGA,112636.000,4545.4728,N,00305.9896,E,1,07,1.1,408.4,M,48.7,M,,0000*58
$GPGSA,A,3,09,18,26,12,28,17,15,,,,,,2.1,1.1,1.7*
$GPRMC,112636.000,A,4545.4728,N,00305.9896,E,32.28,206.55,090808,,*35
$GPGGA,112637.000,4545.4645,N,00305.9837,E,1,07,1.1,408.6,M,48.7,M,,0000*5A
$GPGSA,A,3,09,18,26,12,28,17,15,,,,,,2.1,1.1,1.7*38
$GPRMC,112637.000,A,4545.4645,N,00305.9837,E,33.47,206.91,090808,,*35
$GPGGA,112638.000,4545.4560,N,00305.9775,E,1,08,1.0,408.7,M,48.7,M,,0000*57
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPRMC,112638.000,A,4545.4560,N,00305.9775,E,34.28,206.97,090808,,*3F
$GPGGA,112639.000,4545.4473,N,00305714,E,1,08,1.0,408.9,M,48.7,M,,0000*5C
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPGSV,3,1,10,15,81,167,49,26,63,132,49,09,41,278,41,28,37,051,46*7A
$GPGSV,3,2,10,18,32,295,35,17,27,105,47,12,16,212,48,22,08,325,32*79
$GPGSV,3,3,10,10,04,180,35,08,02,078,*77
$GPRMC,112639.000,A,4545.4473,N,00305.9714,E,34.82,206.18,090808,,*3D
$GPGGA,112640.000,4545.4385,N,00305.9652,E,1,08,1.0,409.2,M,48.7,M,,0000*55
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPRMC,112640.000,A,4545.4385,N,305.9652,E,35.04,206.43,090808,,*3F
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPRMC,112640.000,A,4545.4385,N,305.9652,E,35.04,206.43,090808,,*3F
$GPGGA,112641.000,4545.4297,N,00305.9590,E,1,08,1.0,409.5,M,48.7,M,,0000*5C
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPRMC,112641.000,A,4545.4297,N,00305.9590,E,35.08,206.40,090808,,*3E
$GPGGA,112642.000,4545.4209,N,00305.9528,E,1,08,1.0,409.8,M,48.7,M,,0000*56
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPRMC,112642.000,A,4545.4209,N,00305.9528,E,34.87,206.36,090808,,*3E
$GPGGA,112643.000,4545.4122,N,00305.9466,E,1,08,1.0,410.0,M,48.7,M,,00*56
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPRMC,112643.000,A,4545.4122,N,00305.9466,E,34.38,206.54,090808,,*3E
$GPGGA,112644.000,4545.4036,N,00305.9406,E,1,08,1.0,410.3,M,48.7,M,,0000*50
$GPGSA,A,3,09,18,26,12,28,17,22,15,,,,,1.7,1.0,1.4*3F
$GPGSV,3,1,10,15,80,167,49,26,63,132,49,09,41,278,46,28,37,051,45*7F
$GPGSV,3,2,10,18,32,295,42,17,27,104,47,12,16,213,48,22,08,325,37*7C ...
9 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt
Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Exploitation des trames
• Circuit initialement d´evelopp´e pour participer au projet UPCT.
• int´egration des trames dans Google Maps et Google Earth
• lesencoded polylinespour permettre l’inclusion de traces volumineuses dans Google Maps
• r´ecemment, G´eoportail a diffus´e une API capable d’int´egrer les fichiers au format KML dans les cartes de l’IGN
• interfaces de calcul de statistiques du trajet (perl, PHP)
UPCT est mort⇒OpenStreetMap et son format GPX
10 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Exemple de page compatible avec Google Maps
• enregistrement aupr`es de Google pour obtenir une cl´e pour un site web
• exploitation de l’API Google Maps (GM) pour charger une carte
• exploitation de l’objet GPolyline qui prend en argument une liste de points GLatLng
• ajout de traces sur cette carte (Encoded Polyline)
• conversion automatique de trames NMEA en page HTML compatible GM en PHP.
<script src="http://maps.google.com/maps?file=api&v=2&
key=ABQIAAAA5Q7z5c..."
type="text/javascript">
var map = new GMap(document.getElementById("map"));
map.setMapType(G_SATELLITE_TYPE);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.centerAndZoom(new GPoint(clon, clat),5);
11 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Les GPolyline de Google Maps
Chaque segment de polygone est d´efini par ses coordonn´ees et sa couleur ⇒ souplesse mais lenteur de l’affichage d’un grand nombre de points.
points=[];
points.push(new GPoint(lon,lat));
map.addOverlay(new GPolyline(points, "#FF0000", 2, .75));
12 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Exemple de page compatible avec Google Maps
4<script src="PolylineEncoder.js" type="text/javascript"></script>
...
function p(lon,lat) {points.push(new GLatLng(lat, lon));}
function o(pres) {
var pe = new PolylineEncoder(9,4,pres); // $pres=0.000001 polyline = pe.dpEncodeToGPolyline(points,"#FF0000", 2, .75);
map.addOverlay(polyline); points=[];}
// map.addOverlay(new GPolyline(points, "#FF0000", 2, .75));points=[];}
function m(point,html) {
var marker = new GMarker(point);
map.addOverlay(marker);
GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html);
});
return marker;
}
4classe d´evelopp´ee par Mark McClure : la classe PolylineEncoder disponible `a http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/.
13 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Exemple de page compatible avec Google Earth
• Google Earth est une application ex´ecut´ee en local (pas
d’enregistrement) capable d’interpr´eter des scripts au format KML
• ces scripts contiennent des primitives du type affichage de trac´es vectoriels ou ajout d’une image bitmap sur le fond de carte
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Placemark>
<description>Trajet Besancon-Chamonix, 23-06-2006</description>
<name>Absolute Extruded</name>
14 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Exemple de page compatible avec Google Earth
Initialisation du point de vue de la trace :
<LookAt>
<longitude>6.02194166666667</longitude>
<latitude>47.24624</latitude>
<range>4451.842204068102</range>
<tilt>44.61038665812578</tilt>
<heading>-125.7518698668815</heading>
</LookAt>
Propri´et´es de la trace :
<visibility>1</visibility>
<open>0</open>
<Style>
<LineStyle> <color>ff00ffff</color> </LineStyle>
<PolyStyle> <color>7f00ff00</color> </PolyStyle>
</Style>
15 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Exemple de page compatible avec Google Earth
<LineString>
<extrude>1</extrude> <tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode>
<coordinates>
6.02194166666667,47.24624,100
6.02194333333333,47.2462416666667,100 6.02194333333333,47.2462433333333,100 ...
</coordinates> </LineString> </Placemark> </kml>
→N´ecessite une conversion du format degr´e.minute en degr´es d´ecimaux.
16 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Aller plus loin avec Google Earth
• possibilit´e de plaquer des images bitmap au dessus des images a´eriennes (par exemple cartographie d’une grandeur physique)
• possibilit´e d’ajouter des marqueurs.
(exploitation de la projection cylindrique5)
5http://www.eos.ubc.ca/~rich/map.html
17 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Exemple de page compatible avec Geoportail
• enregistrement aupr`es de l’IGN pour obtenir une cl´e
• exploitation de l’API Geoportail (GP) pour charger un fond de carte et commandes associ´ees
• ajout d’une couche charg´ee de placer sur une carte le contenu d’un fichier au formal KML
• seul un sous-ensemble (mais les plus importantes) des fonctions est support´e
<script type="text/javascript"
src="http://api.ign.fr/api?v=1.0beta&key=3201412424458240710&instance=map">
</script>
<script type="text/javascript"
src="./Geoportail-API-1.0beta2-src/js/lib/archetype.js?page=init">
</script>
...
geoportalLoadmap("MapDiv", "normal", "FXX");
map.setCenterAtLonLat(3.016111,45.786667,11);
map.openLayersPanel(false);
map.openToolsPanel(false);
map.addGeoportalLayers(map.allowedGeoportalLayers);
18 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Geoportail (2)
• Fond de cartes IGN + multiples traces facilement superposables : une nouvelle couche par fichier KML `a ins´erer
• le format (couleur, ´epaisseur de trait) est d´efini dans le fichier KML que Geoportail se contente de lire.
• format KML supporte les traces (<LineString>) ou photos (<Icon>...<href>dscn1736.jpg ... <w>100</w> ...</href>)
map.addLayer("KML","GPS jmfriedt", "060416.kml", {format: new Geoportal.Format.KML(
{externalProjection: map.getProjection()}), minZoomLevel:7});
... 19 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
GP v.s. GM
• Selon les sites, Geoportail semble fournir une meilleure r´esolution et un grandissement maximum plus important (cf autour de
Besan¸con).
• La qualit´e du positionnement varie selon les lieux
20 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
G´ eolocalistion de photos
• tout appareil photo num´erique (APN) poss`ede une horloge temps r´eel
• date et heure de prise de vue sont stock´ees dans l’entˆete EXIF lors de la prise de vue
• apr`es calibration entre l’heure “juste” du GPS et l’heure du capteur (APN), on peut identifier la position par comparaison des dates
• m´ethode impl´ement´ee en Perl, PHP et C++ (Qt)
21 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
G´ eolocalistion de photos
• tout appareil photo num´erique (APN) poss`ede une horloge temps r´eel
• date et heure de prise de vue sont stock´ees dans l’entˆete EXIF lors de la prise de vue
• apr`es calibration entre l’heure “juste” du GPS et l’heure du capteur (APN), on peut identifier la position par comparaison des dates
• m´ethode impl´ement´ee en Perl, PHP et C++ (Qt)
22 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
G´ eolocalistion de photos
Une s´erie de photos est plac´ee dans un r´epertoire avec la trace GPS associ´ee. Un script PHP recherche quelle photo est prise quand, et donc o`u.
if ($dh = opendir($dir)) {
while (($fileimg = readdir($dh)) !== false) {
if ((substr($fileimg,strlen($fileimg)-4)==’.JPG’) || (substr($fileimg,strlen($fileimg)-4)==’.jpg’)) {
$exif = exif_read_data($fileimg, 0,true); $val=$exif[IFD0][DateTime];
list($date,$val)=explode(" ",$val); list($heu,$min,$sec)=explode(":",$val);
...
$dateimgs[$n]=sprintf ("%02d%02d%02d", $heu,$min,$sec);
$nomimg[$n]=$fileimg;
$n=$n+1;
} } } ...
$photnum=array_search($heure,$dateimgs);
print "var singlepoint = new GPoint($loni,$lati);";
print "var marker$photnum = m(singlepoint,’<b>$nomimg[$photnum]: \
$heure<br> $loni,$lati</b><br><a href=\"$nomimg[$photnum]\"> <img src=\"$nomimg[$photnum]\" height=\"135\" width=\"180\"> </a>’);";
... 23 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
G´ eolocalistion de photos
24 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Modification de l’entˆ ete EXIF
• Au lieu de rechercher `a chaque nouvelle consultation de la page web quelle photo est prise quand→o`u, modification de l’entˆete EXIF pour y ajouter la position.
• Scriptgphotoync(http://sequanux.org/jg/) de Julien Garcia (Sequanux, Besan¸con).
• Le script PHP se contente alors de lire r´ecursivement les r´epertoires contenant des photos et de les afficher au bon endroit.
• solution compatible avec Panoramio
Identification dans chaque r´epertoire des photos en JPEG, lecture de l’entˆete EXIF `a la recherche de la po- sition :
$exif=exif_read_data($photo,0, true);
list($x,$y)=split("/",$exif[’GPS’][’GPSLatitude’][0]);
if ($y!=0) $c1=intval($x)/intval($y);
list($x,$y)=split("/",$exif[’GPS’][’GPSLatitude’][1]);
if ($y!=0) $c2=intval($x)/intval($y);
list($x,$y)=split("/",$exif[’GPS’][’GPSLatitude’][2]);
if ($y!=0) $c5=intval($x)/intval($y);
$latitude=intval($c1)+(intval($c2)+intval($c5)/60)/60;
list($x,$y)=split("/",$exif[’GPS’][’GPSLongitude’][0]);
...
25 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Conclusion
• Enregistrement continu des trame GPS fournit des bases de donn´ees originales
• Exploitation des donn´ees vis `a vis de cartes existants
• G´eolocalisation d’´ev`enements, de mesures scalaires ou des photos
• J’ai pr´esent´e ici des interfaces avec les bases de donn´ees gratuites accessiblesviale web : nombreux autres outils sp´ecialis´es pour l’exploitation de donn´ees g´eor´ef´erenc´ees (GRASS)
26 / 27
exploitation et diffusion de donn´ees issues du
GPS J.-M Friedt
Mat´eriel Interface sous Qt Google Maps Google Earth Geoportail Photographies num´eriques Conclusion et bibliographie
Bibliographie
Description d´etaill´ee de ces activit´es :
1 J.-M Friedt, E. Carry,Enregistrement de trames GPS –
d´eveloppement sur microcontrˆoleur 8051/8052 sous GNU/Linux, GNU/Linux Magazine France,81 (F´vrier 2006), disponible `a http://jmfriedt.free.fr/lm_gps.pdf
2 J.-M Friedt, E. Carry,Acquisition et diss´emination de trames GPS `a des fins de cartographie libre, GNU/Linux Magazine France, Hors S´erie27 (Octobre 2006), disponible `a
http://jmfriedt.free.fr/lm_hs27_gps.pdf
3 J.-M. Friedt,G´eolocalistion de photographies num´eriques, GNU/Linux Magazine France96, Juillet/Aout 2007, disponible `a http://jmfriedt.free.fr/lm_photos.pdf
Livres :
1 S. Erle, R. Gibson & J. Walsch,Mapping Hacks, O’Reilly (2005)
2 R. Gibson & J. Walsch,Google Maps Hacks, O’Reilly (2006)
3 J.P. Snyder,Flattening the Earth, University Of Chicago Press (1997)
27 / 27