Geogallery position des marqueurs à l'ouest de Greenwich
This commit is contained in:
parent
d57f4ca503
commit
bc65ce5da2
@ -283,7 +283,7 @@ class geogallery extends common
|
|||||||
$latitude = 'Donnée absente';
|
$latitude = 'Donnée absente';
|
||||||
$longitude = 'Donnée absente';
|
$longitude = 'Donnée absente';
|
||||||
// Vérifier si les données EXIF contiennent des informations de géolocalisation
|
// Vérifier si les données EXIF contiennent des informations de géolocalisation
|
||||||
if (!empty($exif['GPSLatitude']) && !empty($exif['GPSLongitude'])) {
|
if (!empty($exif['GPSLatitude']) || !empty($exif['GPSLongitude'])) {
|
||||||
// Coordonnées de latitude
|
// Coordonnées de latitude
|
||||||
$latitude = $this->gps_decimal($exif['GPSLatitude'], $exif['GPSLatitudeRef']);
|
$latitude = $this->gps_decimal($exif['GPSLatitude'], $exif['GPSLatitudeRef']);
|
||||||
|
|
||||||
@ -359,15 +359,20 @@ class geogallery extends common
|
|||||||
|
|
||||||
// Vérifier si les données EXIF contiennent des informations de géolocalisation
|
// Vérifier si les données EXIF contiennent des informations de géolocalisation
|
||||||
if (!empty($exif['GPSLatitude']) || !empty($exif['GPSLongitude'])) {
|
if (!empty($exif['GPSLatitude']) || !empty($exif['GPSLongitude'])) {
|
||||||
|
// Coordonnées de latitude
|
||||||
|
$latitude = $this->gps_decimal($exif['GPSLatitude'], $exif['GPSLatitudeRef']);
|
||||||
|
|
||||||
|
// Coordonnées de longitude
|
||||||
|
$longitude = $this->gps_decimal($exif['GPSLongitude'], $exif['GPSLongitudeRef']);
|
||||||
// Coordonnées
|
// Coordonnées
|
||||||
self::$galleries[] = [
|
self::$galleries[] = [
|
||||||
'lat' => $this->gps_decimal($exif['GPSLatitude'], $exif['GPSLatitudeRef']),
|
'lat' => $latitude,
|
||||||
'long' => $this->gps_decimal($exif['GPSLongitude'], $exif['GPSLatitudeRef']),
|
'long' => $longitude,
|
||||||
'img' => $fileInfos->getPath() . '/' . strtolower($fileInfos->getFilename()),
|
'img' => $fileInfos->getPath() . '/' . strtolower($fileInfos->getFilename()),
|
||||||
'thumb' => str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()),
|
'thumb' => str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()),
|
||||||
'label' => is_null($this->getData(['module', $this->getUrl(0), 'content', $gallery, 'legend', str_replace('.', '', $fileInfos->getFilename())]))
|
'label' => is_null($this->getData(['module', $this->getUrl(0), 'content', $gallery, 'legend', str_replace('.', '', $fileInfos->getFilename())]))
|
||||||
? ''
|
? ''
|
||||||
: $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'legend', str_replace('.', '', $fileInfos->getFilename())])
|
: $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'legend', str_replace('.', '', $fileInfos->getFilename())])
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -433,10 +438,10 @@ class geogallery extends common
|
|||||||
$degrees = count($coordinate) > 0 ? (float)$this->gps2Num($coordinate[0]) : 0.0;
|
$degrees = count($coordinate) > 0 ? (float)$this->gps2Num($coordinate[0]) : 0.0;
|
||||||
$minutes = count($coordinate) > 1 ? (float)$this->gps2Num($coordinate[1]) : 0.0;
|
$minutes = count($coordinate) > 1 ? (float)$this->gps2Num($coordinate[1]) : 0.0;
|
||||||
$seconds = count($coordinate) > 2 ? (float)$this->gps2Num($coordinate[2]) : 0.0;
|
$seconds = count($coordinate) > 2 ? (float)$this->gps2Num($coordinate[2]) : 0.0;
|
||||||
|
|
||||||
// Convertit les degrés, minutes et secondes en décimal (assure le type flottant)
|
// Convertit les degrés, minutes et secondes en décimal (assure le type flottant)
|
||||||
$decimal = $degrees + ($minutes / 60.0) + ($seconds / 3600.0);
|
$decimal = $degrees + ($minutes / 60.0) + ($seconds / 3600.0);
|
||||||
|
|
||||||
// Si l'hémisphère est au Sud ou à l'Ouest, les coordonnées sont négatives
|
// Si l'hémisphère est au Sud ou à l'Ouest, les coordonnées sont négatives
|
||||||
if ($hemisphere == 'S' || $hemisphere == 'W') {
|
if ($hemisphere == 'S' || $hemisphere == 'W') {
|
||||||
$decimal *= -1.0; // Multiplie par -1.0 pour assurer le type flottant
|
$decimal *= -1.0; // Multiplie par -1.0 pour assurer le type flottant
|
||||||
@ -444,7 +449,7 @@ class geogallery extends common
|
|||||||
|
|
||||||
return $decimal;
|
return $decimal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private function gps2Num($coordPart)
|
private function gps2Num($coordPart)
|
||||||
{
|
{
|
||||||
@ -456,8 +461,8 @@ class geogallery extends common
|
|||||||
return (float)$parts[0]; // Convertit en flottant même s'il y a un seul élément
|
return (float)$parts[0]; // Convertit en flottant même s'il y a un seul élément
|
||||||
}
|
}
|
||||||
return floatval($parts[0]) / floatval($parts[1]); // Résultat de la division en flottant
|
return floatval($parts[0]) / floatval($parts[1]); // Résultat de la division en flottant
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Fonction pour calculer la distance entre deux points géographiques
|
// Fonction pour calculer la distance entre deux points géographiques
|
||||||
private function haversineGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371)
|
private function haversineGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371)
|
||||||
|
Loading…
Reference in New Issue
Block a user