Tracer itinéraire d'après photos

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Bonjour,
Malgré recherches, je n'ai pas trouvé de réponse/solution satisfaisantes.
Pour faire bref, j'ai mes photos géotaguées (après retour maison); dans Photos, LR, elles apparaissent bien dans Lieux (Photos) ou Cartes (LR).
Je voudrais par exemple faire apparaître l'itinéraire entre quelques photos de voyages, en tenant compte des données date/heure; même si l'itinéraire se résume à des segments de droites ou des arcs (l'idéal serait que je puisse tracer le "vrai" itinéraire sur une carte routière, ou Plans ou autre). J'ai vu travelmap.net, mais et d'un il faut payer, et de deux ça paraît plus orienté blog; j'ai vu aussi d'autres sites qui proposent de faire un peu ce genre de truc, mais faut le faire en ligne, et moi je préfèrerais évidemment le faire direct sur mon ordi.
Je me dis que si certains logiciels photo (ou Houdahgéo aussi) peuvent importer les tracks gps, l'inverse devrait être possible: à partir des données gps de chaque photo, reconstituer l'itinéraire.
Merci de vos suggestions.
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Bonjour,

Si tu traces l'itinéraire à la main en reliant les points ...
Tu peux afficher tous les points des photos sélectionnées dans aperture (lieux choisir le fond qui te convient, plan ou satellite), faire une copie d'écran et tracer ton itinéraire sur cette carte avec n'importe quel logiciel de traitement d'image.
Ou faire la même chose avec le logiciel GraphicConverter.
 

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Oui, merci; je trouve ça assez fastidieux. J'imaginais que si avec un iPhone par exemple, on peut importer le "trackgps" et voir l'itinéraire (je ne sais pas trop le nom), inversement à partir des données gps des photos on pouvait reconstituer l'itinéraire.
Je rêve peut-être ou possiblement aussi je n'ai rien compris à tout ça :sorry:
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Dans GraphicConverter tu peux générer un fichier kml ou gpx qui s'ouvrira dans google map ou earth ...

Tu peux également créer un fichier excel avec les coordonnées récupérées des photos et en ligne ce fichier peut être transformé en trajet sur un plan, pour celà il existe pas mal de sites dont certains gratuit... mais pas si simple....
 

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Merci des idées; aurais-tu des liens vers ces sites "dont certains gratuits", en attendant d'autres suggestions je pourrais essayer voir si...
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Pour transformer un fichier excel en kml pour trace voir http://www.earthpoint.us/ExcelToKml.aspx
Tu as un aperçu de ce que dois contenir le fichier excel.

Mais il me parais plus simple de créer le KLM depuis graphicconverter.
 
Dernière édition:

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Merci, je verrai ça; pour le moment je me fais l'Izoard, c'est dur, et après le Galibier, c'est pas de tout repos, mes jambes fatiguent sur le canapé !
 
  • J’aime
Réactions: Sly54

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Je t'ai préparé un petit tuto:
Tu télécharges et installes exiftool depuis le dmg là : https://sno.phy.queensu.ca/~phil/exiftool/index.html
Toutes tes photos taggées dans un dossier
Tu récupères le petit script que je t'ai préparé ci-dessous: il prépare un fichier nommé trajet sur le bureau contenant toutes les coordonnées de tes photos.Tu le lances tu sélectionnes ton dossier photos et tu attends qu'il te dise qu'il à terminé.
tu vas sur le site http://www.earthpoint.us/ExcelToKml.aspx Tu cliques sur le bouton parcourir, tu sélectionnes le fichier trajet.txt et tu n'as plus qu'a cliquer sur le bouton (View on google earth) et ton trajet est affiché dans google earth. Un fichier kml est automatiquement mis dans ton dossier téléchargement.

Bloc de code:
set Ledossier to choose folder with prompt "Sélectionner le dossier contenant les fichiers"

tell application "Finder"
    set FolderContents to files of folder Ledossier
end tell

tell application "Finder"
    set lelog to open for access ((path to desktop folder as text) & "Trajet" & ".txt") as text with write permission
    write "Latitude" & (ASCII character 9) & "Longitude" & (ASCII character 9) & "LineStringColor" & (ASCII character 9) & "Icon" & (ASCII character 9) & "IconColor" & (ASCII character 9) & "IconHeading" & return to lelog starting at eof
    close access lelog
   
    repeat with Lefichier in FolderContents
        set Lefichier to Lefichier as string
        set lat to do shell script "/usr/local/bin/exiftool -GPSLatitude " & quoted form of POSIX path of Lefichier --récupère la duréeau format teste exiftool
        set lon to do shell script "/usr/local/bin/exiftool -GPSLongitude " & quoted form of POSIX path of Lefichier --récupère la duréeau format teste exiftool
       
       
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {":"}
        set Lati to text item 2 of lat
        set long to text item 2 of lon
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
        my ecriture(Lati, long)
       
       
    end repeat
   
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
   
end tell

on ecriture(Lati, long)
    set lelog to open for access ((path to desktop folder as text) & "trajet" & ".txt") as text with write permission
    write Lati & (ASCII character 9) & long & (ASCII character 9) & "Cyan" & (ASCII character 9) & "196" & (ASCII character 9) & "Yellow" & (ASCII character 9) & "Line-180" & return to lelog starting at eof
    close access lelog
end ecriture
 

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Vraiment sympa, je vais essayer de faire selon tes indications, je te donnerai le résultat demain (aujourd'hui encore garde des petits-enfants, ça prend la tête !).
En tout cas merci merci :up:
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Le fichier obtenu trajet.txt est bien sur un fichier exemple de base, qui peut être ouvert dans excel et être complété...
Exemple: actuellement chaque point est nommé row+numéro d'ordre; pour changer ce nom ou le supprimer il suffit d'ajouter une colonne "name" et de mettre un nom au point ou de laisser vierge pour ne rien mettre...
Bonne découverte.
Le site est gratuit pour des fichiers de maximum 200 lignes (199 photos)....
 
Dernière édition:

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Bonjour zeltron; je viens donc d'essayer selon tes indications: téléchargé/décompressé exiftool, copié ton script dans éditeur de script, créé sur le bureau un dossier avec 7 photos géotaguées, lancé le script... J'ai aussi un fichier trajet.txt.
Dès le début d'exécution du script j'ai ça:
error "Erreur dans Finder : sh: /usr/local/bin/exiftool: No such file or directory" number 127
Exiftool est un dossier sur le bureau aussi, avec plein de sous-dossiers, dont un exiftool > exec impossible à ouvrir (j'ai modifié mes paramètres système et mis exiftool accès au disque autorisé)
Que faire, je suis assez incompétent en ce domaine.
(Je crois que tu m'avais fait un petit script aussi il y a quelques mois pour convertir profils N&B en Srgb).
Merci
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
L'erreur indique qu'exiftool n'est pas installé !
Sur le lien du message #8 tu télécharges MacOS Package: ExifTool-11.59.dmg (2.8 MB) après ouverture du DMG tu as un fichier ExifTool-11.57.pkg en forme de boite, tu doubles clic sur ce fichier.

Edit: pense à mettre le fichier trajet.txt dans la corbeille avant chaque exécution du script.
 

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Je savais bien que le bug était entre ma chaise et l'ordi ! J'avais dû prendre la version win...
Ça marche ! Merci de ta précieuse et bénévole contribution :merci:
Je vais quand même voir si je ne trouve pas un autre moyen, quitte à le faire "à la main" sur fond de carte.
Bon week-end !
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Pour moi le plus simple est avec GraphicConverter ou avec aperture (si tu l’as encore) tu auras tous les points sur plans .
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Coucou @Nouvoul

J'ai pris quelques minutes pour te préparer un nouveau script qui te crée un fichier "piste.gpx" sur le bureau.

Ce fichier se glisse directement sur une fenêtre de "google earth" et te dessine le trajet issu des coordonnées récupérées sur tes photos.

J'espère que cela te conviendra.

Edit: Après vérification ce fichier peut s'importer dans aperture (lieux--> onglet GPS) et te dessine le trajet. Je n'ai pas trouvé dans photos

Bloc de code:
set Ledossier to choose folder with prompt "Sélectionner le dossier contenant les Photos"

tell application "Finder"
    set FolderContents to files of folder Ledossier
end tell

tell application "Finder"
    set gu to (ASCII character 34)
    set lelog to open for access ((path to desktop folder as text) & "piste" & ".gpx") as text with write permission
    write "<?xml version=" & gu & "1.0" & gu & " encoding=" & gu & "UTF-8" & gu & "?>" & return & "<gpx version = " & gu & "1.0" & gu & ">" & return & "<trk>" & return & "<name>piste</name>" & return & "<trkseg>" & return to lelog starting at eof
    close access lelog
 
    repeat with Lefichier in FolderContents
     
        set nom to name of Lefichier
        set Lefichier to Lefichier as string
     
        set lat to do shell script "mdls -name kMDItemLatitude " & quoted form of POSIX path of Lefichier 
        set lon to do shell script "mdls -name kMDItemLongitude " & quoted form of POSIX path of Lefichier
        set datecrea to do shell script "mdls -name kMDItemContentCreationDate " & quoted form of POSIX path of Lefichier 
     
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {" "}
        set Lati to text item 3 of lat
        set long to text item 3 of lon
        set datecreat to text item 3 of datecrea & "T" & text item 4 of datecrea & "Z"
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur     
        my ecriture(Lati, long, nom, datecreat)
     
     
    end repeat
    set lelog to open for access ((path to desktop folder as text) & "piste" & ".gpx") as text with write permission
    write "</trkseg>" & return & "</trk>" & return & "</gpx>" & return to lelog starting at eof
    close access lelog
 
 
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
 
end tell

on ecriture(Lati, long, nom, datecreat)
    set gu to (ASCII character 34)
    set lelog to open for access ((path to desktop folder as text) & "piste" & ".gpx") as text with write permission
    write "<trkpt lat=" & gu & Lati & gu & " lon=" & gu & long & gu & ">" & return & "<src>" & nom & "</src>" & return & "<time>" & datecreat & "</time>" & return & "</trkpt>" & return to lelog starting at eof
    close access lelog
end ecriture
 
Dernière édition:
  • J’aime
Réactions: Sly54 et Vinzzz25

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Cher zeltron54, merci; j'ai essayé ton dernier script, ça a marché pour un test avec 2 photos, j'ai donc été plus ambitieux avec 7 photos (bien sûr j'avais supprimé la première piste gpx), et là ça n'a plus fonctionné du tout, plusieurs essais avortés, GEarth ne veut pas ce fichier. Je ne comprends pas ce qui peut se passer.
A part ça j'ai d'autres pistes, pour tracer l'itinéraire genre Tour de France, mais ça paraît assez délicat à mettre en œuvre pour de nombreuses photos:
https://ipa-troulet.fr/cours/index....cours-de-randonnee-et-d-un-film-de-ce-dernier
Je chercherai d'autres tutos, car je ne suis pas très familier de GoogEarth.
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
As-tu vérifié que toutes tes photos soient bien taggées avec les coordonnées GPS...
J'ai eu ce problème si une ou plusieurs photo n'ont pas de localisation. Il faudra que j'ajoute dans le script un contrôle pour échapper les photos non localisées.
 

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
Oui, toutes.
Et avec Aperture pareil.
Par acquis de conscience je viens de tout effacer, repris ton dernier script, ça n'y fait rien.
Normal que le fichier piste.gpx ne fasse que 4 Ko (1572 octets, 4 Ko sur le disque d'après Lire les infos), dans le dossier test j'ai mis 11 photos?
Par ailleurs je trouve suspect que le message "salut" s'affiche aussi vite alors que je vois que le script est en cours d'exécution; soit je clique sur "salut" et j'ai toujours "script en cours...", soit j'attends quelques minutes, rien ne bouge...
Par contre le premier script en utilisant EarthPoint... fonctionne.
 

zeltron54

Membre d’élite
29 Mars 2008
1 795
264
Lorraine
Je viens d'essayer sur un dossier avec 128 photos et aucun problème, j'y ai ajouté une photo sans position gps et là, google maps ne donne rien de correct.
Du coup j'ai ajouté au script un contrôle, qui échappe la photo s'il n'y a pas de données GPS.

pour la taille du fichier c'est normal, tu peux l'ouvrir avec textEdit, il contient:
Les 5 premières lignes:
<?xml version="1.0" encoding="UTF-8"?>
<gpx version = "1.0">
<trk>
<name>piste</name>
<trkseg>

ensuite 4 lignes par photos :

<trkpt lat="47.32143" lon="-72.76469333333333">
<src>Nom du fichier photo</src>
<time>2019-06-21T06:35:21Z</time>
</trkpt>

La troisième ligne contient la date et l'heure de la prise de vue au format AAA-MM-JJ + T + HH:MM:SS + Z

et en fin de fichier les 3 lignes:
</trkseg>
</trk>
</gpx>

Donc pas une grosse taille fichier.
tu peux donc contrôler si ton fichier est correct.
je te met si dessous le script modifié

Bloc de code:
set Ledossier to choose folder with prompt "Sélectionner le dossier contenant les fichiers"

tell application "Finder"
    set FolderContents to files of folder Ledossier
end tell

tell application "Finder"
    set gu to (ASCII character 34)
    set lelog to open for access ((path to desktop folder as text) & "piste" & ".gpx") as text with write permission
    write "<?xml version=" & gu & "1.0" & gu & " encoding=" & gu & "UTF-8" & gu & "?>" & return & "<gpx version = " & gu & "1.0" & gu & ">" & return & "<trk>" & return & "<name>piste</name>" & return & "<trkseg>" & return to lelog starting at eof
    close access lelog
  
    repeat with Lefichier in FolderContents
      
        set nom to name of Lefichier
        set Lefichier to Lefichier as string
      
        set lat to do shell script "mdls -name kMDItemLatitude " & quoted form of POSIX path of Lefichier --récupère la duréeau format teste exiftool
        set lon to do shell script "mdls -name kMDItemLongitude " & quoted form of POSIX path of Lefichier --récupère la duréeau format teste exiftool
        set datecrea to do shell script "mdls -name kMDItemContentCreationDate " & quoted form of POSIX path of Lefichier --récupère la duréeau format teste exiftool
      
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {" "}
        set Lati to text item 3 of lat
        set long to text item 3 of lon
        set datecreat to text item 3 of datecrea & "T" & text item 4 of datecrea & "Z"
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur  
        if Lati is not "(null)" or long is not "(null)" then
            my ecriture(Lati, long, nom, datecreat)
        end if

    end repeat
    set lelog to open for access ((path to desktop folder as text) & "piste" & ".gpx") as text with write permission
    write "</trkseg>" & return & "</trk>" & return & "</gpx>" & return to lelog starting at eof
    close access lelog
  
  
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
  
end tell

on ecriture(Lati, long, nom, datecreat)
    set gu to (ASCII character 34)
    set lelog to open for access ((path to desktop folder as text) & "piste" & ".gpx") as text with write permission
    write "<trkpt lat=" & gu & Lati & gu & " lon=" & gu & long & gu & ">" & return & "<src>" & nom & "</src>" & return & "<time>" & datecreat & "</time>" & return & "</trkpt>" & return to lelog starting at eof
    close access lelog
end ecriture
 

Nouvoul

Membre d’élite
Club MacG
4 Mars 2005
3 222
276
113
zeltron, tu es tombé sur un nul :sorry:
J'ai encore essayé avec ton nouveau script, et ça ne marche pas; j'en conclus que s'il fonctionne pour toi c'est que je m'y prends mal quelque part.
Ni dans GoogleEarth (je glisse le fichier piste.gpx soit dans lieux préférés, soit dans lieux temporaires, soit directement sur le globe, lorsque j'ai la petite pastille verte avec +, j'ai essayé diverses possibilités, même import via outils) ni dans Aperture ("impossible d'importer piste.gpx", j'ai pourtant fait comme tu disais > gps >...). Le problème doit provenir de mon utilisation de l'éditeur de script (copier-coller du tien puis exécution > la piste.gpx est bien sur mon bureau) ou bien de réglages dans GE ou Aperture, je n'en sais rien.
Si tu entrevois où pourrait se situer le blocage, ça m'intéresse, mais ne passes pas ton été là-dessus, merci de ta patience :)