3 # Routino data visualiser CGI
5 # Part of the Routino routing software.
7 # This file Copyright 2008,2009 Andrew M. Bishop
9 # This program is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU Affero General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU Affero General Public License for more details.
19 # You should have received a copy of the GNU Affero General Public License
20 # along with this program. If not, see <http://www.gnu.org/licenses/>.
23 # Use the directory paths script
26 # Use the perl CGI module
29 # Create the query and get the parameters
33 @rawparams=$query->param;
35 # Legal CGI parameters with regexp validity check
38 "latmin" => "[-0-9.]+",
39 "latmax" => "[-0-9.]+",
40 "lonmin" => "[-0-9.]+",
41 "lonmax" => "[-0-9.]+",
42 "data" => "(junctions|super|oneway|speed|weight|height|width|length)"
45 # Validate the CGI parameters, ignore invalid ones
47 foreach $key (@rawparams)
49 foreach $test (keys (%legalparams))
51 if($key =~ m%^$test$%)
53 $value=$query->param($key);
55 if($value =~ m%^$legalparams{$test}$%)
57 $cgiparams{$key}=$value;
64 # Parameters to limit range selected
77 # Check the parameters
79 $latmin=$cgiparams{"latmin"};
80 $latmax=$cgiparams{"latmax"};
81 $lonmin=$cgiparams{"lonmin"};
82 $lonmax=$cgiparams{"lonmax"};
83 $data =$cgiparams{"data"};
85 if($latmin eq "" || $latmax eq "" || $lonmin eq "" || $lonmax eq "" || $data eq "")
87 print header(-status => '500 Invalid CGI parameters');
91 if(($latmax-$latmin)>$limits{$data} || ($lonmax-$lonmin)>$limits{$data})
93 print header(-status => '500 Selected area too large');
99 print header('text/plain');
101 print "$latmin $lonmin $latmax $lonmax\n";
105 $params.=" --dir=$data_dir" if($data_dir);
106 $params.=" --prefix=$data_prefix" if($data_prefix);
107 $params.=" --visualiser --data=$data";
108 $params.=" --latmin=$latmin --latmax=$latmax --lonmin=$lonmin --lonmax=$lonmax";
110 system "$bin_dir/filedumper $params 2>&1";