PHP extract GPS EXIF data

前端 未结 13 1442
执笔经年
执笔经年 2020-11-29 16:26

I would like to extract the GPS EXIF tag from pictures using php. I\'m using the exif_read_data() that returns a array of all tags + data :

GPS.         


        
13条回答
  •  感动是毒
    2020-11-29 16:52

    This is my modified version. The other ones didn't work for me. It will give you the decimal versions of the GPS coordinates.

    The code to process the EXIF data:

    $exif = exif_read_data($filename);
    $lon = getGps($exif["GPSLongitude"], $exif['GPSLongitudeRef']);
    $lat = getGps($exif["GPSLatitude"], $exif['GPSLatitudeRef']);
    var_dump($lat, $lon);
    

    Prints out in this format:

    float(-33.8751666667)
    float(151.207166667)
    

    Here are the functions:

    function getGps($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];
    
        return floatval($parts[0]) / floatval($parts[1]);
    }
    

提交回复
热议问题