Merge pull request #456 from Struart88/patch-2
[FlightAirMap.git] / statistics-airport-departure-country.php
blob13986a9ff5884a889cf5b27b9a0732115c2e9d6b
1 <?php
2 require_once('require/class.Connection.php');
3 require_once('require/class.Stats.php');
4 require_once('require/class.Language.php');
5 $Stats = new Stats();
6 $title = _("Statistics").' - '._("Most common Departure Airport by Country");
8 if (!isset($filter_name)) $filter_name = '';
9 $airline_icao = (string)filter_input(INPUT_GET,'airline',FILTER_SANITIZE_STRING);
10 if ($airline_icao == '' && isset($globalFilter)) {
11 if (isset($globalFilter['airline'])) $airline_icao = $globalFilter['airline'][0];
13 $year = filter_input(INPUT_GET,'year',FILTER_SANITIZE_NUMBER_INT);
14 $month = filter_input(INPUT_GET,'month',FILTER_SANITIZE_NUMBER_INT);
16 require_once('header.php');
17 include('statistics-sub-menu.php');
19 print '<script type="text/javascript" src="'.$globalURL.'/js/d3.min.js"></script>';
20 print '<script type="text/javascript" src="'.$globalURL.'/js/topojson.v2.min.js"></script>';
21 print '<script type="text/javascript" src="'.$globalURL.'/js/datamaps.world.min.js"></script>';
22 print '<div class="info">
23 <h1>'._("Most common Departure Airport by Country").'</h1>
24 </div>
25 <p>'._("Below are the <strong>Top 10</strong> most common countries of all the departure airports.").'</p>';
26 print '<div id="chartCountry" class="chart" width="100%"></div>';
28 $airport_country_array = $Stats->countAllDepartureCountries(true,$airline_icao,$filter_name,$year,$month);
29 print '<script>';
30 print 'var series = [';
31 $country_data = '';
32 foreach($airport_country_array as $airport_item)
34 $country_data .= '[ "'.$airport_item['airport_departure_country_iso3'].'",'.$airport_item['airport_departure_country_count'].'],';
36 $country_data = substr($country_data, 0, -1);
37 print $country_data;
38 print '];';
39 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);';
40 print 'var paletteScale = d3.scale.log().domain([minValue,maxValue]).range(["#EFEFFF","#001830"]);';
41 print 'series.forEach(function(item){var iso = item[0], value = item[1]; dataset[iso] = { numberOfThings: value, fillColor: paletteScale(value) };});';
42 print 'new Datamap({
43 element: document.getElementById("chartCountry"),
44 projection: "mercator", // big world map
45 fills: { defaultFill: "#F5F5F5" },
46 data: dataset,
47 responsive: true,
48 geographyConfig: {
49 borderColor: "#DEDEDE",
50 highlightBorderWidth: 2,
51 highlightFillColor: function(geo) {
52 return geo["fillColor"] || "#F5F5F5";
54 highlightBorderColor: "#B7B7B7",
55 done: function(datamap) {
56 datamap.svg.call(d3.behavior.zoom().on("zoom", redraw));
57 function redraw() {
58 datamap.svg.selectAll("g").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
61 popupTemplate: function(geo, data) {
62 if (!data) { return ; }
63 return ['."'".'<div class="hoverinfo">'."','<strong>', geo.properties.name, '</strong>','<br>Count: <strong>', data.numberOfThings, '</strong>','</div>'].join('');
66 });";
67 print '</script>';
68 print '<div class="table-responsive">';
69 print '<table class="common-country table-striped">';
70 print '<thead>';
71 print '<th></th>';
72 print '<th>'._("Country").'</th>';
73 print '<th>'._("# of times").'</th>';
74 print '</thead>';
75 print '<tbody>';
76 $i = 1;
77 foreach($airport_country_array as $airport_item)
79 print '<tr>';
80 print '<td><strong>'.$i.'</strong></td>';
81 print '<td>';
82 print '<a href="'.$globalURL.'/country/'.strtolower(str_replace(" ", "-", $airport_item['airport_departure_country'])).'">'.$airport_item['airport_departure_country'].'</a>';
83 print '</td>';
84 print '<td>';
85 print $airport_item['airport_departure_country_count'];
86 print '</td>';
87 print '</tr>';
88 $i++;
90 print '<tbody>';
91 print '</table>';
92 print '</div>';
94 require_once('footer.php');