english English

Weather API

Tegenwoordig vind je op iedere website wel de weersverwachtingen terug van een land of plaats zoals bijvoorbeeld op Take a Trip en Het Laatste Nieuws. Er zijn verschillende soorten API's terug te vinden op het internet. De meeste hiervan maken gebruik van weerdata die men bekomt via The Weather Channel, (TWC). Ik ga in deze blogpost dus ook verder in op de API van TWC.

Weather API
 

API key aanvragen

Om gebruik te kunnen maken van de API van TWC moet er zoals voor de meeste API's een API key aangevraagd worden. Dit kan voor TWC gebeuren op https://registration.weather.com/ursa/xmloap/step1. Hier even alle noodzakelijke gegevens invullen en even wat advertenties invullen of je kunt je pagina gewoon sluiten. Normaliter ontvang je dadelijk na registratie een mail met je Partner ID & License Key. Deze zijn noodzakelijk om de API te kunnen gebruiken.

Een API request maken

Een API request URL zal er als volgt uit zien, http://xoap.weather.com/weather/local/[CityID]?cc=[CC]&dayf=[DayCount]&link=xoap∏=xoap&par=[PartnerID]&key=[LicenseKey]&unit=[Unit] waarbij volgende parameters variabel kunnen zijn:

Parameter Omschrijving
CityId Hier kun je een Amerikaanse postcode of een TWC CityId opgeven. Je kunt deze TWC CityId's terugvinden via http://www.weather.com/common/drilldown/world.html
CC [1] Deze parameter wordt gebruikt om de huidige weersvoorspellingen op te halen. Hiervoor dien je een waarde (bv. 1) mee te geven. Wil je de huidige voorspelling niet, kun je deze parameter zonder problemen weglaten.
DayCount [2] Er kunnen voorspellingen opgehaald worden voor de huidige en 4 volgende dagen, wil je geen voorspellingen, dan voeg je deze parameter simpelweg niet toe.
PartnerID Deze ID heb je gekregen na registratie en is noodzakelijk om gebruik te kunnen maken van de API.
LicenseKey Net zoals de PartnerID is ook de LicensKey nodig om een request te doen, ook deze vind je terug in de bevestigingsmail die je ontvangen.
Unit Standaard staat deze op het imperiaal stelsel, maar kun je aanpassen naar het metrische door hier een m aan mee te geven

[1][2] Wanneer beiden parameters niet meegegeven worden krijg je enkel de coördinaten en lokale tijd van de lokatie.

Wanneer je een request uitvoert krijg je een XML antwoord terug van TWC. Met een XML-parser kun je dan de gewenste data uitlezen en tonen op je website.

Voorbeeld API key aanvragen

Stel dat je de huidige weersomstandigheden van Kleine Brogel wilt weten . Dan ziet de request URL als volgt uit : http://xoap.weather.com/weather/local/BEXX0028?cc=1&link=xoap∏=xoap&par=[PartnerID]&key=[LicenseKey]&unit=m
BEXX0028 is dus bijgevolg de TWC CityID voor Kleine Brogel.

Wanneer we deze request uitvoeren krijgen we onderstaande als antwoord terug van TWC

			
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- This document is intended only for use by authorized licensees of The  -->
<!-- Weather Channel. Unauthorized use is prohibited.  Copyright 1995-2009, -->
<!-- The Weather Channel Interactive, Inc.  All Rights Reserved.            -->
<weather ver="2.0">
	<head>
		<locale>en_US</locale>
		<form>MEDIUM</form>
		<ut>C</ut>
		<ud>km</ud>
		<us>km/h</us>
		<up>mb</up>
		<ur>mm</ur>
	</head>
	<loc id="BEXX0028">
		<dnam>Kleine Brogel, Belgium</dnam>
		<tm>4:34 PM</tm>
		<lat>51.17</lat>
		<lon>5.45</lon>
		<sunr>7:57 AM</sunr>
		<suns>6:52 PM</suns>
		<zone>2</zone>
	</loc>	
	<cc>
		<lsup>10/19/09 2:55 PM Local Time</lsup>
		<obst>Kleine Brogel, BELGIUM</obst>
		<tmp>13</tmp>
		<flik>13</flik>
		<t>Mostly Cloudy</t>
		<icon>28</icon>
		<bar>
			<r>1016.9</r>
			<d>falling</d>
		</bar>
		<wind>
			<s>11</s>
			<gust>N/A</gust>
			<d>190</d>
			<t>S</t>
		</wind>
		<hmid>47</hmid>
		<vis>10.0</vis>
		<uv>
			<i>1</i>
			<t>Low</t>
		</uv>
		<dewp>2</dewp>
		<moon>
			<icon>1</icon>
			<t>Waxing Crescent</t>
		</moon>
	</cc>
</weather>
MEDIUM

C km km/h mb mm Kleine Brogel, Belgium 4:34 PM 51.17 5.45 7:57 AM 6:52 PM 2 10/19/09 2:55 PM Local Time Kleine Brogel, BELGIUM 13 13 Mostly Cloudy 28 1016.9 falling 11 N/A 190 S 47 10.0 1 Low 2 1 Waxing Crescent

Hieronder kun je kort alle noodzakelijke elementen met hun omschrijving terugvinden

 

Element Omschrijving
loc
dname naam van plaats
tm lokale tijd
lat breedtegraad locatie
lon lengtegraad locatie
sunr lokale zonsopgang
suns lokale zonsondergang
zone lokale tijdszone
cc
lsup laatste update van het weerstation
obst locatie weerstation
tmp huidige temperatuur in °C
flik huidige gevoelstemperatuur in °C
t tekstuele verwachting (Overwegend bewolkt)
icon icoontje dat je kunt tonen op website bv.
bar de luchtdruk uitgedrukt in millibar (r) en de tekstuele omschrijving (d)
wind windsnelheid (s); windrichting in °C (d); windrichting (t)
hmid vochtigheidsgraad
vis de zichtbaarheid in km
uv uv-index (i) en uv-graad (t)
dewp het dauwpunt in °C
moon maan icoon (icon) en omschrijving (t)

 

Alle info omtrent TWC en de Weather XML Data Feed kun je terugvinden op weather.com

RSS reacties feed

11 reacties tot nu toe

Steensels Peter

Steensels Peter zei 2 jaar geleden:

Zeer interessante post, ik ben net in de 'weer' met een project waar ik dit moet integreren dus ik zal volgende week deze blogpost nog eens grondig doornemen en direct in de praktijk toepassen!
Serge Peeters

Serge Peeters zei 2 jaar geleden:

Ik heb me in het verleden hier al eens in verdiept maar deze blogpost vat alles nog eens goed samen, handig en vooral zeer overzichtelijk. Het zou misschien nuttig zijn dat je de class die je hiervoor geschreven hebt om de weather.com API aan te spreken aan deze blogpost toevoegd, dat zou pas handig zijn. Mogen we dit nog verwachten of blijft het hier bij?
Dieter

Dieter zei 2 jaar geleden:

@Serge Peeters door de massale vraag achter de class zal er morgen hieromtrent een blogpost verschijnen
Serge Peeters

Serge Peeters zei 2 jaar geleden:

@DieterVerjans Dat zou geweldig zijn, ik kijk er alvast al naar uit, benieuwd naar de volgende blogpost over dit onderwerp.
Zomerbrochure

Zomerbrochure zei 2 jaar geleden:

Misschien nog wat voorbeelden doorgeven van zo'n XML Parser? Voor leken is dat ook echt een ...
Dieter

Dieter zei 2 jaar geleden:

@Zomerbrochure vandaag werd er nieuwe blogpost geplaatst waarin ik dieper in ga op de PHP class die we gebruiken om te communiceren met de weather.com API, meer info op http://www.inventis.be/blog/weathercom-api-php-class
DriesM

DriesM zei 2 jaar geleden:

zeer nuttig artikel. Wat ik echter niet kon vinden is de mogelijkheid om een culture mee te geven?
vb: nl-BE of iets dergelijks, nu staat alles standaard in het engels.
Dieter

Dieter zei 2 jaar geleden:

@DriesM dit is inderdaad niet mogelijk. Het is echter wel zo dat er slechts een 50tal teksten zijn die teruggegeven worden. Je zou deze dus simpel zelf even kunnen vertalen.
DriesM

DriesM zei 2 jaar geleden:

@Dieter, ja ik ging ervan uit dat dit het geval ging zijn, maar ik vond echter nergens een lijstje/opsomming van de mogelijke xml responses/teksten die teruggegeven kunnen worden. En wachten tot we alle weertypes gepasseerd zijn zag ik echter ook niet zitten ;) vooral in belgië, nog al ééntoning de laatste tijd.
Dieter

Dieter zei 2 jaar geleden:

@DriesM, je kunt de lijst met de verschillende conditions codes terug vinden op http://developer.yahoo.com/weather/ (deze maakt gebruikt van de API van weather.com)
DriesM

DriesM zei 2 jaar geleden:

@Dieter,
tnx, dit helpt een mens wel vooruit.

Reageer op dit artikel

Toegelaten tags: <a href="" title=""> <code> <em> <strong>

RSS Feed

Bekijk alle tags

Laatste reacties

  • Tom Claus: @Filip Bedankt voor de tip, CouchDB gaan we zeker even mee bekijken. @Fabio Deze...
  • Fabio Maggio: Is die presentatie van Masterizing PHP Data Structure ook nog ergens te bekijken?
  • Tom Hermans: Thx Tom, schone samenvatting en een massa interessante links, ideaal voor mensen die die dag...
  • Filip Stas: Als MongoDb je al boeit zeker ook eens kijken naar couchbase ook zeker de moeite!
  • Dragolin: Wij proberen in 2012 alvast sportief Vlaanderen warm te maken voor sportieve experiences :)