Disable user/pass for earthdata, not needed for now
[FlightAirMap.git] / country-statistics-arrival-airport.php
blobda24c0570ef7bfa51aa80feb5ac61d8baf412f00
1 <?php
2 require_once('require/class.Connection.php');
3 require_once('require/class.Spotter.php');
4 require_once('require/class.Language.php');
5 if (!isset($_GET['country'])) {
6 header('Location: '.$globalURL.'/country');
7 die();
9 $Spotter = new Spotter();
10 $country = ucwords(str_replace("-", " ", urldecode(filter_input(INPUT_GET,'country',FILTER_SANITIZE_STRING))));
11 $sort = filter_input(INPUT_GET,'sort',FILTER_SANITIZE_STRING);
12 $spotter_array = $Spotter->getSpotterDataByCountry($country, "0,1", $sort);
15 if (!empty($spotter_array))
17 $title = sprintf(_("Most Common Arrival Airports from %s"),$country);
19 require_once('header.php');
20 print '<div class="select-item">';
21 print '<form action="'.$globalURL.'/country" method="post">';
22 print '<select name="country" class="selectpicker" data-live-search="true">';
23 print '<option></option>';
24 $all_countries = $Spotter->getAllCountries();
25 foreach($all_countries as $all_country)
27 if($country == $all_country['country'])
29 print '<option value="'.strtolower(str_replace(" ", "-", $all_country['country'])).'" selected="selected">'.$all_country['country'].'</option>';
30 } else {
31 print '<option value="'.strtolower(str_replace(" ", "-", $all_country['country'])).'">'.$all_country['country'].'</option>';
34 print '</select>';
35 print '<button type="submit"><i class="fa fa-angle-double-right"></i></button>';
36 print '</form>';
37 print '</div>';
39 if ($_GET['country'] != "NA")
41 print '<div class="info column">';
42 print '<h1>'.sprintf(_("Airports &amp; Airlines from %s"),$country).'</h1>';
43 print '</div>';
44 } else {
45 print '<div class="alert alert-warning">'._("This special country profile shows all flights that do <u>not</u> have a country of a airline or departure/arrival airport associated with them.").'</div>';
48 include('country-sub-menu.php');
49 print '<div class="column">';
50 print '<h2>'._("Most Common Arrival Airports").'</h2>';
51 print '<p>'.sprintf(_("The statistic below shows all arrival airports of flights of airports &amp; airlines from <strong>%s</strong>."),$country).'</p>';
52 $airport_airport_array = $Spotter->countAllArrivalAirportsByCountry($country);
53 print '<script type="text/javascript" src="'.$globalURL.'/js/d3.min.js"></script>';
54 print '<script type="text/javascript" src="'.$globalURL.'/js/topojson.v2.min.js"></script>';
55 print '<script type="text/javascript" src="'.$globalURL.'/js/datamaps.world.min.js"></script>';
56 print '<div id="chartAirport" class="chart" width="100%"></div>';
57 print '<script>';
58 print 'var series = [';
59 $airport_data = '';
60 foreach($airport_airport_array as $airport_item)
62 $airport_data .= '[ "'.$airport_item['airport_arrival_icao_count'].'", "'.$airport_item['airport_arrival_name'].' ('.$airport_item['airport_arrival_icao'].')",'.$airport_item['airport_arrival_latitude'].','.$airport_item['airport_arrival_longitude'].'],';
64 $airport_data = substr($airport_data, 0, -1);
65 print $airport_data;
66 print '];'."\n";
67 print 'var onlyValues = series.map(function(obj){ return obj[0]; });var minValue = Math.min.apply(null, onlyValues), maxValue = Math.max.apply(null, onlyValues);'."\n";
68 print 'var paletteScale = d3.scale.log().domain([minValue,maxValue]).range(["#EFEFFF","#001830"]);'."\n";
69 print 'var radiusScale = d3.scale.log().domain([minValue,maxValue]).range([0,10]);'."\n";
70 print 'var dataset = [];'."\n";
71 print 'var colorset = [];'."\n";
72 print 'colorset["defaultFill"] = "#F5F5F5";';
73 print 'series.forEach(function(item){'."\n";
74 print 'var cnt = item[0], nm = item[1], lat = item[2], long = item[3];'."\n";
75 print 'colorset[nm] = paletteScale(cnt);';
76 print 'dataset.push({ count: cnt, name: nm, radius: Math.floor(radiusScale(cnt)), latitude: lat, longitude: long, fillKey: nm });'."\n";
77 print '});'."\n";
78 print 'var bbl = new Datamap({
79 element: document.getElementById("chartAirport"),
80 projection: "mercator", // big world map
81 fills: colorset,
82 responsive: true,
83 geographyConfig: {
84 borderColor: "#DEDEDE",
85 highlightBorderWidth: 2,
86 highlightFillColor: function(geo) {
87 return geo["fillColor"] || "#F5F5F5";
89 highlightBorderColor: "#B7B7B7"},
90 done: function(datamap) {
91 datamap.svg.call(d3.behavior.zoom().on("zoom", redraw));
92 function redraw() {
93 datamap.svg.selectAll("g").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
96 });
97 bbl.bubbles(dataset,{
98 popupTemplate: function(geo, data) {
99 if (!data) { return ; }
100 return ['."'".'<div class="hoverinfo">'."','<strong>', data.name, '</strong>','<br>Count: <strong>', data.count, '</strong>','</div>'].join('');
102 });";
103 print '</script>';
104 print '<div class="table-responsive">';
105 print '<table class="common-airport table-striped">';
106 print '<thead>';
107 print '<th></th>';
108 print '<th>'._("Airport").'</th>';
109 print '<th>'._("Country").'</th>';
110 print '<th>'._("# of times").'</th>';
111 print '</thead>';
112 print '<tbody>';
113 $i = 1;
114 foreach($airport_airport_array as $airport_item)
116 print '<tr>';
117 print '<td><strong>'.$i.'</strong></td>';
118 print '<td>';
119 print '<a href="'.$globalURL.'/airport/'.$airport_item['airport_arrival_icao'].'">'.$airport_item['airport_arrival_name'].', '.$airport_item['airport_arrival_country'].' ('.$airport_item['airport_arrival_icao'].')</a>';
120 print '</td>';
121 print '<td>';
122 print '<a href="'.$globalURL.'/country/'.strtolower(str_replace(" ", "-", $airport_item['airport_arrival_country'])).'">'.$airport_item['airport_arrival_country'].'</a>';
123 print '</td>';
124 print '<td>';
125 print $airport_item['airport_arrival_icao_count'];
126 print '</td>';
127 print '</tr>';
128 $i++;
130 print '<tbody>';
131 print '</table>';
132 print '</div>';
133 print '</div>';
134 } else {
135 $title = _("Country");
136 require_once('header.php');
137 print '<h1>'._("Error").'</h1>';
138 print '<p>'._("Sorry, the country does not exist in this database. :(").'</p>';
141 require_once('footer.php');