В последнее время мы сотрудничаем еще с несколькими EPA (агентствами по охране окружающей среды) по всему миру. Среди всех наших запросов на самом деле речь идет о предоставлении веб-картографического сервиса, чтобы Агентство по охране окружающей среды могло само включать данные о качестве воздуха в реальном времени на карту со своего веб-сайта.
Одним из очевидных преимуществ использования такого картографического веб-сервиса от нас является получение выгоды от трансграничных данных, которые мы курируем, то есть информация о качестве воздуха по всему миру предоставляется без границ страны.
Второе преимущество заключается не только в том, что это бесплатный сервис, но он также полностью совместим со стандартными картографическими технологиями Google, Bing или Leaflet, что позволяет быстро и легко интегрироваться с любым существующим веб-сайтом.
--
Конечная точка службы карты плиток
Сервер карты тайлов доступен по URL-адресу `https://tiles.aqicn.org/tiles/{aqi}/{z}/{x}/{y}.png`, где aqi
обозначает тип маркера, который нужно использовать. быть построен, что может быть:
usepa-aqi
: Plots markers based on the composite AQI calculated with the US EPA standard.usepa-pm25
: PM2.5 based AQI - if a station does not have PM2.5 reading, then it is not plotted.usepa-10
: Same as above, but for PM10.usepa-o3
: Same as above, but for Ozone (based on the 1 hour breakpoints).usepa-no2
: Same as above, but for Nitrogen Dioxide.usepa-so2
: Same as above, but for Sulfur Dioxide.usepa-co
: Same as above, but for Carbon Monoxide.asean-pm10
: Asean PM10 raw PM10 concentration (explanations).
Ниже приведен пример шести отдельных загрязнителей для Южного Китая.
Условия использования Веб-сервиса
Веб-сервис карты предоставляется бесплатно при условии разумных ограничений использования и приемлемой политики использования. В настоящее время плитки обновляются каждые 15 минут (и до 1 часа в случае большого трафика).
Обратите внимание, что мощность нашего сервера ограничена, поэтому мы оставляем за собой право приостановить предоставление услуги в любое время, например, для технического обслуживания сервера. Если вам нужна более стабильная интеграция, свяжитесь с нами, чтобы найти подходящее решение, например, настройку выделенного сервера.
Наконец, вам также необходимо указать свой собственный идентификатор токена в качестве дополнительного аргумента конечной точки службы плиток, например `token=_TOKEN_ID_` в следующем URL-адресе: `https://tiles.aqicn.org/tiles/{aqi}/{z }/{x}/{y}.png? токен=_TOKEN_ID_ `.
Вы можете запросить свой собственный идентификатор токена на этой странице . Вам просто нужно указать действующий адрес электронной почты, и вы сможете получить собственный токен в течение минуты.
Ограничения на использование веб-сервиса
При использовании сервиса не забудьте указать ссылку на проект Мирового индекса качества воздуха, а также на Агентство по охране окружающей среды, предоставляющее данные (если вы используете картографический сервис для отображения данных из определенного места или источника). Полный список всех EPA вы можете получить по этой ссылке .
На самом деле, не поступайте как Институт мировых ресурсов (WRI): они удалили весь наш поток данных и повторно опубликовали данные на своем собственном веб-сайте проекта, не указав ни единого источника нашей работы... Это не совсем нормально. когда вы знаете, что они получают финансирование до 80 миллионов долларов США каждый год. Не верите нам? Проверьте этот снимок .
Будущие расширения
Мы уже работаем над расширением этого веб-сервиса, чтобы предоставить больше конфигураций. Например:
- Для поддержки большего количества стандартов, помимо Агентства по охране окружающей среды США, таких как «eucaqi- xxx » для Общего европейского индекса качества воздуха , «innaqi- xxx » для Индийского национального индекса качества воздуха , «raw- xxx » для неконвертированных необработанных данных, и т. д.
- Дополнительные индикаторы, такие как
wind
(как для текущей скорости ветра, так и для направления ветра), а также прогнозируемый индексventilation
[1] , которые могут быть чрезвычайно полезны для прогнозирования. - Поддержка
kriging
геостатистической оценки поверхности - т.е. интерполяций в виде тепловых карт (рисунок справа), которые могут быть полезны для сетей мониторинга с меньшей плотностью. - Поддержка усреднения данных за
24 hours
и8 hours
. Наша карта в настоящее время основана на усреднении за 1 час, но более длительный период усреднения полезен для эпидемиологических исследований. - Поддержка рендеринга плиток на основе
GeoJSON
, позволяющая настраивать маркеры и цветовую шкалу, а также лучшую интеграцию с такими инструментами, как tuftjs.org .
Обратите внимание: для поддержки большего количества стандартов AQI и конфигураций плиток нам необходимо увеличить мощность нашего сервера (как вычислительную мощность, так и хранилище), для чего нам потребуется спонсорство. Если вы работаете в одной из крупных облачных компаний, например Google или Microsoft, и читаете это сообщение, то почему бы не подумать о том, чтобы сделать свою компанию экологически чистой ( борьба с загрязнением воздуха путем повышения осведомленности граждан ) и спонсировать часть необходимого сервера дополнительная мощность? Это помогло бы не только нам, но и всему сообществу исследователей, учёных, статистиков и эпидемиологов, работающих с экологическими данными и науками.
--
Пример кода: интеграция с Leaflet
Leaflet — это чрезвычайно крутая легкая библиотека JavaScript с открытым исходным кодом для интерактивных карт, удобных для мобильных устройств, созданная Владимиром Агафонкиным из MapBox.
<div id='map' style='height:380px;' />
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.5/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.5/leaflet.js"></script>
<script>
var OSM_URL = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var OSM_ATTRIB = '© <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors';
var osmLayer = L.tileLayer(OSM_URL, { attribution: OSM_ATTRIB });
var WAQI_URL = "https://tiles.waqi.info/tiles/usepa-aqi/{z}/{x}/{y}.png?token=_TOKEN_ID_";
var WAQI_ATTR = 'Air Quality Tiles © <a href="http://waqi.info">waqi.info</a>';
var waqiLayer = L.tileLayer(WAQI_URL, { attribution: WAQI_ATTR });
var map = L.map('map').setView([51.505, -0.09], 11);
map.addLayer(osmLayer).addLayer(waqiLayer);
</script>
Пример кода: интеграция с Google
Карты Google весьма удобны и позволяют бесплатно совершать до 25 000 вызовов API в день. Обратите внимание, что карты Google доступны в Китае, но сценарий API карт необходимо загрузить с google.cn (`http://maps.google.cn/maps/api/js`) вместо обычного https://maps. URL-адрес .googleapis.com/maps/api/js.
<div id='map' style='height:380px;' />
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script>
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(51.505, -0.09),
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 11
});
var t = new Date().getTime();
var waqiMapOverlay = new google.maps.ImageMapType({
getTileUrl: function (coord, zoom) {
return 'https://tiles.aqicn.org/tiles/usepa-aqi/' + zoom + "/" + coord.x + "/" + coord.y + ".png?token=_TOKEN_ID_";
},
name: "Air Quality",
});
map.overlayMapTypes.insertAt(0, waqiMapOverlay);
</script>
Пример кода: интеграция с Microsoft Bing Maps
Карты Bing на самом деле довольно крутые, а для некоторых стран в них также используется базовая карта Here. До сих пор существует довольно много веб-сайтов, основанных на картах Microsoft (особенно в области качества воздуха и погоды).
<div id='map' style='height:380px;' style='position:relative;'/>
<script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?callback=initBingMap' async defer></script>
<script>
function initBingMap() {
var map = new Microsoft.Maps.Map(document.getElementById('map'), {
center: new Microsoft.Maps.Location(51.505, -0.09),
zoom: 11,
});
var options = {
uriConstructor: "https://tiles.aqicn.org/tiles/usepa-aqi//{zoom}/{x}/{y}.png?token=_TOKEN_ID_",
minZoom: 1,
maxZoom: 15
};
var waqiTileSource = new Microsoft.Maps.TileSource(options);
var waqiTilelayer = new Microsoft.Maps.TileLayer({ mercator: waqiTileSource });
map.layers.insert(waqiTilelayer);
}
</script>