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.
