Categorías: Tutoriales

Cómo crear una tabla con datos geoespaciales en Postgis y PostgreSQL

Buenas a tod@s 🙂

Siguiendo un poco el hilo de los posts anteriores, ya tenemos instaladas todas las tecnologías que vamos a necesitar y ya hemos creado una base de datos de tipo espacial . Ahora, se trata de poder almacenar puntos geolocalizados dentro de nuestra base de datos.

¿Cuál es el siguiente paso que debemos dar?

Lo primero será crear una tabla en nuestra base de datos, que será la tabla que albergará el tipo de dato geolocalizado. Para ello, basta con hacer clic derecho en el Explorador de objetos en la zona de nuestra base de datos creada, y darle a Nueva tabla. En las siguientes imágenes vemos la información que será necesario rellenar sobre la propiedad y definición, que como podréis observar es la misma que indicábamos al crear la base de datos.

En la pestaña Columnas podemos definir todas aquellas columnas que vaya a tener nuestra tabla y que no sean de tipo geoespacial. Para añadir un tipo de dato espacial, que llamaremos ‘punto’, tendremos que hacerlo mediante la siguiente sentencia SQL:

SELECT AddGeometryColumn ( 'nombre_tabla', 'nombre_columna', 4326, 'POINT', 2);

En la siguiente imagen se muestra la consulta para nuestro caso, con la salida que debe darnos si se ha creado de forma correcta.

Una vez creadas la tabla ‘puntos’ y el tipo de dato ‘punto’, si la seleccionamos en el Explorador de objetos podremos ver las sentencias SQL que internamente se han ejecutado para crearlos.

Como siempre, ¡espero que esta entrada os haya sido de utilidad!

Un saludo 🙂

María Inmaculada Maldonado Rodríguez

Ver comentarios

  • ¿La estructura de las tablas de datos geoespaciales sigue algún estándar? Gracias por tus artículos, Inma.

    • Buenas! pues las tablas no siguen ningún tipo de estándar, más bien son los datos que definimos de tipo espacial dentro de ellas, estos sí que siguen un estándar que explicaré en mi próxima entrada.
      Por adelantarte un poco, te diré que tiene que ver con la tabla spatial_ref_sys (que ya expliqué que se crea automáticamente al crear una nueva base de datos de tipo estpacial) y con el argumento SRID que aparece al crear un tipo de dato espacial (en el ejemplo aparece con el valor 4326).
      Todo esto espero poder explicarlo un poco mejor en siguientes entradas :)

  • Hola, tendrás algún tutorial de como crear una base de datos espacial (una polígonal, una de líneas y una de puntos) y como vaciar la información geográfica para crear un shape file propio? Saludos

    • Buenas!
      Pues la verdad es que sólo las he creado alguna vez haciendo pruebas pero no he llegado a trabajar en profundidad con ellas.

      En mi caso, cree la base de datos de tipo espacial como se explica en el siguiente post: https://www.linuxhispano.net/2014/09/26/como-crear-una-bbdd-espacial-en-postgresql-desde-pgadmin/
      y luego definí el tipo de dato para 'POLYGON' y para 'LINESTRING' tal y como lo hago
      para el tipo 'POINT', es decir:
      AddGeometryColumn(,,,,,)
      Y en type indicarías: 'LINESTRING' o 'POLYGON'.

      Con respecto a volcar la información para crear un shapefile propio no lo he hecho nunca, por lo que no puedo ayudarte, sorry! espero haberte ayudado con la otra duda.
      Un saludo!

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace