Merge pull request #456 from Struart88/patch-2
[FlightAirMap.git] / weather-json.php
blobd7a46af7c7c9156280d0b55ae759b7c6594fdf73
1 <?php
2 require_once('require/class.Connection.php');
3 require_once('require/class.Spotter.php');
4 require_once('require/class.Weather.php');
5 require_once('require/class.METAR.php');
6 $Spotter = new Spotter();
7 if (isset($_GET['download']))
9 header('Content-disposition: attachment; filename="weather.json"');
11 header('Content-Type: text/javascript');
12 $latitude = filter_input(INPUT_GET,'latitude',FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);
13 $longitude = filter_input(INPUT_GET,'longitude',FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);
14 if ($latitude == '' || $longitude == '') return '';
15 //echo 'latitude : '.$latitude.' - longitude : '.$longitude."\n";
16 $airports = $Spotter->closestAirports($latitude,$longitude,300);
17 //print_r($airports);
18 $METAR = new METAR();
19 $Weather = new Weather();
20 $i = 0;
21 $ew = true;
22 $dtf = false;
23 if (empty($airports)) $ew = false;
24 while($ew) {
25 $met = $METAR->getMETAR($airports[$i]['icao']);
26 //print_r($met);
27 if (!empty($met)) {
28 $parsed = $METAR->parse($met[0]['metar']);
29 //print_r($parsed);
30 $rain = array();
31 if (isset($parsed['temperature'])) {
32 $rain = array_merge($rain,array('temp' => $parsed['temperature']));
34 if (isset($parsed['rh'])) {
35 $rain = array_merge($rain,array('rh' => $parsed['rh']));
37 if (isset($parsed['weather']) && $parsed['weather'] == 'CAVOK') {
38 echo json_encode(array('clouds' => array(),'rain' => array()));
39 $ew = false;
40 $dtf = true;
41 } elseif (isset($parsed['cloud'])) {
42 $result = $Weather->buildcloudlayer($parsed);
43 if (!empty($result)) {
44 //print_r($met);
45 //print_r($parsed);
46 echo json_encode(array('clouds' => $result,'rain' => $rain));
47 $ew = false;
48 $dtf = true;
52 $i++;
53 if ($i >= count($airports)) $ew = false;
55 if ($dtf === false) echo json_encode($Weather->openweathermap($latitude,$longitude));