Changeset 7033


Ignore:
Timestamp:
09/28/10 22:20:33 (9 years ago)
Author:
rvelices
Message:
  • allow gps exif metadata synchronisation with high resolution images
Location:
extensions/rv_gmaps/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • extensions/rv_gmaps/trunk/admin/admin_sync.php

    r3447 r7033  
    1919if ( isset($_POST['submit']) ) 
    2020  $sync_options = array( 
    21 //    'no_overwrite' => isset($_POST['no_overwrite']), 
    2221    'simulate' => is_adviser() ? true : isset($_POST['simulate']), 
     22                'use_high' => isset($_POST['use_high']), 
    2323    'cat_id' => isset($_POST['cat_id']) ? (int)$_POST['cat_id'] : 0, 
    2424    'subcats_included' => isset($_POST['subcats_included']), 
     
    2626else 
    2727  $sync_options = array( 
    28 //    'no_overwrite' => true, 
    2928    'simulate' => true, 
     29                'use_high' => true, 
    3030    'cat_id' => 0, 
    3131    'subcats_included' => true, 
     
    3535if ( isset($_POST['submit']) ) 
    3636{ 
     37        include_once(PHPWG_ROOT_PATH.'include/functions_picture.inc.php'); 
     38 
    3739  $where_clauses = array(); 
    3840  if ( $sync_options['cat_id']!=0 ) 
     
    4850 
    4951    $query=' 
    50 SELECT id,path,lat,lon 
     52SELECT id,path,lat,lon,has_high 
    5153  FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id=image_id 
    5254  WHERE category_id IN ('.implode(',', $cat_ids).') 
     
    5658  { 
    5759    $query=' 
    58 SELECT id,path,lat,lon 
     60SELECT id,path,lat,lon,has_high 
    5961  FROM '.IMAGES_TABLE; 
    6062  } 
     
    6567  foreach ($images as $image) 
    6668  { 
    67     $exif = @read_exif_data( $image['path'] ); 
    68     if ( empty($exif) ) 
    69       continue; 
    70     $exif = array_intersect_key( $exif, array_flip( array('GPSLatitudeRef', 'GPSLatitude', 'GPSLongitudeRef', 'GPSLongitude') ) ); 
    71     if ( count($exif)!=4 ) 
    72       continue; 
    73     if ( !in_array($exif['GPSLatitudeRef'], array('S', 'N') ) ) 
    74     { 
    75       $errors[] = $image['path']. ': GPSLatitudeRef not S or N'; 
    76       continue; 
    77     } 
    78     if ( !in_array($exif['GPSLongitudeRef'], array('W', 'E') ) ) 
    79     { 
    80       $errors[] = $image['path']. ': GPSLongitudeRef not W or E'; 
    81       continue; 
    82     } 
    83     if (!is_array($exif['GPSLatitude']) or !is_array($exif['GPSLongitude']) ) 
    84     { 
    85       $errors[] = $image['path']. ': GPSLatitude and GPSLongitude are not arrays'; 
    86       continue; 
    87     } 
    88     $lat = parse_lat_lon( $exif['GPSLatitude'] ); 
    89     if ( $exif['GPSLatitudeRef']=='S' ) 
    90       $lat = -$lat; 
    91     $lon = parse_lat_lon( $exif['GPSLongitude'] ); 
    92     if ( $exif['GPSLongitudeRef']=='W' ) 
    93       $lon = -$lon; 
    94     $datas[] = array ( 
    95       'id' => $image['id'], 
    96       'lat' => $lat, 
    97       'lon' => $lon, 
    98       ); 
     69                $filename = $image['path']; 
     70                if ($sync_options['use_high'] and $image['has_high']=='true') 
     71                        $filename = get_high_path($image); 
     72                $exif = @read_exif_data( $filename ); 
     73                if ( empty($exif) ) 
     74                        continue; 
     75                $exif = array_intersect_key( $exif, array_flip( array('GPSLatitudeRef', 'GPSLatitude', 'GPSLongitudeRef', 'GPSLongitude') ) ); 
     76                if ( count($exif)!=4 ) 
     77                        continue; 
     78                if ( !in_array($exif['GPSLatitudeRef'], array('S', 'N') ) ) 
     79                { 
     80                        $errors[] = $filename. ': GPSLatitudeRef not S or N'; 
     81                        continue; 
     82                } 
     83                if ( !in_array($exif['GPSLongitudeRef'], array('W', 'E') ) ) 
     84                { 
     85                        $errors[] = $filename. ': GPSLongitudeRef not W or E'; 
     86                        continue; 
     87                } 
     88                if (!is_array($exif['GPSLatitude']) or !is_array($exif['GPSLongitude']) ) 
     89                { 
     90                        $errors[] = $filename. ': GPSLatitude and GPSLongitude are not arrays'; 
     91                        continue; 
     92                } 
     93                $lat = parse_lat_lon( $exif['GPSLatitude'] ); 
     94                if ( $exif['GPSLatitudeRef']=='S' ) 
     95                        $lat = -$lat; 
     96                $lon = parse_lat_lon( $exif['GPSLongitude'] ); 
     97                if ( $exif['GPSLongitudeRef']=='W' ) 
     98                        $lon = -$lon; 
     99                $datas[] = array ( 
     100                        'id' => $image['id'], 
     101                        'lat' => $lat, 
     102                        'lon' => $lon, 
     103                        ); 
    99104  } 
    100105  $template->assign( 'sync_errors', $errors ); 
     
    135140$template->assign( 
    136141    array( 
    137       'SUBCATS_INCLUDED_CHECKED' => $sync_options['subcats_included'] ? 'checked="checked"' : '' 
     142      'SUBCATS_INCLUDED_CHECKED' => $sync_options['subcats_included'] ? 'checked="checked"' : '', 
     143                        'USE_HIGH_CHECKED' => $sync_options['use_high'] ? 'checked="checked"' : '' 
    138144    ) 
    139145  ); 
  • extensions/rv_gmaps/trunk/admin/admin_sync.tpl

    r6400 r7033  
    2727    <ul> 
    2828      <li><label><input type="checkbox" name="simulate" value="1" checked="checked" {$TAG_INPUT_ENABLED} /> {'only perform a simulation (no change in database will be made)'|@translate}</label></li> 
     29                        <li><label><input type="checkbox" name="use_high" value="1" {$USE_HIGH_CHECKED} /> use high resolution images if available</label></li> 
    2930    </ul> 
    3031  </fieldset> 
  • extensions/rv_gmaps/trunk/changelog.txt

    r6651 r7033  
    112.1.b 
     2- allow gps exif metadata synchronisation with high resolution images 
    23- fixed admin navigation bar 
    34- compatible with extended description 
    45- upgrade prototype 
     6- language updates 
    57 
    682.1.a 
  • extensions/rv_gmaps/trunk/main.inc.php

    r6400 r7033  
    11<?php /* 
    22Plugin Name: RV Maps&Earth 
    3 Version: 2.1.a 
     3Version: 2.1.b 
    44Description: Extend your gallery with Google Maps and Google Earth ... 
    55Plugin URI: http://piwigo.org/ext/extension_view.php?eid=122 
     
    77Author URI: http://www.modusoptimus.com/ 
    88*/ 
    9 define( 'RVM_PLUGIN_VERSION', '2.1.a'); 
     9define( 'RVM_PLUGIN_VERSION', '2.1.b'); 
    1010if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
    1111 
Note: See TracChangeset for help on using the changeset viewer.