Géocoding des photos
-
Pose partage
-
Forum
-
Retouche photo : discussions générales
-
Géocoding des photos
02/02/2010 à 09:38
Bonjour tout le monde
c'est l'histoire d'un photographe qui voulait s'amuser avec les googlemaps, et les données exifs de ses photos, comme il n'avait rien d'autre à faire et que l'idée lui était passée par la tête, il a créé ça :
http://hypercube.dynalias.org/sections/geoloc/si certains sont volontaires pour tester, je suis preneur de tous les retours
(attention, vieille machine, connexion avec un débit pas très élevé, donc testez avec de petites photos ou soyez très patients.)
faut peut être que je vous dise ce que c'est....
une carte dans laquelle on clique sur l'endroit ou on a pris une photo, on sélectionne la photo, et cela inscrit les données longitude et latitude dans les données exif.
02/02/2010 à 10:17
Très bonne idée, le concept me plait beaucoup. Je vais tester ton outil comme demandé.
Cet outil pourrait être utilisé par les membres dont l'APN n'est pas équipé d'un GPS (ce qui est encore assez rare...), avant de poster une photo.
De mon côté, je vais intégrer la prise en compte des données GPS pour affichage sur le forum !
Bravo à toi pour ce dev ;)
02/02/2010 à 10:36
oula c'est super crade comme dev, va falloir que je recode tout en propre si ça marche :p
j'ai fait ça hier soir vite fait à partir d'un module que j'avais fait au taf pour une démo
02/02/2010 à 10:52
En tout cas ça a le mérite d'apporter une solution à un vrai besoin fonctionnel (bon, je vais me calmer un peu car ça sent la déformation professionnelle là :P).
Si tu as besoin d'un coup de main côté technique, je te renvoie la proposition. C'est toujours sympa de travailler sur des trucs intéressants...
On se tient au courant ;)
02/02/2010 à 11:18
il faut que je rajoutes encore plein de tests :
- type jpeg, pas trop compliqué côté serveur, mais côté client ???? à voir
- trouver mieux qu'une crontab pour supprimer les fichiers temporaires, ou mieux, trouver le moyen de détecter la fin du dl.....
- que faire en cas d'absence de données exif (actuellement rejet)
- tester sur d'autres navigateurs
- externaliser une feuille de style
- externaliser la clef googleapi
- vérifier la présence de données gps, et demander à l'utilisateur que faire
- ajouter les référentiels de coordonnées (E/O - N/S)
-quelques stats d'utilisation ?
- nettoyer et réorganiser l'arborescence du projet (fork d'un autre projet)
enfin plein de choses
02/02/2010 à 14:37
Bonjour les informaticiens :) !
Très bonne idée cette appli ! Je me propose également comme testeur (mais ce sera le maximum de mes capacités ;) )
J'ai essayé : Effectivement, c'est assez long à charger... et au bout d'un moment mon navigateur (IE) m'indique "Terminé, mais il ya des erreurs sur la page" en bas à gauche...
Le "truc" continue à tourner... et plus rien... on ne me propose pas de lien pour télécharger la photo modifiée...
Fausse manip (je suis un pro !) ou bug ?
Matthieu.
PS : Perso, je fais ça avec iPhoto et indique un "emplacement" à mes "évènements" ; ça marche plutôt pas mal.
02/02/2010 à 14:56
De mon côté j'obtiens un "There was an error during file upload!". je vais faire des tests plus poussés ce soir !
02/02/2010 à 14:58
[quote=Matthieu]PS : Perso, je fais ça avec iPhoto et indique un "emplacement" à mes "évènements" ; ça marche plutôt pas mal.[/quote]
Et oui, mais sur ton Mac tu roules dans une rolls, les utilisateurs de Windows n'ont pas cette chance ;)
Et puis je trouve le concept sympa de pouvoir faire ça sur le web, n'importe quand et n'importe où, sans avoir la contrainte d'être sur son poste avec iPhoto ou Aperture...
02/02/2010 à 15:36
pour l'instant j'ai référencé quelques bugs si l'image n'est pas jpeg, si l'image ne contient aucune données exifs
je vais réafficher les infos pour qu'on y voit plus clair
j'obtiens ça par exemple :
The file was geocoded successfully!
download disponible durant 24 Hrs
le téléchargement est disponible en cliquant sur download
02/02/2010 à 17:00
ok, deux problèmes de résolus :
j'avais laissé l' upload_max_size à 2Mo je l'ai poussé à 10 temporairement, mais ça va être long.
02/02/2010 à 18:55
Bon, nouvel essai depuis Safari :
Ca marche et j'obtiens le lien suivant ;
The file was geocoded successfully!
download disponible durant 24 Hrs
Je télécharge la photo, mais ne trouve pas dans les propriété les coordonnées de localisation de la photo... du coup, je l'ouvre dans iPhoto qui la localise dans l'atlantique nord !!! Raté ! Elle a été prise dans l'Alsace sud...
03/02/2010 à 06:25
Ok, ça explique pourquoi je les retrouve pas sous windows non plus alors que je les voie sous linux
je pense que je ne les stocke pas au bon format
tu pourrais me faire passer un photo géocodée avec iPhoto ?
03/02/2010 à 10:25
bon,
pas simple le format gps dans les exifs j'ai trouvé une meilleure doc sur les tags exifs, et voilà, ça y est ça marche.
03/02/2010 à 13:14
@Pascal pour ta future peut être intégration :
function r2d($val){
$entries=explode("/",$val);
return $entries[0]/$entries[1];
}
$rexif = exif_read_data($img_path,"GPS",true,false);
echo "$img_path:
\n";
foreach ($rexif as $key => $section) {
if($key=="GPS"){
foreach ($section as $name => $val) {
switch($name){
case "GPSLatitude":
$deg=$val[0];
$min=$val[1];
$sec=$val[2];
$latitude=r2d($deg)."° ".r2d($min)."' ".r2d($sec)."\"";
break;
case "GPSLatitudeRef":
$ns=$val;
break;
case "GPSLongitude":
$deg=$val[0];
$min=$val[1];
$sec=$val[2];
$longitude=r2d($deg)."° ".r2d($min)."' ".r2d($sec)."\"";
break;
case "GPSLongitudeRef":
$eo=$val;
break;
}
}
}
}
echo "relecture coordonnées :
- latitude : ".$latitude.$ns."
- longitude : ".$longitude.$eo."
";
03/02/2010 à 13:58
Hihi, je connais cela ;)
03/02/2010 à 14:18
Etat d'avancement :
- les données Exifs suivantes sont ajoutées / mises à jour
* GPSLatitude
* GPSLatitudeRef
* GPSLongitude
* GPSLongitudeRef
- la présence de données gps n'est pas vérifiée, si les données existent elles sont actuellement écrasée sans avertissement de l'utilisateur (dans ma todo list)
- testé en relecture avec (linux) exif, exiftag,exiftool (windows) digital photo professionnal (autre) php
03/02/2010 à 14:50
Hum, ce topic est actif, ça fait plaisir !
Merci Erwann pour toutes ces infos et pour le code pour l'intégration. Je ne manquerai pas de m'en servir :)
Je programme ça pour la prochaine mise à jour.
03/02/2010 à 18:46
Bonsoir.
Erwan, je t'ai envoyé une photo géocodée par iPhoto par mail.
Je referai un essai ce soir.
03/02/2010 à 18:56
xxxx@####:$ exif IMG_0950.jpg
EXIF tags in 'IMG_0950.jpg' ('Motorola' byte order):
--------------------+----------------------------------------------------------
Tag |Value
--------------------+----------------------------------------------------------
--------------------+----------------------------------------------------------
xxxx@####:$ exiftags IMG_0950.jpg
exiftags: couldn't find Exif data
xxxx@####:$
rien sous windows non plus, t'es sur que iPhoto travaille avec les données Exifs et que tu ne les a pas supprimées ?
en tout cas sympa de ta part quand même
03/02/2010 à 19:15
En fait Mail comprime la photo à l'envoi... peut-être que cela retire ces infos... je te la transfère au format original... (4,6Mo, ça passe ?)
03/02/2010 à 19:29
Pas de données gps dans les données exifs. je pense que je commence à comprendre. iPhoto doit être un de ses logiciels qui géocode en bdd et non pas dans les exifs :p
03/02/2010 à 20:45
J'ai fait un nouvel essai par ton appli et ça marche ! (mais je ne sais pas comment copier ici le lien vers la photo comme tu l'as fait plus haut...). Essai fait via Safari sous Mac OS bien sûr.
Par contre je ne sais pas comment récupérer les infos (en faisant "Lire les informations", les données GPS n'apparaissent pas...) mais iPhoto me la localise correctement...
Bravo. Ca peut être très utile.
Par contre ça localise la photo (x/y) mais n'indique pas le nom de la ville par exemple. Ce serait encore mieux non ? (Bon tout le monde a compris que je suis loin d'être informaticien... juste un utilisateur ;) ! )
Bonne soirée
03/02/2010 à 21:08
Si vous avez besoin de qqun qui s'y connait en systèmes de coordonnées géodesiques pour votre projet, je suis dispo, je fais les études pour alors autant s'en servir ! ^^
03/02/2010 à 21:28
@Fix, ça peut être super interessant surtout que moi je n'y connais rien.
par exemple au niveau des autres tags GPS, dont je ne connais pas l'impact (nord polaire ou réel par exemple) au besoin je te listerait les tags et leurs traduction, pour voir si on peut y rajouter quelquechose d'interressant
@Mat, sous windows non plus, je contrôle avec digital photo pro (canon)
pour la ville, c'est problématique, si la photo est prise en pleine mer par exemple, de plus, je ne sais pas si l'API google permet la localisation inverse (ville à partir de coordonnées), mais je pourrais regarder, il n'y a pas de tags exifs prévu à cette effet, mais un tag commentaire (dans la section info de fichiers). Après reste à voir si positionner cette infos ici correspond bien à la norme exif
03/02/2010 à 21:36
Ok, ben dès que tu as une question, n'hésite pas ;)
04/02/2010 à 08:41
voici la liste des tags gps auxquels j'ai accès et dont je ne connais pas l'impact, et surtout s'ils nous sont utiles ou pas:
GPS_AREA_INFORMATION = 0x001C
A character string recording the name of the GPS area. The first byte indicates the character code used (Table 6¤
Table 7), and this is followed by the name of the GPS area. Since the Type is not ASCII, NULL termination is not
necessary.
serait ce là où on pourrait indiquer la région de prise de vue en mode "human readable"
GPS_DIFFERENTIAL = 0x001E
Indicates whether differential correction is applied to the GPS receiver.
kechechest? :D
GPS_DOP = 0x000B
Indicates the GPS DOP (data degree of precision). An HDOP value is written during two-dimensional measurement,
and PDOP during three-dimensional measurement.
comment définir cette précision ?
GPS_MEASURE_MODE = 0x000A
Indicates the GPS measurement mode. '2' means two-dimensional measurement and '3' means three-dimensional
measurement is in progress.
Ici à priori il faut que je mette 2 car je n'ai pas d'informations d'altitude
GPS_PROCESSING_METHOD = 0x001B
A character string recording the name of the method used for location finding. The first byte indicates the character
code used (Table 6¤ Table 7), and this is followed by the name of the method. Since the Type is not ASCII, NULL
termination is not necessary.
Pas très clair pour moi
GPS_STATUS = 0x0009
Indicates the status of the GPS receiver when the image is recorded. 'A' means measurement is in progress, and
'V' means the measurement is Interoperability.
si tu peux me donner deux ou trois infos là dessus, ou m'exclure les tags inadaptés :D
sinon, je vais essayer dans un futur proche d'intégrer les GPSDateStamp et GPSTimeStamp, mais je me pose encore la question de si j'y mets la date de géolocalisation ou la date de prise de vue ......
04/02/2010 à 09:32
La Pose partage citée dans le footer :p
04/02/2010 à 17:32
Alors en ce qui concerne les différentes données
GPS_AREA_INFORMATION = 0x001C
C'est en fait il me semble en relation avec le DGPS, qui est une amélioration sensible du GPS dans le fait qu'il découpe la globe en plusieurs zones qui sont délimitées par des stations dont les coordonnées GPS sont elles connues très précisément. Après je ne connais pas vraiment la taille de ces zones =/
Je tenterai de chercher ;)
GPS_DIFFERENTIAL = 0x001E
Corrections à appliquer suites au erreurs (ionosphérique ou troposphèriques par exemple) Pas très intéressant, sauf si tu veux travailler au cm sur la surface du globe.
GPS_DOP = 0x000B
Bon alors là pour tout te dire ça commence à se compliquer niveau explication. Si on te demande la précision, il faut fixer ton type de repérage, GPS simple ou DGPS par exemple. GPS tu peux estimer a 10 cm près il me semble, 5 avec les corrections. DGPS tu tiens plus du cm
GPS_MEASURE_MODE = 0x000A
Oui si tu travailles en système plan, l'altitude ne sert à rien. Peut être interessant dans des zones montagneuses par contre ^^
GPS_PROCESSING_METHOD = 0x001B
Alors la bon pareil ca va influer sur ta précision. Il te demande si tu travailles par triangulation (donc par rapport a d'autres stations GPS) ou par positionnement direct satellite.
GPS_STATUS = 0x0009
Pour tout te dire, aps trop d'idée sur ca =/
Voila j'espère que ça t'aura un peu plus éclairé ^^
05/02/2010 à 07:51
donc en gros pour résumer, il ne me reste à mettre que le mode de mesure (2) et les dates et heures.
05/02/2010 à 16:08
Wep, à mon sens les autres sont pas intéressants ^^
17/02/2010 à 14:24
Salut Erwann, j'ai pas oublié cette proposition ;). Je termine mon outil de création de maps pour les images et j'intègre ton appli GPS.
17/02/2010 à 14:31
j'ai pas encore fini, j'ai pas trop le temps pour coder en ce moment, mais bon, c'est fonctionnel en l'état, j'améliorerais dès que j'aurais le temps
j'ai déjà réécrit mon code proprement, et réorganisé ma structure sur disque, c'est plus clair quand je m'y remets :p