Friday, June 14, 2013

Haciendo un mapa con D3,



1 - Buscar los datos límitrofes del mapa. (En mi caso, esto lo quiero hacer para Venezuela y Argentina) tomé los datos de un archivo shapefile:

sitio que tiene estos datos: http://www.gadm.org/country
ó acá: http://www.naturalearthdata.com

de acá tomé el de argentina ya que el de IGN tenía un detalle con la provincia tierra del fuego.

Otra herramienta para hacer mapas sencillos: sin mucha animación es:jvectormap.com
realmente sencillos pero fácil de usar.

Y esta librería es más sencilla todavía solo importar y usar, solo viene con mapas de usa y por regiones, mundial, sur américa, y europa.

Argentina: IGN AR

Tomé los shapefile y los llevé al formato geoJson con FWTools. instalarlas en linux y en la ventana es bastante sencillo. Y con la línea de comando:
ogr2ogr -f geoJSON provincias.geojson provincias.shp
En caso de los archivos de venezuela el que posee extensión  
ogr2ogr -f geoJSON estados.geojson estados.shx
2 - Convertir Archivos geoJSON a TopoJSON.
3 - Usar D3.
Antes de hacer copy and paste de los ejemplos,
 y luego no entender porque tienes una patalla 
en blanco mejor entender que elementos componen 
un mapa en d3 (requeridos) y que cosas son 
opcionales que permiten personalizar.
De la imagen anterior, todo mapa en d3 tiene un
 "path" (generador de ruta) o una "projection" 
(proyección) son requeridas.
PROJECTIONS: esto permite que coordenadas esféricas
 sean proyectadas a un plano cartesiano. Siendo esto
 necesario para mostrar figuras esféricas en un plano 
2D. En las visualizaciones 3D esto no sería necesario.
PATH:  Toma las figuras geométricas proyectadas en 2D 
y las formatea correctamente para el formato SVG ó CANVAS.

STREAMS: para computarizar áreas proyectadas, 
centroides, límites consistentes a la geometría 
mostrada, y puede incluso filtrar fíguras geometricas 
dependiendo de la escala.

Un ejemplo de Mapas con D3: La Nación Censo AR
Otro ejemplo pero seguro no el mejor código, 
lo veo y sé que hay formas de mejorarlo:
Mapa Argentina