Ich habe mich die letzten Tage mit der Forecast.io API beschäftigt, da wir vorhaben bei unseren Projekten das Wetter in der jeweiligen Stadt anzeigen zu lassen.
Die Abfrage der Orte zu verschiedenen Uhrzeiten über die API klappt wunderbar, Temperaturen variieren auch aber was ich merkwürdig finde, dass es egal an welchem Tag, Uhrzeit und egal welche Stadt es immer "Partly Cloudy" ist.
Vielleicht hat sich ja schon mal jemand mit deren API beschäftigt und hat einen Lösungsvorschlag.
Hier die Klasse:
Und die Abfrage läuft folgendermaßen:
Raus kommt folgendes:
Zur Not muss ich sonst auf openweather umsteigen.
Die Abfrage der Orte zu verschiedenen Uhrzeiten über die API klappt wunderbar, Temperaturen variieren auch aber was ich merkwürdig finde, dass es egal an welchem Tag, Uhrzeit und egal welche Stadt es immer "Partly Cloudy" ist.
Vielleicht hat sich ja schon mal jemand mit deren API beschäftigt und hat einen Lösungsvorschlag.
Hier die Klasse:
PHP-Code:
class Forecast
{
const API_ENDPOINT = 'https://api.forecast.io/forecast/';
private $api_key;
public function __construct($api_key)
{
$this->api_key = $api_key;
}
private function request($latitude, $longitude, $time = null, $options = array())
{
$request_url = self::API_ENDPOINT
. $this->api_key
. '/'
. $latitude
. ','
. $longitude
. ((is_null($time)) ? '' : ','. $time);
if (!empty($options)) {
$request_url .= '?'. http_build_query($options);
}
$response = json_decode(file_get_contents($request_url));
$response->headers = $http_response_header;
return $response;
}
public function get($latitude, $longitude, $time = null, $options = array())
{
return $this->request($latitude, $longitude, $time, $options);
}
}
PHP-Code:
$weather = new Forecast('APIkey');
$wetter = $weather->get('54.31562204885276','10.136518478393555','2015-06-05T18:00:00', array('units' => 'si'));
Code:
object(stdClass)#2 (9) { ["latitude"]=> float(54.315622048853) ["longitude"]=> float(10.136518478394) ["timezone"]=> string(13) "Europe/Berlin" ["offset"]=> int(2) ["currently"]=> object(stdClass)#3 (21) { ["time"]=> int(1433520000) ["summary"]=> string(13) "Partly Cloudy" ["icon"]=> string(17) "partly-cloudy-day" ["precipType"]=> string(4) "rain" ["temperature"]=> float(16.87) ["temperatureError"]=> float(2.94) ["apparentTemperature"]=> float(16.87) ["dewPoint"]=> float(8.92) . . .