iGalerie

Vous n'êtes pas identifié(e).

Annonce

Un message d'erreur qui s'affiche ? Un mot de passe oublié ? L'ajout de fichier qui ne marche pas ?
Pensez d'abord à lire la FAQ, vous y trouverez probablement une solution à votre problème.

#1 26-03-2023 17:47:54

D.F.
Membre
Inscription : 26-03-2023
Messages : 6

Photos géolocalisées aux coordonnées non détectées

Bonjour,
Je découvre avec intérêt cette application légère mais semble-t-il très efficace — que j'ai aussitôt installée.

Problème : lorsque je charge des fichiers JPEG contenant dans leurs métadonnées une latitude et une longitude, ces coordonnées géographiques ne semblent pas détectées par iGalerie.

Pour info :
— Ces JPEG sont téléchargés depuis mon compte Flickr, lequel Flickr affiche correctement la géolocalisation.
— macOS affiche aussi la géolocalisation (avec carte exacte dans la fenêtre “Informations” de l'application Aperçu), tout comme l'application Photos livrée avec macOS.
— Bizarrement, d'autres scripts PHP, tels que Piwigo ou Lychee (d'ailleurs beaucoup plus lourds qu'iGalerie…), ne semblent pas non plus détecter les métadonnées géographiques de ces JPEG.
— Au départ, ces métadonnées de géolocalisation ont été ajoutés aux JPEG en utilisant le logiciel Geotag Photos Pro 2.

C'est un peu mystérieux pour moi. Je peux fournir un des fichiers JPEG si besoin.

Merci d'avance pour tout éclairage !

Hors ligne

#2 26-03-2023 20:43:13

D.F.
Membre
Inscription : 26-03-2023
Messages : 6

Re : Photos géolocalisées aux coordonnées non détectées

Quelques infos en plus, obtenues grâce à l'utilitaire Exiftool.

Voici les métadonnées GPS (et quelques autres) dans l'EXIF d'une photo (JPEG) dont la géolocalisation n'est pas détectée par iGalerie :

Exif Version                    : 0230
XMP Toolkit                     : XMP Core 4.4.0-Exiv2
Warning                         : IPTCDigest is not current. XMP may be out of sync
GPS Version ID                  : 2.3.0.0
GPS Altitude Ref                : Above Sea Level
GPS Altitude                    : 1582.8 m Above Sea Level
GPS Latitude                    : 42 deg 34' 3.31" N
GPS Longitude                   : 1 deg 35' 53.64" E
GPS Latitude Ref                : North
GPS Longitude Ref               : East
GPS Position                    : 42 deg 34' 3.31" N, 1 deg 35' 53.64" E

Et voici celles d'une autre photo dont iGalerie détecte la géolocalisation :

Exif Version                    : 0232
XMP Toolkit                     : XMP Core 6.0.0
GPS Altitude Ref                : Above Sea Level
GPS Speed Ref                   : km/h
GPS Speed                       : 0
GPS Img Direction Ref           : Magnetic North
GPS Img Direction               : 249.7599487
GPS Dest Bearing Ref            : Magnetic North
GPS Dest Bearing                : 249.7599487
GPS Horizontal Positioning Error: 4.59754466 m
GPS Altitude                    : 714.1 m Above Sea Level
GPS Latitude                    : 47 deg 35' 10.34" N
GPS Longitude                   : 12 deg 11' 5.80" E
GPS Latitude Ref                : North
GPS Longitude Ref               : East
GPS Position                    : 47 deg 35' 10.34" N, 12 deg 11' 5.80" E

J'espère que ça peut aider à résoudre le problème.  :-)

Hors ligne

#3 27-03-2023 10:20:40

David
Développeur d'iGalerie
Inscription : 12-05-2006
Messages : 4 337
Site Web

Re : Photos géolocalisées aux coordonnées non détectées

Salut,

Le plus simple serait effectivement que tu me fournisses un de tes fichiers pour que je regardes d'où vient le problème.

Hors ligne

#4 27-03-2023 11:02:42

D.F.
Membre
Inscription : 26-03-2023
Messages : 6

Re : Photos géolocalisées aux coordonnées non détectées

Bonjour, et merci pour cette réponse.

Voici une image dûment géolocalisée par iGalerie, mais aussi par Flickr et macOS.

Voici une autre image dans laquelle iGalerie ne détecte pas les coordonnées GPS, contrairement à Flickr et macOS.

Je viens de comparer leurs métadonnées avec Exiftool. Elles diffèrent un peu, cependant les deux images contiennent bien les coordonnées GPS. C'est assez énigmatique pour moi…

Merci pour ton aide !

Hors ligne

#5 27-03-2023 14:35:42

David
Développeur d'iGalerie
Inscription : 12-05-2006
Messages : 4 337
Site Web

Re : Photos géolocalisées aux coordonnées non détectées

Les coordonnées GPS sont normalement stockées dans une section "GPS" des métadonnées EXIF sous forme de fractions. Voici les données fournies par la fonction PHP exif_read_data() pour la première photo :

Array
(
    [GPSVersion] => 
    [GPSLatitudeRef] => N
    [GPSLatitude] => Array
        (
            [0] => 43/1
            [1] => 0/1
            [2] => 47/100
        )

    [GPSLongitudeRef] => E
    [GPSLongitude] => Array
        (
            [0] => 11/1
            [1] => 30/1
            [2] => 5896/100
        )

    [GPSAltitudeRef] => 
    [GPSAltitude] => 387445/1079
)

On peut alors effectuer la conversion en degrés : 43° 0' 0.47" N, 11° 30' 58.96" E. Ce format est celui décrit dans les spécifications Exif.


Par contre, pour la seconde photo, le format n'est pas du tout le même :

Array
(
    [GPSVersion] => 
    [GPSLatitudeRef] => N
    [GPSLatitude] => 5.2056913208974E+230
    [GPSLongitudeRef] => E
    [GPSLongitude] => 3.6730105008483E-163
    [GPSAltitudeRef] => 
    [GPSAltitude] => 1.9005136278213E+88
)

Or, le code d'iGalerie n'est prévu que pour le format "standard" sous forme de fractions. Voilà pourquoi les coordonnées GPS de cette photo ne sont pas reconnus. Je pourrais modifier le code pour qu'iGalerie puisse aussi reconnaître ce format "exotique", mais le problème est que je ne sais pas comment faire la conversion en degrés...

Autrement dit, comment, pour la latitude par exemple, passe-t-on de 5.2056913208974E+230 à 42° 34' 3.31" (valeur obtenue par Exiftool) ?

Hors ligne

#6 27-03-2023 14:48:40

D.F.
Membre
Inscription : 26-03-2023
Messages : 6

Re : Photos géolocalisées aux coordonnées non détectées

Je viens d'interroger ChatGPT ! big_smile

Comment convertir une coordonnée GPS issue de métadonnées EXIF sous cette forme : "[GPSLatitude] => 5.2056913208974E+230" dans ce format : [GPSLatitude] => Array
        (
            [0] => ???
            [1] => ???
            [2] => ???
        )

Réponse du robot :

La coordonnée GPS que vous avez fournie sous la forme "[GPSLatitude] => 5.2056913208974E+230" est une valeur décimale en notation scientifique. Pour la convertir en un tableau de degrés, minutes et secondes, vous pouvez utiliser la fonction PHP exif_gps_dms().

Voici un exemple de code pour convertir la coordonnée GPS en un tableau de degrés, minutes et secondes :

<?php
$latitude = 5.2056913208974E+230;

function exif_gps_dms($coordinate) {
    $degrees = floor($coordinate);
    $coordinate -= $degrees;
    $coordinate *= 60;
    $minutes = floor($coordinate);
    $coordinate -= $minutes;
    $coordinate *= 60;
    $seconds = round($coordinate, 2);

    return array($degrees, $minutes, $seconds);
}

$dms = exif_gps_dms($latitude);

echo "[GPSLatitude] => Array\n";
echo "(\n";
echo "    [0] => " . $dms[0] . "\n";
echo "    [1] => " . $dms[1] . "\n";
echo "    [2] => " . $dms[2] . "\n";
echo ")\n";
?>

Remplacez la valeur de la variable $latitude par la valeur de la coordonnée GPS que vous souhaitez convertir. Le code utilise la fonction exif_gps_dms() pour convertir la coordonnée GPS en un tableau de degrés, minutes et secondes. La fonction exif_gps_dms() prend la valeur décimale de la coordonnée GPS en entrée et renvoie un tableau contenant les degrés, les minutes et les secondes. Le code affiche ensuite le tableau de degrés, minutes et secondes au format requis.

Tout cela serait-il adaptable à iGalerie ? Mystère…

(En tout cas, les capacités de réponse, même incorrecte, de ChatGPT sont absolument sidérantes…)

Dernière modification par D.F. (27-03-2023 14:50:01)

Hors ligne

#7 27-03-2023 15:19:02

David
Développeur d'iGalerie
Inscription : 12-05-2006
Messages : 4 337
Site Web

Re : Photos géolocalisées aux coordonnées non détectées

Le code est bon mais il ne fonctionne pas pour convertir 5.2056913208974E+230 en 42° 34' 3.31". Cette valeur fournie par la fonction exif_read_data() me semble incohérente et il s'agit peut-être d'un bug de PHP...

Hors ligne

#8 04-04-2023 22:26:04

D.F.
Membre
Inscription : 26-03-2023
Messages : 6

Re : Photos géolocalisées aux coordonnées non détectées

Je crois avoir trouvé : exif_read_data() semble buter sur ce genre de coordonnées géographiques, cependant qu'Exiftool (piloté par PHP avec exec()) les déchiffre très bien, aussi bien que Flickr ou macOS.

 exec(exiftool -n -GPSLatitude -GPSLongitude FichierImage.jpg, $donneesretour); 

Dernière modification par D.F. (04-04-2023 22:31:05)

Hors ligne

#9 05-04-2023 12:19:50

David
Développeur d'iGalerie
Inscription : 12-05-2006
Messages : 4 337
Site Web

Re : Photos géolocalisées aux coordonnées non détectées

La fonction exec() peut poser des problèmes de sécurité et n'est pas forcément activée chez tous les hébergeurs. Et encore faut-il qu'Exiftool soi aussi installé ! Donc ce ne peut pas être une solution viable pour récupérer les données Exif.

Tes photos ont été éditées avec un logiciel ? As-tu essayé avec les photos originales non retouchées ?

Hors ligne

#10 05-04-2023 12:23:10

D.F.
Membre
Inscription : 26-03-2023
Messages : 6

Re : Photos géolocalisées aux coordonnées non détectées

Oui, les photos au GPS non lu par exif_read_data() étaient passées par un petit logiciel macOS qui ajoutait d'autres métadonnées à l'EXIF (du genre nom de l'auteur, copyright, etc.). Mais ce logiciel en profitait apparemment pour changer le format des coordonnées géographiques déjà présentes dans le fichier photo. Ça ne dérangeait ni Flickr ni macOS, mais beaucoup exif_read_data().

Hors ligne

Pied de page des forums