空气质量小部件 - 新改进的源
Air Quality Widget - New Improved Feed

Posted on July 28th 2015
分享: aqicn.org/faq/2015-07-28/air-quality-widget-new-improved-feed/cn/
{ widget : feed }

为了改善 AQI 小部件与外部网站的集成,我们开发了新的小部件 API 源。与现有的小部件提要相比,这个新的 API 提要为集成提供了更大的灵活性,而且还提供了更多用于自定义小部件外观的选项。

例如,您可以显示一个小小部件,就像... (将鼠标移到 AQI 数字上以查看详细信息),或者显示一个更大的小部件,其中包含过去 24 小时污染物的详细信息,如右侧所示。

新框架还支持模板、多种语言(英语、简体中文、繁体中文、西班牙语等)以及与基于数据的 JavaScript 回调进行编程集成的可能性。

A. 基本设置

基本集成简单而直接。首先需要添加以下代码:

  
<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>

然后,只需添加其他代码即可包含该小部件:

  
<span  id="city-aqi-container"></span>  
  
<script  type="text/javascript"  charset="utf-8">  
	_aqiFeed({  container:  "city-aqi-container",  city:  "beijing"  });  
</script>

函数“_aqiFeed”将小部件的配置块作为参数。参数 `container: "city-aqi-container"` 是指要在其中插入小部件的标签的 id(例如 `<span id='city-aqi-container'></span>`),参数city是您要显示当前空气质量读数的城市的名称(例如`city:“london”`)。

B. 指定语言

...

您还可以通过设置lang选项来指定要使用的语言。例如,要包含中文小部件(如右图所示),请使用以下代码:

  
_aqiFeed({  
	container:"city-aqi-container",  
	city:"beijing",  
	lang:"cn"  
});  

目前支持的语言有:

  • "en": 英语
  • "cn": 简体中文
  • "jp": 日本
  • "es": 西班牙人
  • "kr": 韩国
  • "ru": 俄
  • "hk": 繁体中文
  • "fr": 法国人
  • "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

    如果未指定或设置为null ,则使用英语。

  • C. 指定显示格式

    ...

    可以通过指定display选项来自定义要在小部件中显示的文本。例如,要显示文本“AQI”名称以及更新时间(如左侧小部件所示),您可以使用以下代码:

    >
      
    _aqiFeed({    
    	display:"%cityname  AQI  is  %aqi<br><small>on  %date</small>",  
    	container:"city-aqi-container-display",    
    	city:"beijing"  
    });  
    

    参数display是一个基于HTML的字符串,可以包含以下任意关键字:

    • `%cityname` 为城市名称(例如Beijing ),
    • `%aqi` 表示修饰后的 AQI 值(例如58 ),
    • `%aqiv` 表示未修饰的(原始文本)AQI 值(例如58 ),
    • `%style` 用于装饰 AQI 详细信息的 css 声明(例如background-color: #ffde33;color:#000000; ),
    • `%date` 表示 AQI 更新的时间(例如Wed 20:00 ),
    • `%impact` 表示相关的健康影响(例如GoodModerate ......)
    • “%attribution”为AQI数据归属(如Beijing Environmental Protection Monitoring Center
    • `%details` 查看完整的 AQI 详细信息(将鼠标移动到 AQI 值上时显示的弹出窗口内容)。

    这里有一些例子:

    Display Configuration Result

    D. 程序回调

    如果您更喜欢 DIY 集成,您还可以指定加载数据时的 JavaScript 函数回调。您只需要在参数块中添加选项callback ,例如:

      
    _aqiFeed({  city:"beijing",  callback:function(aqi){  
    	/*  Do  whatever  you  want  with  the  AQI  object  */  
    	console.log(aqi);    
    }  });

    例如,假设您也使用jquery,则以下代码:

      
    <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>

    将产生以下内容:

    aqi对象包含 C 节(显示格式)中提到的所有关键字。

    E. 包括多个小部件

    可以在单个页面中包含多个小部件。您所需要的只是将包含您需要包含的所有小部件的数组传递给“_aqiFeed”函数。例如,要插入伦敦、巴黎和纽约,可以使用以下代码:

      
    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>"));  
    }  
    
    The result is:

    F、饲料用量

    此小部件提要免费提供,其唯一目的是将提要集成到其他网站(即不包括应用程序),并且是在合理且可接受的使用条件下进行的。我们保留随时更改提要结构(数据格式)的权利,恕不另行通知,因此如果您计划进行自定义集成,最好联系我们。

    在进行集成时,使用数据源时应应用一些义务论规则:

    • 首先,始终确保原始 EPA 的归属信息存在。您可以在世界空气质量指数项目中找到的所有空气质量数据都归功于世界各地所有 EPA 的辛勤工作,因此请确保也提供他们工作的归属。如果您使用编程 API,则可从attribution字段获取归因。
    • 如果您来自机构并使用这些数据,请表示尊重并偿还我们工作的积分。如果您正在尝试抓取数据源,请记住该项目依赖于赞助和合作项目,因此请考虑支持我们而不是废弃我们,特别是如果您是大型机构或大学。
    • 事实上,不要像WRI世界资源研究所)那样行事:废弃整个世界空气质量指数项目数据源,而且价格如此低廉,以至于他们甚至不会对我们的工作给予任何归属,尽管他们有 80每年数百万美元的资金。不相信我们?检查这个快照

    G. 未来的改进

    这是这个新的小部件提要 API 的第一个版本。目前已有相当多的改进正在酝酿中,例如可调节图形宽度和高度、可选择的 AQI 比例等。如果您想提出任何其他具体改进建议,请随时向我们发送消息。

    单击此处查看所有常见问题解答条目
  • AQI Scale: What do the colors and numbers mean?
  • Using Statistical Distances for Real-time Sensor Networks Validation
  • Nitrogen Dioxyde (NO2) in our atmosphere
  • 关于空气质量与空气污染指数

    本网站采用的污染指数和颜色与EPA是完全相同的。 EPA的指数可以从 AirNow上查到

    空气质量指数空气质量指数级别(状况)及表示颜色对健康影响情况建议采取的措施
    0 - 50一级(优)空气质量令人满意,基本无空气污染各类人群可正常活动
    51 -100二级(良)空气质量可接受,但某些污染物可能对极少数异常敏感人群健康有较弱影响极少数异常敏感人群应减少户外活动
    101-150三级(轻度污染)易感人群症状有轻度加剧,健康人群出现刺激症状儿童、老年人及心脏病、呼吸系统疾病患者应减少长时间、高强度的户外锻炼
    151-200四级(中度污染)进一步加剧易感人群症状,可能对健康人群心脏、呼吸系统有影响儿童、老年人及心脏病、呼吸系统疾病患者避免长时间、高强度的户外锻炼,一般人群适量减少户外运动
    201-300五级(重度污染)心脏病和肺病患者症状显著加剧,运动耐受力降低,健康人群普遍出现症状儿童、老年人及心脏病、肺病患者应停留在室内,停止户外运动,一般人群减少户外运动
    300+六级(严重污染)健康人群运动耐受力降低,有明显强烈症状,提前出现某些疾病儿童、老年人和病人应停留在室内,避免体力消耗,一般人群避免户外活动
    (参考详见http://zh.wikipedia.org/wiki/空气质量指数)

    如果你想了解更多有关空气质量与污染,详见维基百科或者 AirNow

    有关健康建议详见北京的Richard Saint Cyr MD医生的博客:www.myhealthbeijing.com


    注意事项: 所有空气质量数据在发布时均未经验证,并且为了保证数据质量,这些数据可能随时被修改,恕不另行通知。 世界空气质量指数项目在编制此信息的内容时已经运用了所有合理的技能和谨慎,在任何情况下世界空气质量指数项目团队或其代理人将不会为由于提供此数据而直接或间接引起的伤害、合同损失、侵权及其他任何损失负责。



    设置


    选择语言:


    Temperature unit:
    Celcius