Kako bismo poboljšali integraciju naših AQI widgeta unutar vanjskih web stranica, razvili smo novi widget API feed. U usporedbi s postojećim widget feedom, ovaj novi API feed pruža mnogo veću fleksibilnost za integraciju, ali i mnogo više opcija za prilagodbu izgleda widgeta.
Možete, na primjer, prikazati sićušni widget jednostavno kao
(pomaknite miš preko AQI broja kako biste vidjeli detalje) ili veći widget s detaljima o zagađivačima u posljednja 24 sata, kao što je prikazano desno.Novi okvir također podržava izradu predložaka, više jezika (engleski, pojednostavljeni i tradicionalni kineski, španjolski, ...) kao i mogućnost programske integracije s povratnim pozivima javascripta temeljenim na podacima.
A. Osnovna postavka
Osnovna integracija je jednostavna i izravna. Najprije trebate dodati sljedeći dio koda:
<script type="text/javascript" charset="utf-8"> (function (w, d, t, f) { w[f] = w[f] || function (c, k, n) { s = w[f], k = s['k'] = (s['k'] || (k ? ('&k=' + k) : '')); s['c'] = c = (c instanceof Array) ? c : [c]; s['n'] = n = n || 0; L = d.createElement(t), e = d.getElementsByTagName(t)[0]; L.async = 1; L.src = '//feed.aqicn.org/feed/' + (c[n].city) + '/' + (c[n].lang || '') + '/feed.v1.js?n=' + n + k; e.parentNode.insertBefore(L, e); }; })(window, document, 'script', '_aqiFeed'); </script>
Zatim samo dodajte ovaj drugi kod da uključite widget:
<span id="city-aqi-container"></span> <script type="text/javascript" charset="utf-8"> _aqiFeed({ container: "city-aqi-container", city: "beijing" }); </script>
Funkcija `_aqiFeed` uzima kao argument konfiguracijski blok za widget. Parametar `container: "city-aqi-container"` odnosi se na id oznake u koju želite umetnuti widget (npr. `<span id='city-aqi-container'></span>`), a parametar city
ime grada za koji želite prikazati trenutno očitanje kvalitete zraka (npr. `grad: "london"`).
B. Određivanje jezika
Također možete odrediti jezik koji će se koristiti postavljanjem opcije lang
. Na primjer, da uključite widget na kineskom (kao što je prikazano desno), upotrijebite sljedeći kod:
_aqiFeed({ container:"city-aqi-container", city:"beijing", lang:"cn" });
Trenutno podržani jezici su:
"en"
: English"cn"
: Chinese"jp"
: Japanese"es"
: Spanish"kr"
: Korean"ru"
: Russian"hk"
: Traditional Chinese"fr"
: French"pl"
: Polish"de"
: German"pt"
: Portuguese"vn"
: Vietnamese"it"
: Italian"id"
: Indonesian"nl"
: Dutch"fa"
: Persian"th"
: Thai"hu"
: Hungarian"el"
: Greek"ro"
: Romanian"bg"
: Bulgarian"ur"
: Urdu"hi"
: Hindi"ar"
: Arabic"sr"
: Serbian"bn"
: Bangla"hu"
: Hungarian"bs"
: Bosnian"hr"
: Croatian"tr"
: Turkish"uk"
: Ukrainian"cs"
: Czech"be"
: Belarusian"km"
: Khmer"lo"
: Lao Ako nije navedeno ili postavljeno na null
, koristi se engleski.
C. Određivanje formata prikaza
Moguće je prilagoditi tekst koji će biti prikazan unutar widgeta određivanjem opcije display
. Na primjer, za prikaz s tekstualnim nazivom "AQI" kao i vremenom ažuriranja (kao što je prikazano na widgetu s lijeve strane), možete koristiti sljedeći kod:
_aqiFeed({ display:"%cityname AQI is %aqi<br><small>on %date</small>", container:"city-aqi-container-display", city:"beijing" });
display
parametra je niz temeljen na HTML-u i može sadržavati bilo koju od sljedećih ključnih riječi:
- `%cityname` za ime grada (npr.
Beijing
), - `%aqi` za ukrašenu AQI vrijednost (npr.
58
), - `%aqiv` za neukrašenu (neobrađeni tekst) AQI vrijednost (npr.
58
), - `%style` za CSS deklaraciju ukrašenih AQI detalja (npr.
background-color: #ffde33;color:#000000;
), - `%datum` za vrijeme kada je AQI ažuriran (npr.
Wed 20:00
), - `%impact` za povezani utjecaj na zdravlje (npr.
Good
,Moderate
...) - `%attribution` za dodjelu podataka AQI (npr.
Beijing Environmental Protection Monitoring Center
) - `%details` za potpune pojedinosti o AQI (sadržaj skočnog prozora koji se prikazuje kada prijeđete mišem preko vrijednosti AQI).
Evo nekoliko primjera:
Display Configuration | Result |
---|
D. Programski povratni poziv
Ako više volite DIY integraciju, također možete odrediti povratni poziv javascript funkcije kada se podaci učitavaju. Samo trebate dodati opciju callback
u blok parametara, kao što je na primjer:
_aqiFeed({ city:"beijing", callback:function(aqi){ /* Do whatever you want with the AQI object */ console.log(aqi); } });
Na primjer, pod pretpostavkom da također koristite jquery, sljedeći kôd:
<div id='my-container'></div> <script type="text/javascript" charset="utf-8"> _aqiFeed({ city: "beijing", lang: "pl", callback: function (aqi) { $("#my-container").html(aqi.details); } }); </script>
proizvest će sljedeći sadržaj:
aqi
objekti sadrže sve ključne riječi spomenute u odjeljku C (format prikaza).
E. Uključujući više widgeta
Moguće je uključiti više widgeta na jednu stranicu. Sve što trebate je proslijediti funkciji `_aqiFeed` niz sa svim widgetima koje trebate uključiti. Na primjer, za umetanje Londona, Pariza i New Yorka možete koristiti ovaj kod:
The result is:var cities = ["london", "newyork", "seoul", "guangzhou", "tokyo", "shanghai", "paris","hongkong"]; var aqiWidgetConfig = []; cities.forEach(function(city) { aqiWidgetConfig.push({city:city, callback: displayCity}); }); _aqiFeed(aqiWidgetConfig); function displayCity(aqi) { $("#mutiple-city-aqi").append(aqi.text("<center>%cityname<br>%aqi<br><small>%date</small></center>")); }
F. Upotreba hrane za životinje
Ovaj feed widgeta dostupan je besplatno i s jedinom svrhom integriranja feeda u druge web stranice (tj. aplikacije su isključene) i pod uvjetom razumne i prihvatljive upotrebe. Zadržavamo pravo promjene strukture feeda (formata podataka) u bilo kojem trenutku i bez prethodne najave, stoga je bolje da nas kontaktirate ako planirate napraviti prilagođenu integraciju.
Pri integraciji postoji nekoliko deontoloških pravila koja bi se trebala primijeniti kada se koristi feed podataka:
- Prvo, uvijek provjerite je li prisutno pripisivanje izvornom EPA. Svi podaci o kvaliteti zraka koje možete pronaći na projektu Svjetskog indeksa kvalitete zraka rezultat su napornog rada svih EPA-a diljem svijeta, pa svakako navedite i atribuciju za njihov rad. Ako koristite programski API, atribucija je dostupna iz polja
attribution
. - Ukoliko ste iz institucije i koristite podatke, molimo vas da iskažete poštovanje i vratite kredite za naš rad. Ako pokušavate skrapirati feed podataka, imajte na umu da se ovaj projekt oslanja na projekte sponzorstva i suradnje, stoga razmislite o tome da nas podržite radije nego da nas brišete, posebno ako ste velika institucija ili sveučilište.
- Zapravo, nemojte se ponašati kao WRI ( World Resource Institute ): Ukidanje cjelokupnog feeda podataka projekta Svjetskog indeksa kvalitete zraka i biti toliko jeftini da čak ne bi dali nikakvu atribuciju za naš rad, i to unatoč svojih 80 milijuna američkih dolara godišnje. Ne vjerujete nam? Provjerite ovu snimku .
G. Buduća poboljšanja
Ovo je prva verzija ovog novog API-ja za feed widgeta. Postoji dosta poboljšanja već u pripremi, kao što je podesiva grafička širina i visina, odabir AQI ljestvice itd. Ako želite predložiti neko drugo specifično poboljšanje, slobodno nam pošaljite poruku.