Oct 122014
 

El formato shapefile es uno de los más utilizados en sistemas de información geográfica, y la gran mayoría de las aplicaciones de edición de datos geográficos, incluidas aplicaciones open source y gratuitas como QGIS, son capaces de leer y generar ficheros formato shapefile.

Pero en ocasiones puede ser más conveniente utilizar otros formatos para el manejo de información geográfica. En el desarrollo de aplicaciones web, uno de los más utilizados es GeoJSON.

En este artículo se explica con un ejemplo cómo realizar la conversión de un fichero en formato SHP a GeoJSON.

Ficheros de ejemplo en formato shapefile

En primer lugar, vamos a obtener un conjunto de ficheros en formato SHP para ilustrar este artículo. Accedemos al sitio web GADM, desde donde descargamos el fichero correspondiente a las áreas administrativas de Portugal. El fichero descargado se llama PRT_adm.zip, y tiene un tamaño de 34 MB.

Al descomprimirlo, vemos que contiene un conjunto de ficheros para cada uno de los cuatro primeros niveles administrativos de Portugal:

$ unzip PRT_adm.zip 
Archive:  PRT_adm.zip
  inflating: PRT_adm0.csv            
  inflating: PRT_adm0.dbf            
  inflating: PRT_adm0.prj            
  inflating: PRT_adm0.shp            
  inflating: PRT_adm0.shx            
  inflating: PRT_adm1.csv            
  inflating: PRT_adm1.dbf            
  inflating: PRT_adm1.prj            
  inflating: PRT_adm1.shp            
  inflating: PRT_adm1.shx            
  inflating: PRT_adm2.csv            
  inflating: PRT_adm2.dbf            
  inflating: PRT_adm2.prj            
  inflating: PRT_adm2.shp            
  inflating: PRT_adm2.shx            
  inflating: PRT_adm3.csv            
  inflating: PRT_adm3.dbf            
  inflating: PRT_adm3.prj            
  inflating: PRT_adm3.shp            
  inflating: PRT_adm3.shx            
  inflating: read_me.pdf

en donde:

PRT_adm0.* contiene el contorno del país, incluyendo el Portugal continental y las islas Azores y Madeira. En qgis tiene este aspecto:

Portugal-GADM-nivel-0

PRT_adm1.* contiene los contornos de los distritos, y el de las regiones autónomas de Azores y Madeira:

Portugal-nivel-1-Distritos

PRT_adm2.* contiene los Concelhos:

Por último, PRT_adm3.* contiene las Freguesías:

Portugal-nivel-3-freguesias

Conversión de SHP a GeoJSON

Para realizar la conversión, vamos a utilizar la aplicación ogr2ogr, que es parte del paquete gdal-bin que está disponible en los repositorios software de la mayoría de las distribuciones linux.

Nuestro ordenador utiliza un sistema operativo Debian, de manera que realizamos la instalación con la utilidad apt-get:

$ sudo apt-get install gdal-bin

Una vez instalado, utilizamos ogr2ogr para convertir los distintos ficheros shapefile a GeoJSON:

$ ogr2ogr -f GeoJSON PRT_adm0.json PRT_adm0.shp
$ ogr2ogr -f GeoJSON PRT_adm1.json PRT_adm1.shp
$ ogr2ogr -f GeoJSON PRT_adm2.json PRT_adm2.shp
$ ogr2ogr -f GeoJSON PRT_adm3.json PRT_adm3.shp

A continuación, podemos examinar con un editor de texto el contenido de los ficheros GeoJSON generados. Por ejemplo, el fichero PRT_adm1.json:

{
  "type": "FeatureCollection",
  "features": [
  { "type": "Feature",
    "properties": {
        "ID_0": 180, "ISO": "PRT", "NAME_0": "Portugal", "ID_1": 1,
        "NAME_1": "Aveiro", "NL_NAME_1": "", "VARNAME_1": "",
        "TYPE_1": "Distrito", "ENGTYPE_1": "District" },
    "geometry": { "type": "MultiPolygon",
        "coordinates": [ [ [ [ -8.682082, 40.694584 ], ...  [ -8.272008, 41.064754 ] ] ] ] } }
,
...
}

Como vemos, los ficheros generados son ficheros en formato GeoJSON estándar que pueden ser utilizados por cualquier aplicación que acepte este formato de entrada. Por ejemplo, podemos cargarlos en la aplicación on-line “Show me the GeoJSON“:

PRT-nivel-1-GeoJSON

Referencias

Sitio web oficial de GeoJSON

 Publicado por en 4:13 pm

 Deja un comentario

(requerido)

(requerido)