Changeset 1080

Show
Ignore:
Timestamp:
06/16/07 18:30:53 (1 year ago)
Author:
ilmari
Message:

Make sure coordinates are non-empty as well as defined.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/OpenGuides/Template.pm

    r1079 r1080  
    424424 
    425425            # If we were sent x and y, work out lat/long; and vice versa. 
    426             if ( defined $os_x && defined $os_y ) { 
     426            if ( defined $os_x && length $os_x && defined $os_y && length $os_y ) { 
    427427                my $point = Geography::NationalGrid::GB->new( Easting =>$os_x, 
    428428                                     Northing=>$os_y); 
    429429                $lat  = sprintf("%.6f", $point->latitude); 
    430430                $long = sprintf("%.6f", $point->longitude); 
    431             } elsif ( defined $lat && defined $long ) { 
     431            } elsif ( defined $lat && length $lat && defined $long && length $long ) { 
    432432                my $point = Geography::NationalGrid::GB->new(Latitude  => $lat, 
    433433                                                             Longitude => $long); 
     
    436436            } 
    437437             
    438             if ( defined $os_x && defined $os_y ) { 
     438            if ( defined $os_x && length $os_x && defined $os_y && length $os_y ) { 
    439439                %vars = ( 
    440440                            %vars, 
     
    469469 
    470470            # If we were sent x and y, work out lat/long; and vice versa. 
    471             if ( defined $osie_x && defined $osie_y ) { 
     471            if ( defined $osie_x && length $osie_x && defined $osie_y && length $osie_y ) { 
    472472                my $point = Geography::NationalGrid::IE->new(Easting=>$osie_x, 
    473473                                   Northing=>$osie_y); 
    474474                $lat = sprintf("%.6f", $point->latitude); 
    475475                $long = sprintf("%.6f", $point->longitude); 
    476             } elsif ( defined $lat && defined $long ) { 
     476            } elsif ( defined $lat && length $lat && defined $long && length $long ) { 
    477477                my $point = Geography::NationalGrid::GB->new(Latitude  => $lat, 
    478478                                                             Longitude => $long); 
     
    480480                $osie_y = $point->northing; 
    481481            } 
    482             if ( defined $osie_x && defined $osie_y ) { 
     482            if ( defined $osie_x && length $osie_x && defined $osie_y && length $osie_y ) { 
    483483                %vars = ( 
    484484                            %vars, 
     
    506506            my $long   = $q->param("longitude"); 
    507507             
    508             if ( defined $lat && defined $long ) { 
     508            if ( defined $lat && length $lat && defined $long && length $long ) { 
    509509                # Trim whitespace. 
    510510                $lat =~ s/\s+//g; 
     
    543543    if ( $prefs{latlong_traditional} ) { 
    544544        foreach my $var ( qw( latitude longitude ) ) { 
    545             next unless defined $vars{$var}
     545            next unless defined $vars{$var} && length $vars{$var}
    546546            $vars{$var."_unmunged"} = $vars{$var}; 
    547547            $vars{$var} = Geography::NationalGrid->deg2string($vars{$var});