PHP extract GPS EXIF data

前端 未结 13 1396
执笔经年
执笔经年 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:58

    This is a refactored version of Gerald Kaszuba's code (currently the most widely accepted answer). The result should be identical, but I've made several micro-optimizations and combined the two separate functions into one. In my benchmark testing, this version shaved about 5 microseconds off the runtime, which is probably negligible for most applications, but might be useful for applications which involve a large number of repeated calculations.

    $exif = exif_read_data($filename);
    $latitude = gps($exif["GPSLatitude"], $exif['GPSLatitudeRef']);
    $longitude = gps($exif["GPSLongitude"], $exif['GPSLongitudeRef']);
    
    function gps($coordinate, $hemisphere) {
      if (is_string($coordinate)) {
        $coordinate = array_map("trim", explode(",", $coordinate));
      }
      for ($i = 0; $i < 3; $i++) {
        $part = explode('/', $coordinate[$i]);
        if (count($part) == 1) {
          $coordinate[$i] = $part[0];
        } else if (count($part) == 2) {
          $coordinate[$i] = floatval($part[0])/floatval($part[1]);
        } else {
          $coordinate[$i] = 0;
        }
      }
      list($degrees, $minutes, $seconds) = $coordinate;
      $sign = ($hemisphere == 'W' || $hemisphere == 'S') ? -1 : 1;
      return $sign * ($degrees + $minutes/60 + $seconds/3600);
    }
    
    0 讨论(0)
提交回复
热议问题