Como usar mapas en Power BI usando GeoJson / TopoJson con control Drilldown Choropleth

Muchas veces hemos tenido el requerimiento de usar mapas dentro de los analisis de informacion, esto con el objetivo de tener una mejor comprension de como geograficamente es el comportamiento de nuestros productos o clientes o cualquier criterio que querramos evaluar.

Uno de los mayores requerimientos es tener una visualizacion que podamos usar jerargicamente, es decir tenes departamentos -> municipio -> zona o aldea. Se da mucho sobre sistemas tipo votacion de elecciones por ejemplo o analisis de ventas. Power BI tenia sus controles de mapas sin embargo siempre no llenaba el requerimiento a satisfaccion ya que de al hacer drilldown o bajar de nivel no era posible o no se miraba con mucha exactitud la nueva localizacion.

Power BI tiene varios controles de mapas, que funcionan muy bien usando informacion de paises como USA o paises Europeos, pero para regiones como latinoamericanas no dan todo el detalle que necesitamos realmente.

Esta semana probe el control que anunciaron junto a la actualizacion de julio de Power BI desktop. Este se llama “Drilldown Choropleth”, el se basa en archivos geojson y topojson para realizar el mapa y su localizacion. Estos archivos realmente tienen una estructura en la cual indican los puntos bajo los cuales estan la region que queremos delimitar y atravez de una api que el control ya tiene sobre pone el mapa. si vemos el contenido de estos archivos son asi:

Huehuetenango”,”municipio”:”Colotenango”,”pais”:”Guatemala”}},{“arcs”:[[-159,319,-186,-200,320,321]],”type”:”Polygon”,”properties”:{“cartodb_id”:70,”departamen”:”Alta Verapaz”,”municipio”:”Tactic”,”pais”:”Guatemala”}},{“arcs”:[[322,323,324,325,326]],”type”:”Polygon”,”properties”:{“cartodb_id”:83,”departamen”:”San Marcos”,”municipio”:”Sipacapa”,”pais”:”Guatemala”}},{“arcs”:[[327,328,329,-171,330,331]],”type”:”Polygon”,”properties”:{“cartodb_id”:99,”departamen”:”San Marcos”,”municipio”:”Tajumulco”,”pais”:”Guatemala”}},{“arcs”:[[332,333,334,335,336,337,338,339]]

Como se puede observar aca lo que tenemos que tener en cuenta es lo siguiente tenemos un nivel pais, un nivel departamen que es el nombre del departamento y un nivel llamado municipio que es el nombre del municipio, las coordenadas de ladelimitacion de la region estan dadas por lo que dice “arcs”. Gracias a estos archivos podemos delimitar cada region y subregion. En el caso que vamos a realizar use dos niveles , el de departamentos de Guatemala y el de departamentos_municipios de Guatemala.

Ahora la gran pregunta que todos realizan, de donde sacos estos archivos, pues bien en el caso de Guatemala, encontre que alguien bondadosamente ya habia realizado en el siguiente link:

Departamentos de Guatemala: https://dennyseduardo26.carto.com/tables/guatemala_departamentos/public

Municipios de Guatemala: https://dennyseduardo26.carto.com/tables/municipios_guatemala_2015/public

Archivos GeoJson Guatemala como obtenerlos

Si desean otros lugares o regiones les sugiero buscar en san google la region con la clausula geojson y ver si es lo que necesitan. De lo contrario usando tambien herramientas de mapeos pueden generar el geojson.

Como estos archivos son geojson y el control soporta unicamente topojson debemos transformarlos, esto se puede realizar desde el siguiente sitio: http://mapshaper.org/

Esto nos transformara los archivos geojson a topojson con los cuales ya podremos trabajar.

Transformar archivos geojson a topojson

Para poder usar estos archivos el control necesita alocarlos en algun servidor http accesible al Power BI desktop o services. si tienen cuentas de Azure lo mas facil es usar Azure Blob Storage para publicarlos alli, de esa forma no tendremos necesidad de usar ningun servidor http, claro hay que configurarlos dandoles acceso al publico y configurar CORS para que puedan servidor como in file system dentro de nuestra aplicacion igual.

Configuracion de Azure Blob Storage para publicacion de topojson files

Sino cuenta con una cuenta Azure puede usar cualquier web server igual, lo importante es que este accesible atravez del mismo para que el control pueda referenciarlo.

una vez realizamos la publicacion , debemos ver la informacion, aca lo importante es que debemos tener una estructura con los mismos nombre de campos que tenemos dentro de los diferentes niveles que usamos en los topojson y los nombre de municipios igualmente en el mismo case que tenemos en los json. Es importante esto ya que de lo contrario no podra realizar el mapeo correctamente.

El control soporta hasta 3 niveles como maximo para drilldown, pero en la mayoria de casos es suficiente.

Una vez consultamos ya en Power BI nuestra estructura con los datos, que en el ejemplo son datos estadisticos de Guatemala como por ejemplo poblacion, numero de hombres, numero de mujeres, etc.

Archivo Excel con datos estatisticos y adicion de control de mapas en analisis

En el anterior video pueden ver que se realizaron dos pasos importantes:

  1. transformacion de los nombres de departamentos y municipios a que la primera letra sea unicamente la mayuscula, los demas seran minusculas, esto debido a que asi estan los datos en topojson y sino se realiza no podra localizar los puntos.
  2. Adicion del control “drilldrow Choropleth” atravez de la nueva opcion de la actulizacion de julio de Power BI Desktop, el cual permite ir directamnete a la galeria de controles, buscar el que necesitamos y adicionarlo desde alli sin necesidad de bajarlo del sitio.

El siguiente paso es debemos poner en la opcion Shape donde se encuentra los topojson de cada nivel, maximo 3. ya con esto podremos ver nuestro mapa con su llenado respectivo.

Creacion de mapa con Power BI

Algunas cosas que he visto que son retos amables al usar el control:

  • tener la informacion en topojson, aca debemos investigar para encontrar los datos de la region que queremos usar, realizarolo nosotros creo que es un buen trabajo muy detallado que llevara tiempo, ya alguien es posible que lo haya realizado, internet es grande!!
  • Debemos publicar nuestros archivos json en algun webserver, que dependiendo de el uso de la aplicacion debera soportar el trafico que significa estar consultando, si es una aplicacion con miles de usuarios hay que ver bien donde lo publicaremos, Azure es una buena apuesta bien tuneado claro.
  • Por ahorita cuando uno selecciona una region ocurren dos cosas o bajamos de nivel o hace zoom, esto es controlable, lo que si no hace es poder filtrar la informacion de la region que le damos click a otros elementos de la pagina del mismo Power BI, ejemplo graficas o matrizes. Esto creo necesario que se tenga esa capacidad ya que normalmente asi los usuarios filtran la informacion por el mapa. Hay que acordarse que es primera version del control asi que estara en evolucion constante.
Comportamiento control para filtrar informacion

Me parece una buena opcion para ciertas aplicaciones que deseamos hacer, tipo elecciones de gobiernos o analisis mas puntuales a nivel ventas por ejemplo.

Pruebenlo y comenten cualquier duda, creo que este control nos acerca mucho a realizar aplicaciones con analisis goegraficos mas complejos.

existen dos versiones del control :

--

--

Juan Alvarado — Juanbizzz
SQL y Power BI en español

MVP Data Platform, Consultor en SQL Server , Power BI, SSRS, SSAS, Azure, Dynamics 365, AX tunning, Project, AX BI , SAP ASE, Replication Server y Hana