This website uses cookies to customize ads and analyze traffic. If you continue browsing, we'll consider you accept their utilization. More information.
Blog

Cómo crear un mapa geográfico con zonas de calor desde Excel

Excel -

Imaginemos un sitio web de venta de boletos para autobuses, y necesitamos saber los destinos favoritos por región de origen. Una tabla es útil, pero es mucho mejor un mapa geográfico con zonas de calor para ver las regiones más populares.

Estos mapas sirven para observar la interacción de dos regiones: origen y destino. Se pueden utilizar en empresas de transporte y logística, agencias viajes, o incluso para medir el rendimiento geográfico de campañas de Adwords. Geo Chart de Google es gratis y una buena opción para realizar estos mapas.

Geochart utiliza un código Javascript donde insertamos los valores numéricos asociados a cada región. En este código Javascript se definen criterios del mapa, como su nivel geográfico y su nivel de resolución (continentes, países, provincias, ciudades), y los colores que más nos gusten.

Observa este mapa con las regiones de España, y mira el código HTML para entender cómo se insertan los valores numéricos por región. Lo más recomendable es utilizar el código ISO 3166-2 para identificar cada región española.

Podemos automatizar el proceso si creamos un código dinámico en PHP para recuperar los valores directamente desde la URL, mediante $_GET, y reescribir el código Javascript que utilizará Google. Así, obtenemos un mapa geográfico dinámico, cuyas zonas de calor cambiarán según los valores que insertemos en la URL. Os muestro un sencillo ejemplo, cuya URL podéis modificar para crear vuestros propios mapas de España:

http://www.danielpinero.com/demo.php?demo=mapa&ES-IB=1&ES-MD=0&ES-RI=0&ES-AS=2&ES-CB=1&ES-CE=0&ES-ML=0&ES-CN=0&AD=0&ES-AN=8&ES-AR=0&ES-CM=3&ES-CL=8&ES-CT=1&ES-EX=0&ES-GA=2&ES-MC=0&ES-NC=1&ES-PV=0&ES-VC=0

En este primer ejemplo, Islas Baleares (ES-IB, en ISO 3166-2) tiene un valor de 1, mientras que Castilla y León (ES-CL) tiene 8. ¿Ves como Castilla y León se observa más oscura? Cambia los números en la URL, y mira cómo cambia el mapa.

Si deseamos conseguir este mapa desde Excel, hay una solución muy simple: construir la URL a partir de una lista de regiones y números, y visitarla en el browser. Descarga el ejemplo en Excel completo

Una segunda opción es utilizar Phil Carto. Es más customizable que Geo Chart, pero más complicado de descargar, instalar y usar. Además requiere buscar mapas en formato .ai, los cuales pueden tener problemas por ser diseñados por anónimos.

Código PHP definitivo para crear un mapa con Google GeoCharts (requiere añadir los valores a la URL):

  

<?php

$array = array("ES-IB" => "Islas Baleares", "ES-MD" => "Madrid", "ES-NC" => "Navarra", "ES-RI" => "La Rioja", "ES-AS" => "Asturias", 
    "ES-CB" => "Cantabria", "ES-CE" => "Ceuta", "ES-ML" => "Melilla", "ES-CN" => "Canarias", "AD" => "Andorra", "ES-AN" => "Andalucía", "ES-AR" => "Aragón", 
    "ES-CM" => "Castilla-La Mancha", "ES-CL" => "Castilla y León", "ES-CT" => "Cataluña", "ES-EX" => "Extremadura", "ES-GA" => "Galicia", "ES-MC" => "Murcia", 
    "ES-PV" => "País Vasco", "ES-VC" => "Valencia");

    $serie = "";

    foreach ($array as $iso => $name) {
     if (isset($_GET[$iso]) && !empty($_GET[$iso]) ) {
     $value=$_GET[$iso];
     $serie .= "[{f: '".htmlentities($name)."', v: '".htmlentities($iso)."'},".htmlentities($value)."], ";
        }
     }

    $serie = substr($serie, 0, -2); ?>

    <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='es' lang='es'>
    <head>
	<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
      <script type='text/javascript' src='https://www.google.com/jsapi'></script>
      <script type='text/javascript'>
       google.load('visualization', '1', {'packages': ['geochart']});
       google.setOnLoadCallback(drawRegionsMap);

        function drawRegionsMap() {
          var data = new google.visualization.DataTable();
          data.addColumn('string', 'Country');
          data.addColumn('number', 'Popularity');
    data.addRows([<?=$serie;?>]);

          var options = {'title':'Spain',
      'width':650, 'height':400, 'region':'ES', 'resolution':'provinces'};

          var container = document.getElementById('map_canvas');
          var geochart = new google.visualization.GeoChart(container);
          geochart.draw(data, options);
      };
      </script>
    </head>

    <body>
      <div id='map_canvas'></div>
    </body>

    </html>

 

Related Posts
  • Cómo crear un mapa de calor de México en Google Geocharts

  • Cómo crear un mapa de calor de Costa Rica en Google Geocharts

  • Cómo extraer root domain de URL en Excel

  • Cómo crear un mapa de calor de Cuba en Google Geocharts

  • Cómo crear un mapa de calor de Australia en Google Geocharts
  • Send Comment
    Name
    E-mail
    Comment

    Comments

    Anel Trujillo - 2016-11-06
    Buena la ilustración, pero no tengo el programa y quisiera saber si es algún programa especial.

    Daniel Piñero - 2016-11-06
    Usamos la API de Google Charts. En mi sitio web, podrás encontrar varias interfaces para generar mapas de varios países.

    Daiana - 2016-03-18
    Sabes cómo hacemos para que se pinten Ceuta y Melilla?

    Daniel Piñero - 2016-03-18
    Aquí te funcionan Ceuta y Melilla: Cómo crear mapa de calor de España

    Patricia Quiquia - 2014-08-05
    Deberías colgar un ejemplo con la ciudad de Lima - Perú :D

    Daniel Piñero - 2014-08-05
    Hola. Hay un mapa de calor para Perú disponible en el artículo "Cómo crear un mapa de calor de Perú"

    Alex - 2011-12-16
    El problema es que parece que para Google las provincias son las comunidades y no permite un mapa por provincias de España, Lástima.

    Daniel Piñero - 2012-04-12
    Sí, ése es un problema que también encontré al investigar sobre Geo Charts. En la plataforma estadística de la empresa donde trabajo, la solución ha sido utilizar un pie chart para las provincias, y un mapa para las comunidades. También creo que un mapa para las 50 provincias de España sería demasiado granular y más difícil de entender en ciertos casos. Para entrar en detalle, podemos acompañar el mapa con un pie chart o una tabla que desglose los datos por provincias.