Changeset 1080


Ignore:
Timestamp:
Jun 16, 2007, 6:30:53 PM (14 years ago)
Author:
Dagfinn Ilmari Mannsåker
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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});
Note: See TracChangeset for help on using the changeset viewer.