Виджет качества воздуха — новый улучшенный канал
Air Quality Widget - New Improved Feed

Posted on July 28th 2015
Делиться: aqicn.org/faq/2015-07-28/air-quality-widget-new-improved-feed/ru/
{ widget : feed }

Чтобы улучшить интеграцию наших виджетов AQI с внешними веб-сайтами, мы разработали новый канал API виджетов. По сравнению с существующим фидом виджетов, этот новый фид API обеспечивает гораздо большую гибкость интеграции, а также гораздо больше возможностей для настройки внешнего вида виджета.

Например, вы можете отобразить крошечный виджет, например ... (наведите указатель мыши на номер AQI, чтобы просмотреть подробную информацию), или виджет большего размера с подробной информацией о загрязнителях за последние 24 часа, как показано справа.

Новая платформа также поддерживает шаблоны, несколько языков (английский, упрощенный и традиционный китайский, испанский и т. д.), а также возможность программной интеграции с обратными вызовами JavaScript на основе данных.

А. Базовая настройка

Базовая интеграция проста и понятна. Сначала вам нужно добавить следующий фрагмент кода:

  
<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"` относится к идентификатору тега, в который вы хотите вставить виджет (например, `<span id='city-aqi-container'></span>`), и параметр city название города, для которого вы хотите отобразить текущие показания качества воздуха (например, «город: «лондон»»).

Б. Указание языка

...

Вы также можете указать используемый язык, установив параметр 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

    Если не указано или установлено значение 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` для объявления CSS оформленных деталей AQI (например background-color: #ffde33;color:#000000; ),
    • `%date` для времени обновления AQI (например Wed 20:00 ),
    • `%impact` для соответствующего воздействия на здоровье (например, Good , Moderate ...)
    • `%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. Все данные о качестве воздуха, которые вы можете найти в проекте «Мировой индекс качества воздуха», получены благодаря упорной работе всех агентств по охране окружающей среды по всему миру, поэтому, пожалуйста, не забудьте также указать авторство их работы. Если вы используете программный 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
  • О качестве воздуха и измерениях загрязнения:

    О уровнях качества воздуха

    -Индекс качества воздуха (ИКВ = AQI) ЗначенияУровни концерна здравоохранения
    0 - 50хорошоКачество воздуха считается удовлетворительным, и загрязнение воздуха представляется незначительным в пределах нормы.
    51 -100удовлетворительноеКачество воздуха является приемлемым; однако некоторые загрязнители могут представлять опасность для людей, являющихся особо чувствительным к загрязнению воздуха.
    101-150Нездоровый для чувствительных группМожет оказывать эффект на особо чувствительную группу лиц. На среднего представителя не оказывает видимого воздействия.
    151-200нездоровыйКаждый может начать испытывать последствия для своего здоровья; особо чувствительные люди могут испытывать более серьезные последствия.
    201-300Очень НездоровыйОпасность для здоровья от чрезвычайных условий. Это отразится, вероятно, на всем населении.
    300+опасныйОпасность для здоровья: каждый человек может испытывать более серьезные последствия для здоровья

    To know more about Air Quality and Pollution, check the wikipedia Air Quality topic or the airnow guide to Air Quality and Your Health.

    For very useful health advices of Beijing Doctor Richard Saint Cyr MD, check www.myhealthbeijing.com blog.


    Уведомление об использовании: Все данные о качестве воздуха не подтверждены на момент публикации, и ввиду гарантии качества эти данные могут быть изменены в любое время без предварительного уведомления. Всемирный индекс качества воздуха реализовал все разумные навыки и заботу в составлении содержания этой информации и ни при каких обстоятельствах проектная группа World Air Quality Index или ее агенты не несут ответственность по контракту, деликту или иным образом за любые убытки, травмы или ущерб, возникшие прямо или косвенно от предоставления этих данных.



    Настройки


    Настройка языка:


    Temperature unit:
    Celcius