Mapas de calor
Los mapas de calor ahora se renderizan más rápido y de forma más fluida en el navegador
Por Kristian Ekenes
Los mapas de calor en ArcGIS API for JavaScript (JS API) ahora son más rápidos, fluidos y pueden representar más datos en el navegador que nunca.
Un mapa de calor es un estilo de visualización que representa datos de puntos como una superficie ráster continua. La superficie generalmente visualiza áreas "calientes" con colores brillantes en áreas donde los datos de puntos son más densos. Los mapas de calor son particularmente útiles para visualizar una gran cantidad de puntos, donde muchos puntos pueden superponerse. Por ejemplo, el siguiente mapa de calor muestra la densidad de los pozos de petróleo y gas en Kansas.

Por el contrario, si representara cada pozo como un punto, sería casi imposible saber qué áreas tienen más pozos que otras.

La versión 4.24 (junio de 2022) de la API JS actualizó HeatmapRenderer para renderizar con WebGL. Esta actualización introduce las siguientes mejoras:
- Se pueden representar más datos con HeatmapRenderer que antes.
- Importantes actualizaciones de rendimiento, que hacen que la experiencia de navegar por capas con HeatmapRenderer sea más fluida.
- Los datos representados con HeatmapRenderer ahora se pueden filtrar del lado del cliente, con FeatureFilter y FeatureEffect.
- Se agregó soporte emergente y hitTest.
- Se agregó soporte de etiquetado.
Antes de este lanzamiento, el motor de renderizado de la API de JS usaba Canvas para renderizar mapas de calor. Esta última actualización lo convierte en el último renderizador de la API de JS en migrar a WebGL.
Ejemplos
La siguiente aplicación muestra un mapa de calor de terremotos donde solo se etiquetan los terremotos de magnitud 5.0 o más. También agregué una ventana emergente para que pueda hacer clic en cualquier punto del mapa para ver información sobre cada terremoto en esa área.
Antes de la versión 4.24, no podía filtrar los datos representados con el lado del cliente de HeatmapRenderer. Por asociación, eso significaba que Heatmaps no filtraba ni actualizaba las capas habilitadas para el tiempo conectadas a un TimeSlider. Ahora, puede filtrar los mapas de calor como lo haría si la capa tuviera asignado otro renderizador.
Los mapas de calor ahora usan la densidad del kernel
La estrategia subyacente para calcular la densidad en HeatmapRenderer cambió de desenfoque gaussiano a densidad de kernel en la versión 4.24.
Esto fue motivado por un esfuerzo para hacer que los mapas de calor de JS API se representen de manera más consistente en futuras versiones de ArcGIS Pro. La API de JS introdujo las siguientes propiedades nuevas específicas de la fórmula de densidad del kernel:
- radio reemplazó a blurRadius.
- minDensity reemplazó a minPixelIntensity.
- maxDensity reemplazó a maxPixelIntensity.
Esta es una actualización suave, por lo que no tiene que preocuparse de que HeatmapRenderer se rompa cuando actualice las versiones de la API.
Por ejemplo, si actualiza una aplicación a la versión 4.24 que originalmente creó un HeatmapRenderer en cualquier versión anterior de la API, el mapa de calor se representará de manera consistente como lo hizo en las versiones anteriores. ¡No se requieren actualizaciones de código! El motor de renderizado de la API de JS lee internamente los valores de desenfoque gaussiano antiguos y los convierte a sus valores de densidad de kernel equivalentes. Básicamente, el mapa de calor se representa como lo hacía antes, incluso si no tenía conocimiento de las nuevas propiedades de la API.
Haga clic en la imagen de abajo para ver una versión más grande de la misma.
Sin embargo, cuando actualice a la versión 4.24, comenzará a ver un mensaje en la consola que le advierte que use las nuevas propiedades de densidad del núcleo. Este mensaje informa los valores que deben usar las nuevas propiedades si desea mantener una visualización coherente con los valores de propiedad anteriores.

Los mapas de calor creados en Map Viewer Classic (API 3.x JS) también se mostrarán de manera constante en las aplicaciones web más nuevas.
Conclusión
Estas actualizaciones nos permiten llevar la paridad de funciones a las capas renderizadas con HeatmapRenderer, al mismo tiempo que solucionamos varios errores informados en los últimos años. Consulte esta publicación de mi colega Mark Harrower, que analiza las actualizaciones de mapas de calor relacionadas con la interfaz de usuario de mapas inteligentes en Map Viewer.
Sobre el autor
Kristian es ingeniero sénior de productos en Esri. Trabaja en mapeo inteligente, visualización de datos, agrupamiento e integración de Arcade en la API de ArcGIS para JavaScript. Su objetivo es ayudar a los desarrolladores a tener éxito, eficiencia y confianza en la creación de aplicaciones de mapas web con la API de JS, especialmente cuando se trata de visualizar datos. Antes de unirse a Esri, trabajó como especialista GIS para una empresa de consultoría ambiental. Le gusta la cartografía, el análisis GIS y la creación de aplicaciones GIS para genealogía.