From 0b157b330a29f0abac91a6bf98153cfe27480edf Mon Sep 17 00:00:00 2001 From: Nikolay Kalinin <6316472+KalininN@users.noreply.github.com> Date: Wed, 23 Jul 2025 19:38:23 +0200 Subject: [PATCH] Fix: Exif parsers should accept longtitude up to 180 degrees (#1260) --- api/scanner/exif/exif_parser_external.go | 4 ++-- api/scanner/exif/exif_parser_internal.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/scanner/exif/exif_parser_external.go b/api/scanner/exif/exif_parser_external.go index 4faeb862..f4df4ae0 100644 --- a/api/scanner/exif/exif_parser_external.go +++ b/api/scanner/exif/exif_parser_external.go @@ -79,9 +79,9 @@ func extractValidGpsData(fileInfo *exiftool.FileMetadata, mediaPath string) (*fl } // GPS data validation - if (GPSLat != nil && math.Abs(*GPSLat) > 90) || (GPSLong != nil && math.Abs(*GPSLong) > 90) { + if (GPSLat != nil && math.Abs(*GPSLat) > 90) || (GPSLong != nil && math.Abs(*GPSLong) > 180) { log.Printf( - "Incorrect GPS data in the %s Exif data: %f, %f, while expected values between '-90' and '90'. Ignoring GPS data.", + "Incorrect GPS data in the %s Exif data: %f, %f, while expected latitude between '-90' and '90', and longitude between '-180' and '180'. Ignoring GPS data.", mediaPath, *GPSLat, *GPSLong) return nil, nil } diff --git a/api/scanner/exif/exif_parser_internal.go b/api/scanner/exif/exif_parser_internal.go index 9b1f08b3..4e7c4bf2 100644 --- a/api/scanner/exif/exif_parser_internal.go +++ b/api/scanner/exif/exif_parser_internal.go @@ -144,10 +144,10 @@ func (p internalExifParser) ParseExif(mediaPath string) (returnExif *models.Medi lat, long, err := exifTags.LatLong() if err == nil { - if math.Abs(lat) > 90 || math.Abs(long) > 90 { + if math.Abs(lat) > 90 || math.Abs(long) > 180 { returnExif = &newExif log.Printf( - "Incorrect GPS data in the %s Exif data: %f, %f, while expected values between '-90' and '90'. Ignoring GPS data.", + "Incorrect GPS data in the %s Exif data: %f, %f, while expected latitude between '-90' and '90', and longitude between '-180' and '180'. Ignoring GPS data.", mediaPath, long, lat) return } else {