Si te ha gustado el vídeo seguro que encuentras interesante la aplicación de GeaCron, un atlas histórico e interactivo donde podrás consultar los eventos históricos que quieras y su evolución.  Un resumen de todo lo que puedes consultar en un artículo que realizamos aquí.


Información sobre el vídeo que aparece en YouTube:

A geopolitical history of all empires, nations, kingdoms, armies and republics. More than 500 world maps spanning all historical events up to today. View in the high resolution. Turn on annotations for labels if you cannot read the key in the upper-left corner.

Thanks to everyone who gave me feedback in the previous video while this was still in production. If you have any questions, think I left something out, or find any mistake, leave a comment. All serious feedback is valuable to me. Also see the FAQ section at the bottom of this description.

Most of what is shown here are civilizations with a writing system and urban centers. There are some exceptions to this where possible. This does not include most pre-historical cultures.

Special Thanks to mutong for research and translation of several Chinese maps.


Q: Canada was released in 1867/Australia was released in 1901, why is that not shown here? (Answer also generally applies to NZ, South Africa, Newfoundland)

Canada became a Dominion in 1867 and Australia also in 1901. This meant that it had a great amount of internal autonomy. However, before the Balfour Declaration of 1926, Dominions had no control over their foreign policy, which was completely determined by Whitehall in London. Dominions basically became what they are today upon their ratification of the Statute of Westminster 1931. For Canada, this was in the same year. Some other Dominions adopted it later on. Australia ratified it in 1942.

One interesting thing to note is that Rupert’s Land/Northwest Territories was not legally part of Canada at all, until the transfer of the Charter from the Hudson’s Bay Company in 1869-1870, through the Crown. Even then, none of the natives there had yet signed any of the Numbered Treaties.

Q: Where is New France in America?

Short answer: It is there. You can see the same dark blue as is used for continental France in America. I placed all the major French forts and cities in North America on the maps, starting in Canada. I did not color in all the vast land connecting the more isolated forts, which was not under their control in any sense. Doing so would be extremely sloppy compared to how I treated all other colonies.

Q: The Spanish & First Mexican Empire originally reached from Texas/Colorado/Wyoming to California south of the 42nd parallel, so why is that not shown?

This video does not and cannnot show all land claims. But in particular, I did not fully show many de jure claim changes such as the Louisiana Purchase, the Oregon Treaty or the Treaty of Tordesillas. Likewise, neither the Adams-Onis treaty nor the Mexican Cession are fully shown, as much of the claimed land in question was virtually untouched by either side at the time. Such areas remain blank here.

Of course, I did show all the missions and forts in Alta California that actually were maintained by the Spaniards. They were interconnected by roads, from San Diego to the Bay area.

Q: Why don’t I see all the Native American/African/Aborigine tribes?

Here are some maps of Old World tribes that never appear in this video:

Many ancient cultures were prehistoric in that they left no known record of their own history (non-oral). What this means is that much less can now be directly inferred about these cultures, such as the extent to which they organized politically and how this might have specifically developed over time. I couldn’t objectively include pre-historic cultures in one region (America) without also vastly expanding the number of prehistoric cultures shown around the world, about which very little tends to be known. Early Celtic cultures are a European example. Despite having built Stonehenge at some point, they weren’t included here for the same reasons. The prehistoric city of Dobrovody, and the Langkasuka are two more examples.

A few important exceptions do exist for good reason. These are certain major military powers who had extended contact with other literate civilizations. For instance, the Inca did not have any (known) writing system, but they were encountered by others who recorded much of their oral history as it existed then. The Empire they built was so important and well-known that I didn’t want to leave them out on a technicality.

Despite a general lack of detailed knowledge, every map from 650 BC onward has some major Native American civilizations represented, despite some of them being pre-historical. There are about a dozen of the most powerful ones shown here. This is in contrast to Northern Europe, which is blank until well after 1 AD.


Visto en

fmesemanalPara los que no conocen este potente software, esta puede ser la mejor forma de iniciarse. Van a realizarse webinars semanales sobre FME todos los miercoles a las 10.30, de una duración de 30 minutos. Si estás interesado en ello puedes registrarte aquí.
Ahora para aquellos que desconozcan completamente la herramienta, un pequeño resumen:
FME es una potente herramienta Spatial ETL que puede transformar datos entre distintos formatos, geometrías y sistemas de coordenadas. La versión 2015 de FME soporta más de 400 formatos (CAD, SIG, Ráster, Base de Datos, Láser, y todos los formatos más utilizados y conocidos). También incluye casi 500 herramientas para realizar transformaciones de geometrías y atributos. Para hacer las transformaciones de coordenadas incluye una librería con más de 56.000 sistemas de coordenadas.
Si estás interesado, asiste al webinar y cuéntanos vuestra experiencia con este software.


20150304014122666Hace poco estaba buscando la manera de poder programar algún dispositivo móvil para la captura de datos. Una de las ideas fue mediante una placa Arduino pero no disponía del sensor GPS y tampoco es accesible para mucha gente. Buscando por la red me topé con QPython, la oportunidad de programar en Python desde nuestro teléfono móvil Android, y más importante que eso, poder acceder a los sensores del propio móvil entre otras cosas.

Se que esta aplicación no es nada nueva pero la verdad es que no lo conocía, y estoy seguro que otros estarán como yo. Vosotros mismos os podréis dar cuenta una vez veáis por encima lo que es capaz de hacer, que disponer de un dispositivo programable de este tipo tan a mano puede ser de gran utilidad. Y ahora, a explicar lo poco que llevo entendido sobre esta aplicación:

QPython te permite ejecutar código Python desde vuestras terminales Android, además de instalar librerías externas con un solo comando, tanto librerías preparadas para el acceso a las funciones del móvil como instalar otras librerías disponibles para Python con cientos de funcionalidades directamente de la red. Estas aplicaciones las podemos dejar ejecutándose en segundo plano en nuestro móvil.

La aplicación de QPython la podéis descargar gratuitamente desde la Play Store y está basada en Python 2.x, pero también existe la versión para Python 3.x. Podéis encontrar documentación en su Wiki qpython con ejemplos y explicaciones, o en stackoverflow.

20150304021723784Para la instalación de librerías externas consta de dos métodos:

  • QPypi: librerías ya preparadas por la aplicación. Podemos encontrar androidhelper (acceso a sensores del móvil, cuadros de texto, etc), kivy (nos permite crear aplicaciones rápidas en nuestro android: botones, pantallas con mensajes, etc), numpy, sqlite3, etc.
  • pypi: nos da acceso al directorio de librerías Python en la red, permitiendo la descarga de la librería que queramos tan solo introduciendo su nombre.

Una de la librerías que hemos probado a instalar es la librería de Geopy, entrando en el apartado de librerías de la aplicación y escribiendo un: `pip install geopy` se nos instalará esta librería de Python para la geocodificación de coordenadas en direcciones. La precisión de los GPS en los móviles sabemos que no es una maravilla, pero para muchos casos puede ser suficiente, y lo mismo de sus sensores de orientación, etc.

20150304023508542Una vez instalada, podemos abrir la aplicación y acceder a un pequeño tutorial “Quick Start”. Aquí ya podemos echar un vistazo de la apariencia que tiene el código en estas aplicaciones. En cualquiera de ellas podemos hacer click sobre “Copy to editor to run”, y una vez estamos en el editor hacemos click en el botón de “Play” para ejecutar el script. En el segundo podemos ver un ejemplo de una aplicación que cambia de color el fondo de pantalla al hacer click sobre la pantalla (tenerla en ojo para hacer captura al presionar de un punto GPS por ejemplo).

20150304021723736Si en vez de entrar en el tutorial, deslizamos la pantalla hacia la izquierda, aparecerán el resto de botones de la aplicación, entre los que podemos ver la consola para ejecutar código, el Editor y el Programs con nuestros scripts, el apartado de Libraries para la instalación de librerías externas y el de Community con acceso a la web de

Otra cosa que estarás pensando es lo complicado que sería escribir código con el teclado del móvil, o el envío a través de otros medios. Desde QPython lo han solucionado con un lector QR en su web que carga directamente tu código en la app (actualmente no disponible por reforma de la web). Por ahora lo más factible sería cargar tu fichero en el móvil utilizando algún métodos de los comunes para envío de datos, ya sea usando la red o mediante cable de datos.

20150304022908390Un ejemplo sencillo es el acceso al sensor gps, mostrando por consola sus coordenadas. Aquí faltaría ver con más calma el significado de los datos que nos da, creo que si le pedimos al sensor las coordenadas de tipo “network” son las relacionadas con tu red wifi o torre móvil pero no están calculadas mediante gps, para ello son las de tipo “gps” que vemos en el script gps_track de más abajo.


import androidhelper
dr = androidhelper.Android()
l = dr.readLocation()
rloc = l.result
rnet = rloc["network"]
print rnet["latitude"], rnet["longitude"]


Otro pequeño ejemplo es leer la orientación del sensor aunque no he podido comprobar su exactitud o funcionamiento, pero nos sirve como prueba:

import androidhelper
dr = androidhelper.Android()
dr.startSensingTimed(1, 250)
sensor = dr.sensorReadOrientation().result
l = dr.readSensors()
print l.result
lr = l.result
azi= lr['azimuth']
print azi

droidtrack_busEl siguiente script de prueba que he realizado está basado en ejemplos vistos en la wiki de Qpython y también en este antiguo post, Droidtrack, sobre la captura de datos GPS. Lo que conseguirás con el siguiente script es simplemente ir capturando los datos del sensor gps de tipo “gps” cada 30 segundos con un total de 50 puntos, siendo el resultado un fichero de texto como el de la imagen que aparecerá en nuestra tarjeta de memoria.



print "This is console module"

import androidhelper, time
droid = androidhelper.Android()
c = 0
while c<50:

  l = droid.readLocation()
  R =l.result
    R =R["gps"]
    Lat= R["latitude"]
    #R1 =R["network"]
    outstr = str(Lat) +","+ str(Lon)
    droidfile = '/sdcard/droidtrack_bus1.txt'
    print outstr#, str(Lat1) , str(Lon1)
    fh = open(droidfile,'a')
    res= fh.write(outstr +'\n' )
    res = fh.close()
    print c
    print c
    print R

Para este caso he querido realizar una representación rápida de los datos utilizando CartoDB quedando algo así:


Pensar la cantidad de opciones que nos abre tener un dispositivo programable y móvil bajo un lenguaje como Python, con el que poder realizar por ejemplo una interfaz con un formulario realizado con la librería kivy para la captura de coordenadas gps mediante androidhelper, teniendo la posibilidad de convertirlos al momento a direcciones mediante geopy y analizar las estadísticas de la zona mediante numpy, todo esto mediante vuestro móvil en el propio lugar donde estés y de forma automatizada.

Todo esto es por ahora una simple prueba con lo que he podido encontrar, falta mucho por aprender e investigar, seguro que existen muchas más opciones o documentación que desconozco. Me encantaría conocer si lo habéis probado o si le encontráis posibles utilidades.

Os mantendré informados con las próximas pruebas que realice.

consul_datoHoy hablaremos del trabajo final de grado de Pablo Torrecillas Maiques, graduado en Ingeniería Geomática y Topografía, el cual lleva como título: “Creación de base de datos con posicionamiento a través de formularios y posterior visualización“.

A continuación, se hace una breve introducción en modo de resumen para llamar la atención del lector, y si estáis interesados en el proyecto podéis enviar un email a su autor para más información a la dirección que aparece al final del artículo.

Este trabajo final de carrera, tiene como objetivo relacionar geoportales web con bases de datos utilizando software libre. La idea para llevar a cabo este objetivo surgió de la necesidad de tener un registro de lugares o de sitios propios, pensado para el mercado de las aplicaciones móviles, que como es conocido, está en constante crecimiento.

consul_dato_resulLo que se buscaba con este proyecto era tener una lista personal de nuestros gustos en el móvil, es decir, recordar cuáles fueron los locales que gustaron y cuáles no. Esta lista tiene el deber de acabar con el dilema de no saber dónde ir o qué hacer por una zona determinada en un momento determinado.


Debido a la falta de conocimientos informáticos impartidos en el grado de Topografía, y sobre todo en el ámbito de las aplicaciones móviles, se apostó por la realización de formularios web. Los formularios permitirán la gestión y consulta de la base de datos, para a su vez, enlazar estas consultas con un visor, con el fin de mostrar las posiciones geográficas en un plano. Es decir, que el marco de trabajo para llevar el reto hacia delante sería web.

El geoportal o parte cliente consta de dos componentes, los formularios y el visor OpenLayers. Estos dependen de un navegador web para poder ser utilizados por el usuario. La implementación de los formularios se realizó a través de lenguaje servidor PHP, lenguaje SQL y HTML. Para el visor SIG, el lenguaje utilizado fue Javascript.


Dicho esto se invita a todos los lectores a que si desean más información no duden en escribir un correo electrónico a la dirección de su autor Pablo Torrecillas, o contactar con él por LinkedIN donde estará encantado de resolver sus dudas. También podéis consultar su Curriculum Vitae si estáis interesados para ofertas de trabajo.

Desde @UNIGISGirona han realizado un GEOwebinar sobre “SIG en dispositivos móviles”, ya está toda la información disponible online, las diapositivas y el vídeo.

Una muy buena iniciativa que nos ayuda a meternos más en el mundo SIG. Os adjunto el comunicado y el material:

Los SIG en dispositivos móviles y más concretamente en tabletas se han convertido en una eficaz herramienta para la recogida de datos en campo y su integración directa en un SIG corporativo, permitiendo al usuario no solo ahorrar tiempo en la entrada de datos, sino integrarlos de forma directa en el SIG y visualizar en tiempo real las actualizaciones desde cualquier otro dispositivo conectado a la red.La GEOwebinar trata aspectos relacionados con el desarrollo de una aplicación SIG web para gestionar datos geográficos y alfanuméricos desde un dispositivo móvil tipo tableta, partiendo de la experiencia del SIGTE de la Universitat de Girona en desarrollos similares.



SIG en dispositivos móviles – GEOwebinar UNIGIS from SIGTE – Universitat de Girona on Vimeo.


La próxima cita será :

  • Cosas que hacer con OpenStreetMap
  • Martes, 16 de julio 2014. A las 13h (+2 GMT)
  • A cargo de Lluís Vicens, tutor UNIGIS Girona y analista SIG del Servicio de SIG y Teledetección (SIGTE) de la Universidad de Girona.


Para los que sigáis el vídeo, nos comentan una solución por si tenéis problemas a la hora de editar las geometrías en Open Layers:

Alexandre Busquets nos comenta, en relación a uno de los aspectos tratados durante la sesión, que en el caso que tengáis problemas con OpenLayers 2.13 en el momento de editar las geometrías en formato vectorial podéis optar por desactivar la aceleración GPU mediante CSS.

El código es el siguiente:

.olTileImage {
    -webkit-backface-visibility: visible !important;
    -webkit-transform: none !important;
    -webkit-perspective: none !important;

svg {
    -webkit-transform: none !important;