Merge pull request #456 from Struart88/patch-2
[FlightAirMap.git] / statistics-airport-departure.php
blobffdb30f899d28b1542e1d469f269ee176f08fe11
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");
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);
15 require_once('header.php');
17 include('statistics-sub-menu.php');
18 print '<script type="text/javascript" src="'.$globalURL.'/js/d3.min.js"></script>';
19 print '<script type="text/javascript" src="'.$globalURL.'/js/topojson.v2.min.js"></script>';
20 print '<script type="text/javascript" src="'.$globalURL.'/js/datamaps.world.min.js"></script>';
21 print '<div class="info">
22 <h1>'._("Most common Departure Airport").'</h1>
23 </div>
24 <p>'._("Below are the <strong>Top 10</strong> most common departure airports.").'</p>';
26 $airport_airport_array = $Stats->countAllDepartureAirports(true,$airline_icao,$filter_name,$year,$month);
27 print '<div id="chartAirport" class="chart" width="100%"></div>';
28 print '<script>';
29 print 'var series = [';
30 $airport_data = '';
31 foreach($airport_airport_array as $airport_item)
33 $airport_data .= '[ "'.$airport_item['airport_departure_icao_count'].'", "'.$airport_item['airport_departure_icao'].'",'.$airport_item['airport_departure_latitude'].','.$airport_item['airport_departure_longitude'].'],';
35 $airport_data = substr($airport_data, 0, -1);
36 print $airport_data;
37 print '];'."\n";
38 print 'var onlyValues = series.map(function(obj){ return obj[0]; });var minValue = Math.min.apply(null, onlyValues), maxValue = Math.max.apply(null, onlyValues);'."\n";
39 print 'var paletteScale = d3.scale.log().domain([minValue,maxValue]).range(["#EFEFFF","#001830"]);'."\n";
40 print 'var radiusScale = d3.scale.log().domain([minValue,maxValue]).range([2,20]);'."\n";
41 print 'var dataset = [];'."\n";
42 print 'var colorset = [];'."\n";
43 print 'colorset["defaultFill"] = "#F5F5F5";';
44 print 'series.forEach(function(item){'."\n";
45 print 'var cnt = item[0], nm = item[1], lat = item[2], long = item[3];'."\n";
46 print 'colorset[nm] = paletteScale(cnt);';
47 print 'dataset.push({ count: cnt, name: nm, radius: Math.floor(radiusScale(cnt)), latitude: lat, longitude: long, fillKey: nm });'."\n";
48 print '});'."\n";
49 print 'var bbl = new Datamap({
50 element: document.getElementById("chartAirport"),
51 projection: "mercator", // big world map
52 fills: colorset,
53 responsive: true,
54 geographyConfig: {
55 borderColor: "#DEDEDE",
56 highlightBorderWidth: 2,
57 highlightFillColor: function(geo) {
58 return geo["fillColor"] || "#F5F5F5";
60 highlightBorderColor: "#B7B7B7"},
61 done: function(datamap) {
62 datamap.svg.call(d3.behavior.zoom().on("zoom", redraw));
63 function redraw() {
64 datamap.svg.selectAll("g").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
67 });
68 bbl.bubbles(dataset,{
69 popupTemplate: function(geo, data) {
70 if (!data) { return ; }
71 return ['."'".'<div class="hoverinfo">'."','<strong>', data.name, '</strong>','<br>Count: <strong>', data.count, '</strong>','</div>'].join('');
73 });";
74 print '</script>';
75 print '<div class="table-responsive">';
76 print '<table class="common-airport table-striped">';
77 print '<thead>';
78 print '<th></th>';
79 print '<th>'._("Airport").'</th>';
80 print '<th>'._("Country").'</th>';
81 print '<th>'._("# of times").'</th>';
82 print '</thead>';
83 print '<tbody>';
84 $i = 1;
85 foreach($airport_airport_array as $airport_item)
87 print '<tr>';
88 print '<td><strong>'.$i.'</strong></td>';
89 print '<td>';
90 print '<a href="'.$globalURL.'/airport/'.$airport_item['airport_departure_icao'].'">'.$airport_item['airport_departure_city'].', '.$airport_item['airport_departure_country'].' ('.$airport_item['airport_departure_icao'].')</a>';
91 print '</td>';
92 print '<td>';
93 print '<a href="'.$globalURL.'/country/'.strtolower(str_replace(" ", "-", $airport_item['airport_departure_country'])).'">'.$airport_item['airport_departure_country'].'</a>';
94 print '</td>';
95 print '<td>';
96 print $airport_item['airport_departure_icao_count'];
97 print '</td>';
98 print '</tr>';
99 $i++;
101 print '<tbody>';
102 print '</table>';
103 print '</div>';
105 require_once('footer.php');