Merge pull request #456 from Struart88/patch-2
[FlightAirMap.git] / date-statistics-arrival-airport-country.php
blob8b05351081c13060dd097cc3bc474574e35893d9
1 <?php
2 require_once('require/class.Connection.php');
3 require_once('require/class.Spotter.php');
4 require_once('require/class.Language.php');
5 $Spotter = new Spotter();
6 $sort = filter_input(INPUT_GET,'sort',FILTER_SANITIZE_STRING);
7 $date = filter_input(INPUT_GET,'date',FILTER_SANITIZE_STRING);
8 $spotter_array = $Spotter->getSpotterDataByDate($date,"0,1", $sort);
10 if (!empty($spotter_array))
12 $title = sprintf(_("Most Common Arrival Airports by Country on %s"),date("l F j, Y", strtotime($spotter_array[0]['date_iso_8601'])));
13 require_once('header.php');
14 print '<div class="select-item">';
15 print '<form action="'.$globalURL.'/date" method="post" class="form-inline">';
16 print '<div class="form-group">';
17 print '<label for="datepickeri">'._("Select a Date").'</label>';
18 print '<div class="input-group date" id="datepicker">';
19 print '<input type="text" class="form-control" id="datepickeri" name="date" value="" />';
20 print '<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>';
21 print '</div>';
22 print '<button type="submit"><i class="fa fa-angle-double-right"></i></button>';
23 print '</div>';
24 print '</form>';
25 print '</div>';
26 print '<script type="text/javascript">$(function () { $("#datepicker").datetimepicker({ format: "YYYY-MM-DD", defaultDate: "'.$date.'" }); }); </script>';
27 print '<br />';
28 print '<div class="info column">';
29 print '<h1>'.sprintf(_("Flights from %s"),date("l F j, Y", strtotime($spotter_array[0]['date_iso_8601']))).'</h1>';
30 print '</div>';
32 include('date-sub-menu.php');
33 print '<div class="column">';
34 print '<h2>'._("Most Common Arrival Airports by Country").'</h2>';
35 print '<p>'.sprintf(_("The statistic below shows all arrival airports by Country of origin of flights on <strong>%s</strong>."),date("l F j, Y", strtotime($spotter_array[0]['date_iso_8601']))).'</p>';
37 $airport_country_array = $Spotter->countAllArrivalAirportCountriesByDate($date);
38 print '<script type="text/javascript" src="'.$globalURL.'/js/d3.min.js"></script>';
39 print '<script type="text/javascript" src="'.$globalURL.'/js/topojson.v2.min.js"></script>';
40 print '<script type="text/javascript" src="'.$globalURL.'/js/datamaps.world.min.js"></script>';
41 print '<div id="chartCountry" class="chart" width="100%"></div><script>';
42 print 'var series = [';
43 $country_data = '';
44 foreach($airport_country_array as $airport_item)
46 $country_data .= '[ "'.$airport_item['arrival_airport_country_iso3'].'",'.$airport_item['airport_arrival_country_count'].'],';
48 $country_data = substr($country_data, 0, -1);
49 print $country_data;
50 print '];';
51 print 'var dataset = {};var onlyValues = series.map(function(obj){ return obj[1]; });var minValue = Math.min.apply(null, onlyValues), maxValue = Math.max.apply(null, onlyValues);';
52 print 'var paletteScale = d3.scale.log().domain([minValue,maxValue]).range(["#EFEFFF","#001830"]);';
53 print 'series.forEach(function(item){var iso = item[0], value = item[1]; dataset[iso] = { numberOfThings: value, fillColor: paletteScale(value) };});';
54 print 'new Datamap({
55 element: document.getElementById("chartCountry"),
56 projection: "mercator", // big world map
57 fills: { defaultFill: "#F5F5F5" },
58 data: dataset,
59 responsive: true,
60 geographyConfig: {
61 borderColor: "#DEDEDE",
62 highlightBorderWidth: 2,
63 highlightFillColor: function(geo) {
64 return geo["fillColor"] || "#F5F5F5";
66 highlightBorderColor: "#B7B7B7",
67 done: function(datamap) {
68 datamap.svg.call(d3.behavior.zoom().on("zoom", redraw));
69 function redraw() {
70 datamap.svg.selectAll("g").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
73 popupTemplate: function(geo, data) {
74 if (!data) { return ; }
75 return ['."'".'<div class="hoverinfo">'."','<strong>', geo.properties.name, '</strong>','<br>Count: <strong>', data.numberOfThings, '</strong>','</div>'].join('');
78 });";
79 print '</script>';
81 if (!empty($airport_country_array))
83 print '<div class="table-responsive">';
84 print '<table class="common-country table-striped">';
85 print '<thead>';
86 print '<th></th>';
87 print '<th>'._("Country").'</th>';
88 print '<th>'._("# of times").'</th>';
89 print '</thead>';
90 print '<tbody>';
91 $i = 1;
92 foreach($airport_country_array as $airport_item)
94 print '<tr>';
95 print '<td><strong>'.$i.'</strong></td>';
96 print '<td>';
97 print '<a href="'.$globalURL.'/country/'.strtolower(str_replace(" ", "-", $airport_item['arrival_airport_country'])).'">'.$airport_item['arrival_airport_country'].'</a>';
98 print '</td>';
99 print '<td>';
100 print $airport_item['airport_arrival_country_count'];
101 print '</td>';
102 print '</tr>';
103 $i++;
105 print '<tbody>';
106 print '</table>';
107 print '</div>';
109 print '</div>';
110 } else {
111 $title = _("Unknown Date");
112 require_once('header.php');
113 print '<h1>'._("Error").'</h1>';
114 print '<p>'._("Sorry, this date does not exist in this database. :(").'</p>';
117 require_once('footer.php');