Ignore:
Timestamp:
09/10/11 17:02:19 (9 years ago)
Author:
cljosse
Message:

[extensions] edit_gmaps add functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/edit_gmaps/edit_gmaps.inc.php

    r9446 r12126  
    6666class cl_edit_controler { 
    6767 
     68static public  function add_meta_gps($new_ps_file_info_array,$image){ 
     69            global $nom_fichier,$erreur_message, $info_message;   
     70             
     71 
     72 // $exif = @read_exif_data( $exif ); 
     73//  $exif = @array_intersect_key( $exif, array_flip( array('GPSLatitudeRef', 'GPSLatitude', 'GPSLongitudeRef', 'GPSLongitude', 'GPSAltitudeRef', 'GPSAltitude') ) ); 
     74  
     75  foreach( $new_ps_file_info_array['selection']  as $filename )   { 
     76    //====================================================== 
     77         if($new_ps_file_info_array['lat']=='') {     
     78            $erreur_message .= "Error - lon or lat = null : $filename <br>\n"; 
     79            }else{ 
     80     if($filename!="") {                    
     81            //= $new_ps_file_info_array[ 'filename' ]; 
     82            // Protect against hackers editing other files 
     83            // copy( $filename,  $filename.".bak" ); 
     84            $path_parts = pathinfo( $filename );      
     85 
     86            if ( strcasecmp( $path_parts["extension"], "jpg" ) != 0 ) { 
     87              $erreur_message .= $filename ; 
     88              $erreur_message .="Incorrect File Type - JPEG Only\n"; 
     89              $filename=""; 
     90              return; 
     91            } 
     92            // Change: removed limitation on file being in current directory - as of version 1.11 
     93            // Retrieve the header information 
     94 
     95            $nom_fichier=$filename; 
     96            $jpeg_header_data = get_jpeg_header_data( $filename ); 
     97            // Retreive the EXIF, XMP and Photoshop IRB information from 
     98            // the existing file, so that it can be updated 
     99            $Exif_array = get_EXIF_JPEG( $filename ); 
     100            $XMP_array = read_XMP_array_from_text( get_XMP_text( $jpeg_header_data ) ); 
     101            $IRB_array = get_Photoshop_IRB( $jpeg_header_data ); 
     102            // Update the JPEG header information with the new Photoshop File Info 
     103 
     104            $jpeg_header_data = put_GPS_file_info( $jpeg_header_data, $new_ps_file_info_array, $Exif_array, $XMP_array, $IRB_array ); 
     105            // Check if the Update worked 
     106            if ( $jpeg_header_data == FALSE ) { 
     107              // Update of file info didn''t work - output error message 
     108              $erreur_message .= "jpeg_header_data 
     109              Error - Failure update Photoshop File Info : $filename <br>\n"; 
     110              return false; 
     111              // Output HTML with the form and data which was 
     112              // sent, to allow the user to fix it 
     113            }else if ( FALSE == put_jpeg_header_data(  $filename, $filename, $jpeg_header_data ) ) { 
     114              // Attempt to write the new JPEG file 
     115              // Writing of the new file didn''t work - output error message 
     116              $erreur_message .= "Error - Failure to write new JPEG : $filename <br>\n"; 
     117              return false; 
     118              // Output HTML with the form and data which was 
     119              // sent, to allow the user to fix it 
     120            }else{             
     121              return true; 
     122          }  
     123     }// test filename} 
     124   } //for each 
     125 
     126  }    
     127 
     128 
     129} 
     130//========================================================== 
     131static public function Get_exif_gps($firt_image,$image,$hight_gps) { 
     132  global $errors;global $template ; 
     133    global $info_message ;  
     134    error_reporting ( 1 ); 
     135    $filename=$firt_image; 
     136    
     137    $datas = array(); 
     138    $errors = array(); 
     139    $exif = @read_exif_data( $filename ); 
     140    if ( empty($exif) ) return; 
     141 
     142 $exif = array_intersect_key( $exif, array_flip( array('GPSLatitudeRef', 'GPSLatitude', 'GPSLongitudeRef', 'GPSLongitude', 'GPSAltitudeRef', 'GPSAltitude') ) ); 
     143 if(count($exif)==0 || $hight_gps ){ 
     144  $path_parts = pathinfo( $filename ); 
     145  $exif = @read_exif_data( $path_parts['dirname']."/pwg_high/".$path_parts['basename']); 
     146  $exif = array_intersect_key( $exif, array_flip( array('GPSLatitudeRef', 'GPSLatitude', 'GPSLongitudeRef', 'GPSLongitude', 'GPSAltitudeRef', 'GPSAltitude') ) ); 
     147 } 
     148 if(count($exif)==0) return ;  
     149//==================================================================== 
     150    $lat = $image['lat'] ; 
     151    $lon = $image['lon'] ; 
     152    $alt = $image['alt']; 
     153    
     154        $p1=base_to_meta($image); 
     155         
     156 if($exif['GPSLatitude'][0]=="1/1" && $lat!=""){ 
     157        $exif['GPSLatitudeRef'] = $p1['GPSLatitudeRef'] ;     
     158        $exif['GPSLatitude']=$p1['GPSLatitude'];   
     159        $exif['GPSLongitudeRef']  = $p1['GPSLongitudeRef']; 
     160        $exif['GPSLongitude']=$p1['GPSLongitude']; 
     161        $exif['GPSAltitudeRef'] =$p1['GPSAltitudeRef'];         
     162        $exif['GPSAltitude']= $p1['GPSAltitude'];          
     163 
     164   } 
     165     
     166$is_exif =  is_array($exif['GPSLatitude']) && $exif['GPSLatitude']!=''   ; 
     167$is_exif =  is_array($exif['GPSLongitude']) && $exif['GPSLongitude']!=''  & $is_exif  ; 
     168 
     169 if ($is_exif) {   
     170     $lat_exif = Parse_Lat_Lon( $exif['GPSLatitude'] ); 
     171     $lon_exif = Parse_Lat_Lon( $exif['GPSLongitude'] ); 
     172     $alt_exif = Parse_Fract( $exif['GPSAltitude'] ); 
     173 } 
     174 
     175$is_exif =    $lat_exif!=0;  
     176//==============================  
     177if ($lat =="" || $hight_gps){ 
     178  $lat = Parse_Lat_Lon( $exif['GPSLatitude'] ); 
     179  if ( $exif['GPSLatitudeRef']=='S' ) $lat = -$lat; 
     180}else{ 
     181      if($lat<0)      $exif['GPSLatitudeRef']='S' ; 
     182        else        $exif['GPSLatitudeRef']='N' ; 
     183} 
     184//============================== 
     185          if ($lon =="" || $hight_gps) { 
     186             $lon = Parse_Lat_Lon( $exif['GPSLongitude'] ); 
     187             if ( $exif['GPSLongitudeRef']=='W' ) $lon = -$lon; 
     188          }else{ 
     189            if ($lon<0) $exif['GPSLongitudeRef'] ='W' ; 
     190            else $exif['GPSLongitudeRef'] ='E' ; 
     191          } 
     192//======================================================================= 
     193           $altref = 0; 
     194          if (!is_array($exif['GPSAltitude']) or !is_array($exif['GPSAltitudeRef']) ){ 
     195                  $exif['GPSAltitude']=$alt; 
     196                  $exif['GPSAltitudeRef']=0; 
     197            }   else { 
     198                $alt =       $exif['GPSAltitude']; 
     199                $altref = $exif['GPSAltitudeRef']; 
     200            } 
     201   //======================================================================== 
     202        $datas[] = array ( 
     203            'is_exif' =>  $is_exif , 
     204            ' filename=' => $filename , 
     205            'id' =>    $image['id'] , 
     206            'lat' =>   $lat , 
     207            'lon' =>   $lon , 
     208            'latDMS' =>     $exif['GPSLatitude'][0]." ". 
     209                            $exif['GPSLatitude'][1]." ". 
     210                            $exif['GPSLatitude'][2]." ". 
     211                            $exif['GPSLatitudeRef'], 
     212            'lonDMS' =>     $exif['GPSLongitude'][0]." ". 
     213                            $exif['GPSLongitude'][1]." ". 
     214                            $exif['GPSLongitude'][2]." ". 
     215                            $exif['GPSLongitudeRef'], 
     216            'altref' => $exif['GPSAltitudeRef'], 
     217            'alt' =>   $exif['GPSAltitude']  
     218            ); 
     219 
     220return $datas[0] ; 
     221} 
     222//====================================================== 
     223/* 
     224 * 
     225 */ 
     226 static public function add_data_base($sel,$lat,$lon,$alt){ 
     227    global $page,$info_message,$erreur_message ; 
     228 
     229    if ( strlen($lat)>0 and strlen($lon)>0 ) { 
     230      if ( (double)$lat<=90 and (double)$lat>=-90 
     231          and (double)$lon<=180 and (double)$lat>=-180 ) 
     232        $update_query = 'lat='.$lat.', lon='.$lon; 
     233      else 
     234        $erreur_message .= 'Invalid lat or lon value'; 
     235    } 
     236    elseif ( strlen($lat)==0 and strlen($lon)==0 ) 
     237      $update_query = 'lat=NULL, lon=NULL'; 
     238    else 
     239       $erreur_message .= 'Both lat/lon must be empty or not empty'; 
     240    if ( strlen($alt)==0) 
     241          $update_query .= ', alt=NULL'; 
     242        else 
     243          $update_query .= ', alt=' .$alt ; 
     244 
     245    if (isset($update_query)){ 
     246        $update_query = ' 
     247        UPDATE '.IMAGES_TABLE.' SET '.$update_query.' 
     248        WHERE id IN ('.implode(',',$sel).')'; 
     249        pwg_query($update_query) ; 
     250        cl_meta_invalidate_cache(); 
     251        $info_message .=  l10n('update') . " " . implode(',',$sel)  . " ". IMAGES_TABLE . " : " .  l10n('OK') ."<br />";         
     252       } 
     253  } 
     254//====================================================== 
    68255     static public function cl_edit_admin_menu($menu) 
    69256    { 
     
    77264            return $menu; 
    78265    } 
    79  
    80  
    81  
    82  
    83  
    84  
    85266        /* 
    86267        * 
Note: See TracChangeset for help on using the changeset viewer.