¿Cómo funciona ese mapa de ustedes?

Nosotros tenemos un algoritmo que geolocaliza la dirección que nos mandaste, éste crea un punto  y un reporte con la localización real. Su información personal (como su numero y su localización) serán cifradas. Después de un corto periodo, nuestra base de datos se deshace de esa información personal pero retiene el reporte.

Los puntos reportados son visualizados usando una versión alterada del "clustering" de Mapbox. Usamos el estado del reporte como un peso para validar el reporte en relación a su área geográfica. Este lo capturamos usando el siguiente código:

//Increase the heatmap weight based on frequency and property magnitude
          "heatmap-weight": {
             "property": "Luz_Weight",
             "type": "exponential",
             "stops": [
                 [0, 0],
                 [1, 1]
               ]
           },

Por cada punto, la data se agrega de la siguiente manera:

Source: ¡Apagón!

Source: ¡Apagón!

Si hay más reportes de que "no hay luz" estos dominan el algoritmo de "cluster"

Source: ¡Apagon!

Source: ¡Apagon!

Si hay más reportes de que "si hay luz" estos dominan el algoritmo de "cluster"

 

El otro punto importante en la visualización es la dimensión del radio para agregar los puntos. Nosotros implementamos un radio dinámico que cambia su tamaño mediante te acercas a los puntos reportados. El mapa interpola los radios de cada "zoom level" para tener una experiencia visual ininterrumpida. El zoom level tiene un valor de pixel pre-asignado usando la proyeccion Web Mercator. Con esto ajustamos los mapas usando el siguiente código:

//Adjust the heatmap radius by zoom level
            "heatmap-radius": {
                "stops": [
                    [6, 1], // ó 2.4 km
                    [8, 5], // ó 3.05km
                    [18, 30], // ó 17.88m
                    [22, 60] // ó 8.95m
                ]
            },

Este diagrama visualiza como funciona el algoritmo del radio dinámico:

Web Mercator Zoom Levels. https://i-msdn.sec.s-msft.com/dynimg/IC96238.jpeg

Web Mercator Zoom Levels. https://i-msdn.sec.s-msft.com/dynimg/IC96238.jpeg

El radio del "cluster" cambia dinámicamente y se ajusta mientras haces zoom al map.

Por último, nuestro "query" a la base de datos de reportes ciudadanos es dinámico. Este "query" se adapta a la situación temporal de cuando viene y se va la luz semana por semana. Nuestro método es correr el "query" de una semana día por día, un "query" en forma de cascada.

Este query se puede visualizar de la siguiente forma:

Source: ¡Apagón!

Source: ¡Apagón!

Si tienen alguna duda o pregunta sobre la metodología o la data, por favor escriban a: info@apagon.com