par
jls35 » 20 nov. 2024, 14:19
Bon ben j'ai finalement réussi je suis trop fier de moi
Le lien vers google maps fonctionne et cerise sur le gâteau à partir d'une image
Voici le code il doit y avoir plus simple mais ça fonctionne et pour moi c'est le principal
//debut de la création du lien vers google maps
$lati = $result['latitude'];
$longi = $result['longitude'];
$virg = ',';
$page = "";
$url = 'http://www.google.fr/maps/place/';
$text = "Voir le lieu de la photo sur Google Maps";
$page .= '<a title="Voir le lieu de la prise de vue sur Google Maps" target="_blank" href="'.$url.$lati.$virg.$longi.'"><img src="../images/mise-en-page/google-maps.jpg"/></a>';
echo $page;
echo '<br>';
//fin de la création du lien vers google maps
Et ci-dessous le code complet pour avoir en PHP une galerie d'images qui se charge automatiquement à partir d'un dossier unique, cette galerie tiendra compte des donnée EXIF de l'image et vous permettra d'afficher le nom de la photo, le titre de la photo, le commentaire, les données GPS, l'altitude, la date et l'heure de la prise de la photo, le logiciel de retouche si utilisé et enfin un lien vers google Maps pour voir où a été prise la photo.
Il faut bien sur que la photo soit renseignée, il y a pas mal d'éditeur "exif" pour ça.
Voici le code
<html>
<head>
</head>
<body >
<div align="center">
<table border="0" width="480">
<tr>
<td align="center" style="font-family: Comic Sans MS; font-size: 18pt">
</td>
</tr>
</table>
<?php
$dir="1";
$dossier=opendir($dir);
while(false!==($files=readdir($dossier))) {
if(in_array(strtolower(pathinfo($files,PATHINFO_EXTENSION)), array('jpg', 'jpeg', 'tif', 'tiff', 'gif', 'png', 'bmp'))){
$listfiles[]=$files;
}
}
closedir($dossier);
rsort($listfiles); //rsort ordre inverse alphabétique sort ordre alphabétique
$nbe=count($listfiles);
//Les parametres
if (!empty($_GET['parPage'])) { //Nombre d'image par page
$images_par_page=intval($_GET['parPage']);
}
else $images_par_page = 14;
if (!empty($_GET['image_debut'])) {//L'index de la première image à afficher dans cette page
$index_image_debut = intval($_GET['image_debut']);
}
else $index_image_debut = 0;
//L'index de la dernière
if ($nbe < ($index_image_debut + $images_par_page)) {//Pour ne pas essayer d'afficher plus d'images qu'on en a
$index_image_fin = $nbe - 1 ;
}
else $index_image_fin = $index_image_debut + $images_par_page;
$nbe_pages_=$nbe/($images_par_page+1);
$nbe_pages=ceil($nbe_pages_);
//Affichage de la galerie
for ($i=$index_image_debut;$i<=$index_image_fin;$i++) {
$lien=$dir.'/'.$listfiles[$i];
unset($exif_tab); //réinitialisation du tableau exif_tab
if(in_array(strtolower(end(explode('.', $listfiles[$i]))), array('jpg', 'jpeg', 'tif', 'tiff'))) // Si fichier Jpeg ou Tiff
{
if($exif = exif_read_data($lien, EXIF, true)) // Si le fichier $listfiles[$i] contient des infos Exif
{
foreach ($exif as $key => $section) // On parcourt la première partie du tableau multidimensionnel
{
foreach ($section as $name => $value) // On parcourt la seconde partie
{
$exif_tab[$name] .= $value; // Récupération des valeurs dans le tableau $exif_tab
}
}
if($exif_tab['Make']) // Marque de l'appareil
$marque = $exif_tab['Make'];
if($exif_tab['Model'])// Modèle de l'appareil
$modele = $exif_tab['Model'];
if($exif_tab['DateTimeOriginal'])
$date = $exif_tab['DateTimeOriginal']; // Date de la prise de vue (heure de l'appareil)
if($exif_tab['Software']) // Si l'information sur le logiciel existe
$logiciel = $exif_tab['Software'];
if($exif_tab['GPSAltitude']) // Altitude
$GPSAltitude = $exif_tab['GPSAltitude'];
if($exif_tab['GPSLatitudeRef']) // Latitude Ref
$GPSLatitudeRef = $exif_tab['GPSLatitudeRef'];
if($exif_tab['GPSLongitudeRef']) // Longitude Ref
$GPSLongitudeRef = $exif_tab['GPSLongitudeRef'];
// La date est d'un format spécial, on va donc la rendre lisible
$date2 = explode(":", current(explode(" ", $date)));
$heure = explode(":", end(explode(" ", $date))); // Utile dans le cas où vous souhaitez extraire l'heure
$annee = current($date2); // Je lis la valeur courante de date2
$mois = next($date2); // Puis la suivante (c'est un tableau)
$jour = next($date2); // Puis la suivante
// De même pour obtenir l'heure
$heure2 = current($heure); // Je lis la valeur courante de heure
$minute = next($heure); // Puis la suivante (c'est un tableau)
$seconde = next($heure); // Puis la suivante
}
}
unset($auteur, $titre, $commentaire); //réinitialisation des variables
GetImageSize ($lien,$info);
if (isset($info["APP13"])) //lecture des informations IPTC
{
$iptc = iptcparse ($info["APP13"]);
$commentaire = $iptc["2#120"][0];
}
echo '<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td align="center" valign="middle"><a title="Les wallpapers du site Jeep Wrangler JKU" target="_blank" href="'.$lien.'"><img border="4" class="img" alt="'.$lien.'" height="480" src="'.$lien.'"/></a></td>
</tr>
<tr>
<td align="center" valign="middle">
<p><font size="4" face="Comic Sans MS">';
// debut recherche coordonnées GPS
$LatM = 1;
$LongM = 1;
$GPSLatitudeRef=$exif['GPS']['GPSLatitudeRef'];
if ("$GPSLatitudeRef" == 'S') {
$LatM = -1;
}
$GPSLongitudeRef=$exif['GPS']['GPSLongitudeRef'];
if ("$GPSLongitudeRef" == 'W') {
$LongM = -1;
}
// Get the GPS data
$gps['LatDegree'] = $exif['GPS']["GPSLatitude"][0];
$gps['LatMinute'] = $exif['GPS']["GPSLatitude"][1];
$gps['LatgSeconds'] = $exif['GPS']["GPSLatitude"][2];
$gps['LongDegree'] = $exif['GPS']["GPSLongitude"][0];
$gps['LongMinute'] = $exif['GPS']["GPSLongitude"][1];
$gps['LongSeconds'] = $exif['GPS']["GPSLongitude"][2];
//convert strings to numbers
foreach ($gps as $key => $value) {
$pos = strpos($value, '/');
if ($pos !== false) {
$temp = explode('/', $value);
$gps[$key] = $temp[0] / $temp[1];
}
}
//calculate the decimal degree
$result['latitude'] = $LatM * ($gps['LatDegree'] + ($gps['LatMinute'] / 60) + ($gps['LatgSeconds'] / 3600));
$result['longitude'] = $LongM * ($gps['LongDegree'] + ($gps['LongMinute'] / 60) + ($gps['LongSeconds'] / 3600));
// fin recherche coordonnées GPS
// Affichage des résultats
//conditionne l affichage du nom du fichier à son existence
echo 'Nom du fichier : ';
echo ''.substr($listfiles[$i],0,-10).'<br>'; //substr permet de réduire l afiichage pour ne pas voir l extension du fichier
//conditionne l affichage du titre à son existence
if (isset($titre))
echo '<b><u>'.$titre.'</u></b><br>';
//conditionne l affichage du commentaire à son existence
if (isset($commentaire))
echo 'Localisation : '.$commentaire.'<br>';
// affichage des coordonnees GPS
echo ' Coordonnées GPS ', ($result['latitude']),' ',($result['longitude']),' <br> ';
// affichage altitude
if (isset($GPSAltitude))
echo 'Altitude : '.substr($GPSAltitude,0,-2).'m.<br>';
//conditionne l affichage de la date à son existence
echo 'Photo prise ';
if (isset($date))
echo ' le '.$jour.'/'.$mois.'/'.$annee.', à '.$heure2.'h '.$minute.'min '.$seconde.'s,';
if (isset($marque)||isset($modele))
//conditionne l affichage du modèle d'appareil photo à son existence
echo'<br> avec un '.$marque.' '.$modele.'.<br>';
//conditionne l affichage du logiciel à son existence
if (isset($logiciel))
echo 'Modifiée avec '.$logiciel.'.<br>';
//debut de la création du lien vers googlle maps
$lati = $result['latitude'];
$longi = $result['longitude'];
$virg = ',';
$page = "";
$url = 'http://www.google.fr/maps/place/';
$text = "Voir le lieu de la photo sur Google Maps";
$page .= '<a title="Voir le lieu de la prise de vue sur Google Maps" target="_blank" href="'.$url.$lati.$virg.$longi.'"><img src="images/mise-en-page/google-maps.jpg"/></a>';
echo $page;
echo '<br>';
//fin de la création du lien vers googlle maps
// fin des résultats
echo '
</font></p>
</td>
</tr>
</tbody>
</table>
';
unset($date, $jour, $mois, $annee, $heure2, $minute, $seconde, $marque, $modele, $logiciel); //réinitialisation des variables
}
?></div>
</body>
</html>
Bon ben j'ai finalement réussi je suis trop fier de moi
Le lien vers google maps fonctionne et cerise sur le gâteau à partir d'une image
Voici le code il doit y avoir plus simple mais ça fonctionne et pour moi c'est le principal
[PHP]
//debut de la création du lien vers google maps
$lati = $result['latitude'];
$longi = $result['longitude'];
$virg = ',';
$page = "";
$url = 'http://www.google.fr/maps/place/';
$text = "Voir le lieu de la photo sur Google Maps";
$page .= '<a title="Voir le lieu de la prise de vue sur Google Maps" target="_blank" href="'.$url.$lati.$virg.$longi.'"><img src="../images/mise-en-page/google-maps.jpg"/></a>';
echo $page;
echo '<br>';
//fin de la création du lien vers google maps
[/PHP]
Et ci-dessous le code complet pour avoir en PHP une galerie d'images qui se charge automatiquement à partir d'un dossier unique, cette galerie tiendra compte des donnée EXIF de l'image et vous permettra d'afficher le nom de la photo, le titre de la photo, le commentaire, les données GPS, l'altitude, la date et l'heure de la prise de la photo, le logiciel de retouche si utilisé et enfin un lien vers google Maps pour voir où a été prise la photo.
Il faut bien sur que la photo soit renseignée, il y a pas mal d'éditeur "exif" pour ça.
Voici le code
[PHP]
<html>
<head>
</head>
<body >
<div align="center">
<table border="0" width="480">
<tr>
<td align="center" style="font-family: Comic Sans MS; font-size: 18pt">
</td>
</tr>
</table>
<?php
$dir="1";
$dossier=opendir($dir);
while(false!==($files=readdir($dossier))) {
if(in_array(strtolower(pathinfo($files,PATHINFO_EXTENSION)), array('jpg', 'jpeg', 'tif', 'tiff', 'gif', 'png', 'bmp'))){
$listfiles[]=$files;
}
}
closedir($dossier);
rsort($listfiles); //rsort ordre inverse alphabétique sort ordre alphabétique
$nbe=count($listfiles);
//Les parametres
if (!empty($_GET['parPage'])) { //Nombre d'image par page
$images_par_page=intval($_GET['parPage']);
}
else $images_par_page = 14;
if (!empty($_GET['image_debut'])) {//L'index de la première image à afficher dans cette page
$index_image_debut = intval($_GET['image_debut']);
}
else $index_image_debut = 0;
//L'index de la dernière
if ($nbe < ($index_image_debut + $images_par_page)) {//Pour ne pas essayer d'afficher plus d'images qu'on en a
$index_image_fin = $nbe - 1 ;
}
else $index_image_fin = $index_image_debut + $images_par_page;
$nbe_pages_=$nbe/($images_par_page+1);
$nbe_pages=ceil($nbe_pages_);
//Affichage de la galerie
for ($i=$index_image_debut;$i<=$index_image_fin;$i++) {
$lien=$dir.'/'.$listfiles[$i];
unset($exif_tab); //réinitialisation du tableau exif_tab
if(in_array(strtolower(end(explode('.', $listfiles[$i]))), array('jpg', 'jpeg', 'tif', 'tiff'))) // Si fichier Jpeg ou Tiff
{
if($exif = exif_read_data($lien, EXIF, true)) // Si le fichier $listfiles[$i] contient des infos Exif
{
foreach ($exif as $key => $section) // On parcourt la première partie du tableau multidimensionnel
{
foreach ($section as $name => $value) // On parcourt la seconde partie
{
$exif_tab[$name] .= $value; // Récupération des valeurs dans le tableau $exif_tab
}
}
if($exif_tab['Make']) // Marque de l'appareil
$marque = $exif_tab['Make'];
if($exif_tab['Model'])// Modèle de l'appareil
$modele = $exif_tab['Model'];
if($exif_tab['DateTimeOriginal'])
$date = $exif_tab['DateTimeOriginal']; // Date de la prise de vue (heure de l'appareil)
if($exif_tab['Software']) // Si l'information sur le logiciel existe
$logiciel = $exif_tab['Software'];
if($exif_tab['GPSAltitude']) // Altitude
$GPSAltitude = $exif_tab['GPSAltitude'];
if($exif_tab['GPSLatitudeRef']) // Latitude Ref
$GPSLatitudeRef = $exif_tab['GPSLatitudeRef'];
if($exif_tab['GPSLongitudeRef']) // Longitude Ref
$GPSLongitudeRef = $exif_tab['GPSLongitudeRef'];
// La date est d'un format spécial, on va donc la rendre lisible
$date2 = explode(":", current(explode(" ", $date)));
$heure = explode(":", end(explode(" ", $date))); // Utile dans le cas où vous souhaitez extraire l'heure
$annee = current($date2); // Je lis la valeur courante de date2
$mois = next($date2); // Puis la suivante (c'est un tableau)
$jour = next($date2); // Puis la suivante
// De même pour obtenir l'heure
$heure2 = current($heure); // Je lis la valeur courante de heure
$minute = next($heure); // Puis la suivante (c'est un tableau)
$seconde = next($heure); // Puis la suivante
}
}
unset($auteur, $titre, $commentaire); //réinitialisation des variables
GetImageSize ($lien,$info);
if (isset($info["APP13"])) //lecture des informations IPTC
{
$iptc = iptcparse ($info["APP13"]);
$commentaire = $iptc["2#120"][0];
}
echo '<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td align="center" valign="middle"><a title="Les wallpapers du site Jeep Wrangler JKU" target="_blank" href="'.$lien.'"><img border="4" class="img" alt="'.$lien.'" height="480" src="'.$lien.'"/></a></td>
</tr>
<tr>
<td align="center" valign="middle">
<p><font size="4" face="Comic Sans MS">';
// debut recherche coordonnées GPS
$LatM = 1;
$LongM = 1;
$GPSLatitudeRef=$exif['GPS']['GPSLatitudeRef'];
if ("$GPSLatitudeRef" == 'S') {
$LatM = -1;
}
$GPSLongitudeRef=$exif['GPS']['GPSLongitudeRef'];
if ("$GPSLongitudeRef" == 'W') {
$LongM = -1;
}
// Get the GPS data
$gps['LatDegree'] = $exif['GPS']["GPSLatitude"][0];
$gps['LatMinute'] = $exif['GPS']["GPSLatitude"][1];
$gps['LatgSeconds'] = $exif['GPS']["GPSLatitude"][2];
$gps['LongDegree'] = $exif['GPS']["GPSLongitude"][0];
$gps['LongMinute'] = $exif['GPS']["GPSLongitude"][1];
$gps['LongSeconds'] = $exif['GPS']["GPSLongitude"][2];
//convert strings to numbers
foreach ($gps as $key => $value) {
$pos = strpos($value, '/');
if ($pos !== false) {
$temp = explode('/', $value);
$gps[$key] = $temp[0] / $temp[1];
}
}
//calculate the decimal degree
$result['latitude'] = $LatM * ($gps['LatDegree'] + ($gps['LatMinute'] / 60) + ($gps['LatgSeconds'] / 3600));
$result['longitude'] = $LongM * ($gps['LongDegree'] + ($gps['LongMinute'] / 60) + ($gps['LongSeconds'] / 3600));
// fin recherche coordonnées GPS
// Affichage des résultats
//conditionne l affichage du nom du fichier à son existence
echo 'Nom du fichier : ';
echo ''.substr($listfiles[$i],0,-10).'<br>'; //substr permet de réduire l afiichage pour ne pas voir l extension du fichier
//conditionne l affichage du titre à son existence
if (isset($titre))
echo '<b><u>'.$titre.'</u></b><br>';
//conditionne l affichage du commentaire à son existence
if (isset($commentaire))
echo 'Localisation : '.$commentaire.'<br>';
// affichage des coordonnees GPS
echo ' Coordonnées GPS ', ($result['latitude']),' ',($result['longitude']),' <br> ';
// affichage altitude
if (isset($GPSAltitude))
echo 'Altitude : '.substr($GPSAltitude,0,-2).'m.<br>';
//conditionne l affichage de la date à son existence
echo 'Photo prise ';
if (isset($date))
echo ' le '.$jour.'/'.$mois.'/'.$annee.', à '.$heure2.'h '.$minute.'min '.$seconde.'s,';
if (isset($marque)||isset($modele))
//conditionne l affichage du modèle d'appareil photo à son existence
echo'<br> avec un '.$marque.' '.$modele.'.<br>';
//conditionne l affichage du logiciel à son existence
if (isset($logiciel))
echo 'Modifiée avec '.$logiciel.'.<br>';
//debut de la création du lien vers googlle maps
$lati = $result['latitude'];
$longi = $result['longitude'];
$virg = ',';
$page = "";
$url = 'http://www.google.fr/maps/place/';
$text = "Voir le lieu de la photo sur Google Maps";
$page .= '<a title="Voir le lieu de la prise de vue sur Google Maps" target="_blank" href="'.$url.$lati.$virg.$longi.'"><img src="images/mise-en-page/google-maps.jpg"/></a>';
echo $page;
echo '<br>';
//fin de la création du lien vers googlle maps
// fin des résultats
echo '
</font></p>
</td>
</tr>
</tbody>
</table>
';
unset($date, $jour, $mois, $annee, $heure2, $minute, $seconde, $marque, $modele, $logiciel); //réinitialisation des variables
}
?></div>
</body>
</html>
[/PHP]