From 37e96ea5405a04cc0e5e7731c2527183da14266d Mon Sep 17 00:00:00 2001 From: Max Kremmel Date: Fri, 11 Jul 2008 17:41:42 +0000 Subject: fix undefined indexes when GPS data is incomplete --- plugins/mime.image.php | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'plugins/mime.image.php') diff --git a/plugins/mime.image.php b/plugins/mime.image.php index c955aa6..ebe3497 100644 --- a/plugins/mime.image.php +++ b/plugins/mime.image.php @@ -1,9 +1,9 @@ - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ * created Thursday May 08, 2008 * @package liberty * @subpackage liberty_mime_handler @@ -135,13 +135,19 @@ function mime_image_load( &$pFileHash, &$pPrefs, $pParams = NULL ) { // if we have GPS data and geo is active, we calculate geo stuff if(( $ret['gps'] = LibertyMime::getMetaData( $ret['attachment_id'], "GPS" )) && $gBitSystem->isPackageActive( 'geo' )) { - $ret['geo']['lng'] = $ret['gps']['gpslongitude']; - $ret['geo']['lat'] = $ret['gps']['gpslatitude']; - if( !empty( $ret['gps']['gpslongituderef'] ) && $ret['gps']['gpslongituderef'] == 'W' ) { - $ret['geo']['lng'] = 0 - $ret['geo']['lng']; + // longitude + if( !empty( $ret['gps']['gpslongitude'] )) { + $ret['geo']['lng'] = $ret['gps']['gpslongitude']; + if( !empty( $ret['gps']['gpslongituderef'] ) && $ret['gps']['gpslongituderef'] == 'W' ) { + $ret['geo']['lng'] = 0 - $ret['geo']['lng']; + } } - if( !empty( $ret['gps']['gpslatituderef'] ) && $ret['gps']['gpslatituderef'] == 'S' ) { - $ret['geo']['lat'] = 0 - $ret['geo']['lat']; + // latitude + if( !empty( $ret['gps']['gpslatitude'] )) { + $ret['geo']['lat'] = $ret['gps']['gpslatitude']; + if( !empty( $ret['gps']['gpslatituderef'] ) && $ret['gps']['gpslatituderef'] == 'S' ) { + $ret['geo']['lat'] = 0 - $ret['geo']['lat']; + } } // set sea level data when available if( !empty( $ret['gps']['gpsaltitude'] )) { @@ -149,6 +155,11 @@ function mime_image_load( &$pFileHash, &$pPrefs, $pParams = NULL ) { $ret['geo']['amsl'] = $dividend / $divisor; $ret['geo']['amsl_unit'] = 'm'; } + + // final check to see if we have enough data + if( empty( $ret['gps']['lng'] ) || empty( $ret['gps']['lat'] )) { + unset( $ret['gps'] ); + } } // check for panorama image -- cgit v1.3