Page 1 of 1

WeatherAPI

Posted: Tue Aug 25, 2015 7:25 pm
by MessyC
Se on vihdoin täällä, API jota kukaan ei tarvinnut!

WeatherAPI on cbNetworkilla toimiva kirjasto, joka noutaa säätietoja osoitteesta openweathermap.org.
En itsekään tiedä mitä tälläisellä kukaan täällä tekee, mutta onpahan nyt tämäkin olemassa. Voihan sillä laittaa vaikka peliin dynaamisen sään tms. :) Kaiken tämän mahdollistaa tietenkin Marcoderin cbNetwork!

API-kutsuja on tällä hetkellä vain kourallinen, mutta niillä saa paikkatiedon, sekä yksinkertaiset säätiedot. API-kutsuja tulee vielä lisää, mutta kommentoi ihmeessä ominaisuuksia joita haluaisit tai jotka selvästi puuttuvat. Olisi myös hienoa saada palautetta, sekä koodia, jossa API:a hyödynnetään! Käyttö on tietenkin vapaata, kunhan alkuperä on mainittu, etkä levitä API:a tai sen osia ominasi.

Liitteenä .zip-tiedosto, joka sisältää WeatherAPI:n, cbNetworkin, sekä alempana olevan esimerkkiohjelman.

Manuaali:
  • _WAPIGetContent( _query$ ) - noutaa säätiedot ja palauttaa virhekoodin, onnistuneella noudolla koodi on 200
  • _WAPIErrorCode() - palauttaa virhekoodin
  • _WAPIGetAreaName() - palauttaa merkkijonon, joka on sääalueen nimi
  • _WAPIGetMain() - palauttaa merkkijonon, joka on yleinen kuvaus säästä
  • _WAPIGetDesc() - palauttaa merkkijonon, joka on tarkempi kuvaus säästä
  • _WAPIGetTemp() - palauttaa desimaaliluvun, joka on sen hetkinen lämpötila
  • _WAPIParse( _tag$) - purkkainen parseri, joka etsii WAPIContent:ista halutun tägin ja palauttaa sen arvon merkkijonona
  • WAPIContent - globaali muuttuja, joka sisältää JSON-formaatissa olevan säätiedon

Esimerkkiohjelma:

Code: Select all

//sisällytetään API
Include "WeatherAPI.cb"

//haetaan säätietoja, tässä käytetään Tamperetta.
//haun voi tehdä millä vain merkkijonolla.
rtn = _WAPIGetContent( "Tampere" )  


//jos palautui virhekoodi 200, luetaan säätiedot
If rtn = 200 Then
	
	name$ = _WAPIGetAreaName()	//alueen nimi
	main$ = _WAPIGetMain()		//yleinen säätiedote
	desc$ = _WAPIGetDesc()		//tarkempi säätiedote
	temp$ = _WAPIGetTemp()		//lämpötila
	
EndIf

Repeat
	
	//näytetään säätietoja ruudulla
	Text 0, 0, name
	Text 0,15, main + " - " + desc
	Text 0,30, temp + Chr( 176 ) + "C"
	
DrawScreen
Forever
Oheinen ohjelma näyttää tältä:
Image

Re: WeatherAPI

Posted: Tue Aug 25, 2015 9:43 pm
by Wingman
Hyvän näköinen pikkusofta, säätiedot tosni löytyy nykyään ihan kaikkialta.. Toisaalta, tällä APIlla saa säätiedot kaiken muun lisäksi myös CB-ohjelmiin!

Koodausprojektina mikätahansa API on hyvä, sillä vaikka sille ei tulisi käyttöä, on sitä tehdessä varmasti oppinut paljon, jos ei muuta niin sen, miten esimerkiksi säätiedot tulee netistä ja miten ne parsitaan.

Re: WeatherAPI

Posted: Tue Aug 25, 2015 9:55 pm
by CCE
Hieno kirjasto. Olet saanut myös JSON:in jäsentelyn koodattua kunnioitettavan pieneen tilaan :D