2 require_once('require/class.Connection.php');
3 require_once('require/class.Spotter.php');
4 require_once('require/class.Stats.php');
5 require_once('require/class.Language.php');
6 if (!isset($_GET['airport'])) {
7 header('Location: '.$globalURL.'/airport');
10 $airport = filter_input(INPUT_GET
,'airport',FILTER_SANITIZE_STRING
);
11 $Spotter = new Spotter();
12 $airport_array = $Spotter->getAllAirportInfo($airport);
14 if (!empty($airport_array))
16 //$spotter_array = $Spotter->getSpotterDataByAirport($airport,"0,1","");
17 $title = sprintf(_("Most Common Arrival Airports by Country from %s, %s (%s)"),$airport_array[0]['city'],$airport_array[0]['name'],$airport_array[0]['icao']);
18 require_once('header.php');
19 print '<div class="select-item">';
20 print '<form action="'.$globalURL.'/airport" method="post">';
21 print '<select name="airport" class="selectpicker" data-live-search="true">';
22 print '<option></option>';
24 $airport_names = $Stats->getAllAirportNames();
25 if (empty($airport_names)) $airport_names = $Spotter->getAllAirportNames();
26 ksort($airport_names);
27 foreach($airport_names as $airport_name)
29 if($airport == $airport_name['airport_icao'])
31 print '<option value="'.$airport_name['airport_icao'].'" selected="selected">'.$airport_name['airport_city'].', '.$airport_name['airport_name'].', '.$airport_name['airport_country'].' ('.$airport_name['airport_icao'].')</option>';
33 print '<option value="'.$airport_name['airport_icao'].'">'.$airport_name['airport_city'].', '.$airport_name['airport_name'].', '.$airport_name['airport_country'].' ('.$airport_name['airport_icao'].')</option>';
37 print '<button type="submit"><i class="fa fa-angle-double-right"></i></button>';
44 print '<div class="info column">';
45 print '<h1>'.$airport_array[0]['city'].', '.$airport_array[0]['name'].' ('.$airport_array[0]['icao'].')</h1>';
46 print '<div><span class="label">'._("Name").'</span>'.$airport_array[0]['name'].'</div>';
47 print '<div><span class="label">'._("City").'</span>'.$airport_array[0]['city'].'</div>';
48 print '<div><span class="label">'._("Country").'</span>'.$airport_array[0]['country'].'</div>';
49 print '<div><span class="label">'._("ICAO").'</span>'.$airport_array[0]['icao'].'</div>';
50 print '<div><span class="label">'._("IATA").'</span>'.$airport_array[0]['iata'].'</div>';
51 print '<div><span class="label">'._("Altitude").'</span>'.$airport_array[0]['altitude'].'</div>';
52 print '<div><span class="label">'._("Coordinates").'</span><a href="http://maps.google.ca/maps?z=10&t=k&q='.$airport_array[0]['latitude'].','.$airport_array[0]['longitude'].'" target="_blank">Google Map<i class="fa fa-angle-double-right"></i></a></div>';
55 print '<div class="alert alert-warning">'._("This special airport profile shows all flights that do <u>not</u> have a departure and/or arrival airport associated with them.").'</div>';
58 include('airport-sub-menu.php');
59 print '<div class="column">';
60 print '<h2>'._("Most Common Arrival Airports by Country").'</h2>';
61 print '<p>'.sprintf(_("The statistic below shows all arrival airports by Country of origin of flights from <strong>%s, %s (%s)</strong>."),$airport_array[0]['city'],$airport_array[0]['name'],$airport_array[0]['icao']).'</p>';
62 $airport_country_array = $Spotter->countAllArrivalAirportCountriesByAirport($airport);
63 print '<script type="text/javascript" src="'.$globalURL.'/js/d3.min.js"></script>';
64 print '<script type="text/javascript" src="'.$globalURL.'/js/topojson.v2.min.js"></script>';
65 print '<script type="text/javascript" src="'.$globalURL.'/js/datamaps.world.min.js"></script>';
66 print '<div id="chartCountry" class="chart" width="100%"></div><script>';
67 print 'var series = [';
69 foreach($airport_country_array as $airport_item)
71 $country_data .= '[ "'.$airport_item['arrival_airport_country_iso3'].'",'.$airport_item['airport_arrival_country_count'].'],';
73 $country_data = substr($country_data, 0, -1);
76 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);';
77 print 'var paletteScale = d3.scale.log().domain([minValue,maxValue]).range(["#EFEFFF","#001830"]);';
78 print 'series.forEach(function(item){var iso = item[0], value = item[1]; dataset[iso] = { numberOfThings: value, fillColor: paletteScale(value) };});';
80 element: document.getElementById("chartCountry"),
81 projection: "mercator", // big world map
82 fills: { defaultFill: "#F5F5F5" },
86 borderColor: "#DEDEDE",
87 highlightBorderWidth: 2,
88 highlightFillColor: function(geo) {
89 return geo["fillColor"] || "#F5F5F5";
91 highlightBorderColor: "#B7B7B7",
92 done: function(datamap) {
93 datamap.svg.call(d3.behavior.zoom().on("zoom", redraw));
95 datamap.svg.selectAll("g").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
98 popupTemplate: function(geo, data) {
99 if (!data) { return ; }
100 return ['."'".'<div class="hoverinfo">'."','<strong>', geo.properties.name, '</strong>','<br>Count: <strong>', data.numberOfThings, '</strong>','</div>'].join('');
106 if (!empty($airport_country_array))
108 print '<div class="table-responsive">';
109 print '<table class="common-country table-striped">';
112 print '<th>'._("Country").'</th>';
113 print '<th>'._("# of times").'</th>';
117 foreach($airport_country_array as $airport_item)
120 print '<td><strong>'.$i.'</strong></td>';
122 print '<a href="'.$globalURL.'/country/'.strtolower(str_replace(" ", "-", $airport_item['arrival_airport_country'])).'">'.$airport_item['arrival_airport_country'].'</a>';
125 print $airport_item['airport_arrival_country_count'];
136 $title = _("Airport");
137 require_once('header.php');
138 print '<h1>'._("Error").'</h1>';
139 print '<p>'._("Sorry, the airport does not exist in this database. :(").'</p>';
142 require_once('footer.php');