thumbHTML; if (is_callable('exif_read_data')) { $exif = @exif_read_data($p->imagePath); if ($exif !== false) { $item["lon"] = getExifGps($exif["GPSLongitude"], $exif['GPSLongitudeRef']); $item["lat"] = getExifGps($exif["GPSLatitude"], $exif['GPSLatitudeRef']); if (($item["lat"] != 0) || ($item["lon"] != 0)) { $result[] = $item; } else if (isset($p->imagedate)) { $_dt = strtotime($p->imagedate) + $dtoffset; $_item = findItemCoordinate($_dt, $dt, $lat, $lon); if ($_item != null) { $item["lat"] = $_item["lat"]; $item["lon"] = $_item["lon"]; $result[] = $item; } } } } else { $error .= "Sorry, exif_read_data function not found! check your hosting..
"; } } } catch (Exception $e) { $error .= 'Error When Retrieving NextGen Gallery galleries/images: $e
'; } return $result; } function findItemCoordinate($imgdt, $dt, $lat, $lon) { foreach(array_keys($dt) as $i) { if ($i!=0 && $imgdt >= $dt[$i-1] && $imgdt <= $dt[$i]) { if ($lat[$i] != 0 && $lon[$i] != 0) return array( "lat" => $lat[$i], "lon" => $lon[$i] ); } } return null; } function getExifGps($exifCoord, $hemi) { $degrees = count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0; $minutes = count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0; $seconds = count($exifCoord) > 2 ? gps2Num($exifCoord[2]) : 0; $flip = ($hemi == 'W' or $hemi == 'S') ? -1 : 1; return $flip * ($degrees + $minutes / 60 + $seconds / 3600); } function gps2Num($coordPart) { $parts = explode('/', $coordPart); if (count($parts) <= 0) return 0; if (count($parts) == 1) return $parts[0]; $lat = floatval($parts[0]); $lon = floatval($parts[1]); if ($lon == 0) return $lat; return $lat / $lon; } ?>