Recientemente hemos estado cooperando con bastantes EPA (agencias de protección ambiental) en todo el mundo. Entre todas las solicitudes que hemos tenido, se encuentra la de proporcionar un servicio de mapas web para que la propia EPA pueda incluir datos de calidad del aire en tiempo real en el mapa desde su sitio web.
Una de las ventajas obvias de utilizar nuestro servicio web de mapas de este tipo es beneficiarse de los datos transfronterizos que estamos seleccionando, es decir, se proporciona información sobre la calidad del aire en todo el mundo sin límites de países.
La segunda ventaja no es sólo que se trata de un servicio gratuito, sino que también es completamente compatible con las tecnologías de mapas estándar de Google, Bing o Leaflet, lo que permite una integración rápida y sencilla con cualquier sitio web existente.
--
Punto final del servicio de mapas de mosaicos
El servidor de mapas de mosaicos está disponible en la URL `https://tiles.aqicn.org/tiles/{aqi}/{z}/{x}/{y}.png`, donde aqi
se refiere al tipo de marcador a trazarse, que puede ser:
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).
A continuación se muestra el ejemplo de los 6 contaminantes individuales del sur de China.
Condiciones de uso del servicio web
El servicio web de mapas se proporciona de forma gratuita, bajo la condición de límites de uso razonables y una política de uso aceptable. Actualmente, los mosaicos se actualizan cada 15 minutos (y hasta 1 hora en caso de mucho tráfico).
Tenga en cuenta que la capacidad de nuestro servidor es limitada, por lo que nos reservamos el derecho de pausar el servicio en cualquier momento, por ejemplo para realizar el mantenimiento del servidor. Si necesita una integración más estable, contáctenos para encontrar una solución adecuada, como configurar un servidor dedicado.
Por último, también debe especificar su propio ID de token como argumento adicional para el punto final del servicio de mosaico, como `token=_TOKEN_ID_` en la siguiente URL: `https://tiles.aqicn.org/tiles/{aqi}/{z }/{x}/{y}.png? token=_TOKEN_ID_ `.
Puede solicitar su propio ID de token desde esta página . Sólo necesita proporcionar un correo electrónico válido y podrá obtener su propio token en un minuto.
Restricciones de uso del servicio web
Al utilizar el servicio, no olvide proporcionar la atribución al proyecto del Índice Mundial de Calidad del Aire , así como la EPA que proporciona los datos (si utiliza el servicio de mapas para mostrar datos de una ubicación o fuente específica). Puedes obtener la lista completa de todas las EPA desde este enlace .
De hecho, no actúes como el Instituto de Recursos Mundiales (WRI): estaban eliminando toda nuestra fuente de datos y republicando los datos en el sitio web de su propio proyecto sin dar ninguna atribución a nuestro trabajo... Eso no está del todo bien. cuando sabes que reciben financiación hasta 80 millones de dólares cada año. ¿No nos crees? Mira esta instantánea .
Ampliaciones futuras
Ya estamos trabajando en ampliar este servicio web para proporcionar más configuraciones. Por ejemplo:
- Para respaldar más estándares además de los de la EPA de EE. UU., como `eucaqi- xxx ` para el Índice Común Europeo de Calidad del Aire , `innaqi- xxx ` para el Índice Nacional de Calidad del Aire de la India , `raw- xxx ` para los datos brutos no convertidos, etc.
- Más indicadores como el
wind
(tanto para la velocidad actual como para la dirección del viento), así como el índiceventilation
previsto [1] , que pueden ser extremadamente útiles para la previsión. - Soporte para estimación de superficie geoestadística
kriging
, es decir, interpolaciones tipo mapa de calor (imagen de la derecha) que pueden ser útiles para redes de monitoreo de menor densidad. - Soporte para promedio de datos
24 hours
y8 hours
. Nuestros mapas se basan actualmente en un promedio de 1 hora, pero los períodos de promedio más largos son útiles para estudios epidemilógicos. - Soporte para renderizado de mosaicos basado en
GeoJSON
, lo que permite la personalización de marcadores y escala de colores, así como una mejor integración con herramientas como tuftjs.org .
Tenga en cuenta que para admitir más estándares AQI y configuraciones de mosaicos, necesitamos aumentar la capacidad de nuestro servidor (tanto la potencia de procesamiento como el almacenamiento), para lo cual necesitaremos patrocinio. Si trabaja para una de las grandes empresas de la nube, o por ejemplo Google o Microsoft, y lee este mensaje, ¿por qué no considera hacer que su empresa sea respetuosa con el medio ambiente ( combatiendo la contaminación del aire mediante la promoción de la conciencia ciudadana ) y patrocinando parte del servidor necesario? capacidad adicional? Eso no sólo nos ayudaría a nosotros, sino también a toda la comunidad de investigadores, científicos, estadísticos y epidemiólogos que trabajan con datos y ciencias ambientales.
--
Código de muestra: integración con Leaflet
Leaflet es una biblioteca JavaScript de código abierto, liviana y extremadamente interesante para mapas interactivos aptos para dispositivos móviles, creada por Vladimir Agafonkin de 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>
Código de muestra: integración con Google
Los mapas de Google son bastante convenientes y gratuitos hasta 25.000 llamadas API al día. Tenga en cuenta que Google Maps está disponible en China, pero el script API de Maps debe cargarse desde google.cn (`http://maps.google.cn/maps/api/js`) en lugar del https://maps normal. .googleapis.com/maps/api/js URL.
<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>
Código de muestra: integración con Microsoft Bing Maps
Los mapas de Bing son bastante interesantes y también utilizan el mapa base Here para algunos países. Todavía hay bastantes sitios web basados en Microsoft Maps (y especialmente en el ámbito de la calidad del aire y el clima).
<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>