Merge pull request #456 from Struart88/patch-2
[FlightAirMap.git] / statistics-airline-country.php
blob34fd848b17e26f03239ae195bc964a067676bb27
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 Airline by Country");
7 if (!isset($filter_name)) $filter_name = '';
8 require_once('header.php');
9 $year = filter_input(INPUT_GET,'year',FILTER_SANITIZE_NUMBER_INT);
10 $month = filter_input(INPUT_GET,'month',FILTER_SANITIZE_NUMBER_INT);
11 include('statistics-sub-menu.php');
13 print '<script type="text/javascript" src="'.$globalURL.'/js/d3.min.js"></script>';
14 print '<script type="text/javascript" src="'.$globalURL.'/js/topojson.v2.min.js"></script>';
15 print '<script type="text/javascript" src="'.$globalURL.'/js/datamaps.world.min.js"></script>';
16 print '<div class="info">
17 <h1>'._("Most common Airline by Country").'</h1>
18 </div>
19 <p>'._("Below are the <strong>Top 10</strong> countries that an airline belongs to.").'</p>';
21 $airline_array = $Stats->countAllAirlineCountries(true,$filter_name,$year,$month);
22 if (count($airline_array) > 0) {
23 print '<div id="chartCountry" class="chart" width="100%"></div><script>';
24 $country_data = '';
25 foreach($airline_array as $airline_item)
27 $country_data .= '[ "'.$airline_item['airline_country_iso3'].'",'.$airline_item['airline_country_count'].'],';
29 $country_data = substr($country_data, 0, -1);
30 print 'var series = ['.$country_data.'];';
31 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);';
32 print 'var paletteScale = d3.scale.log().domain([minValue,maxValue]).range(["#EFEFFF","#001830"]);';
33 print 'series.forEach(function(item){var iso = item[0], value = item[1]; dataset[iso] = { numberOfThings: value, fillColor: paletteScale(value) };});';
34 print 'new Datamap({
35 element: document.getElementById("chartCountry"),
36 projection: "mercator", // big world map
37 fills: { defaultFill: "#F5F5F5" },
38 data: dataset,
39 responsive: true,
40 geographyConfig: {
41 borderColor: "#DEDEDE",
42 highlightBorderWidth: 2,
43 highlightFillColor: function(geo) {
44 return geo["fillColor"] || "#F5F5F5";
46 highlightBorderColor: "#B7B7B7",
47 done: function(datamap) {
48 datamap.svg.call(d3.behavior.zoom().on("zoom", redraw));
49 function redraw() {
50 datamap.svg.selectAll("g").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
53 popupTemplate: function(geo, data) {
54 if (!data) { return ; }
55 return ['."'".'<div class="hoverinfo">'."','<strong>', geo.properties.name, '</strong>','<br>Count: <strong>', data.numberOfThings, '</strong>','</div>'].join('');
58 });";
59 print '</script>';
61 if (!empty($airline_array))
63 print '<div class="table-responsive">';
64 print '<table class="common-country table-striped">';
65 print '<thead>';
66 print '<th></th>';
67 print '<th>'._("Country").'</th>';
68 print '<th>'._("# of times").'</th>';
69 print '</thead>';
70 print '<tbody>';
71 $i = 1;
72 foreach($airline_array as $airline_item)
74 print '<tr>';
75 print '<td><strong>'.$i.'</strong></td>';
76 print '<td>';
77 print '<a href="'.$globalURL.'/country/'.strtolower(str_replace(" ", "-", $airline_item['airline_country'])).'">'.$airline_item['airline_country'].'</a>';
78 print '</td>';
79 print '<td>'.$airline_item['airline_country_count'].'</td>';
80 print '</tr>';
81 $i++;
83 print '<tbody>';
84 print '</table>';
85 print '</div>';
88 require_once('footer.php');