Cómo conectar ArcMap y ArcGIS Pro con PostGIS

PostGIS es una extensión que convierte el sistema de base de datos PostgreSQL en una base de datos espacial. La combinación de ambos es una solución perfecta para el almacenamiento, gestión y mantenimiento de datos espaciales. Hay muchos motivos para comenzar a utilizar PostGIS.

Existe un gran número de clientes SIG de escritorio y servidores de mapas web que pueden trabajar con PostGIS. Entre ellos destacan ArcGIS y QGIS. Si te interesa conectar QGIS con PostGIS revisa este tutorial.

Para usar capas de una base de datos PostGIS en ArcGIS, previamente debemos tener lo siguiente:

  1. Tener instalado ArcMap o ArcGIS Pro (si no lo tienes puedes instalarlo desde aquí).
  2. Tener instalado PostgreSQL (puedes descargarlo desde esta enlace).
  3. Haber creado una base de datos y dotarla de capacidades espaciales.
  4. Disponer de tablas en esta base de datos.

Asumiendo que ya tenemos PostgreSQL instalado, una base de datos espacial creada y las capas importadas a la base de datos podremos realizar la conexión a PostGIS desde ArcGIS para visualizar esas capas.

Vamos a ver en primer lugar cómo conectar ArcMap con PostGIS para visualizar las tablas almacenadas en PostGIS.

Conectar ArcMap con PostGIS

Tenemos dos opciones:

1. Crear una conexión a una base de datos utilizando la opción Database connection.

Para ello debemos seguir estos pasos:

En el catálogo debes crear una nueva conexión haciendo clic sobre Add Database Connection:

A continuación se abrirá una ventana en la que rellenaremos los siguientes parámetros:

  • Database Platform: PostgreSQL.
  • Instance: localhost (el nombre de nuestro servidor).

Si el clúster de base de datos PostgreSQL está escuchando en un puerto que no sea el predeterminado (5432), debemos incluir el número de puerto en la instancia. Por ejemplo, si tenemos PostgreSQL instalado en el servidor localhost y está escuchando en el puerto 5433, escribe localhost,5433 en el cuadro de texto.

  • Authentication Type: Database authentication.
    • User name: postgres (usuario por defecto).
    • Password: postgres (contraseña por defecto).

Una vez introducidos estos datos, haremos clic sobre el desplegable Database, y aquí se listarán las bases de datos que tengamos en PostgreSQL:

Una vez seleccionada haremos clic en OK y se mostraran nuestras tablas en el árbol:

En ArcCatalog, haciendo clic sobre una de las tablas ya podremos visualizar las geometrías.

En ArcMap, arrastrando una de las capas a la tabla de contenidos podremos ver las geometrías:

arcgis con postgis

2. Añadir las tablas de PostGIS como una Query Layer.

Para añadir las tablas de PostGIS como una Query Layer debemos ir al menú superior File > Add Data > Add Query Layer…

Se abrirá una ventana New Query Layer con los campos en blanco, el primer paso es crear una conexión, por lo que debemos hacer clic sobre el botón Connections…

Seleccionaremos la conexión que acabamos de crear, que se denomina Connection to localhost:

Y hacemos clic en OK.

Una vez establecida la conexión y con la lista de capas en la izquierda hacemos doble clic sobre una tabla para añadirla como una consulta.

A continuación, en el campo Name especificamos un nombre y pinchamos  en Finish:

new query layer arcgis con postgis
Conexión realizada utilizando ArcGIS 10 y PostGIS

 

Conectar a la base de datos PostGIS desde ArcGIS Pro

Podemos utilizar el cuadro de diálogo Conexión de base de datos de ArcGIS Pro para conectar a la base de datos, como se describe a continuación:

Abrimos el panel Catálogo en ArcGIS Pro.

Utilizar el panel Catálogo—ArcGIS Pro | Documentación

Hacemos clic con el botón derecho en DatabasesNew Database Connection.

Se abrirá una nueva ventana, similar a la que hemos visto en ArcMap en la que introduciremos los mismos parámetros:

ArcGIS Pro - import to postgres database error : r/gis

  1. En Database Platform seleccionamos PostgreSQL.
  2. En el cuadro de texto Instance, introducimos la url donde este instalado PostGIS (en nuestro caso servidor local), el nombre del usuario y la contraseña y en el desplegable aparecerá las diferentes bases de datos creadas, se elige la que queremos cargar.
  3. Si el clúster de la base de datos de PostgreSQL está escuchando en un puerto diferente del puerto predeterminado (5432), debemos incluir el número de puerto en la instancia. Por ejemplo, si PostgreSQL está instalado en el servidor localhost y escucha en el puerto 49200, escriba localhost,49200 en el cuadro de texto Instancia.

  4. En Authentication Type seleccionamos Database authentication.
  5. Proporcionamos un nombre de usuario y contraseña válidos para la base de datos en los cuadros de texto User Name y Password, respectivamente. Los datos normalmente serán postgres / postgres
  6. Elegimos el nombre de la base de datos del clúster de base de datos de PostgreSQL con la que deseemos conectarnos.
  7. Hacemos clic en OK para crear el archivo de conexión.

9 comentarios en «Cómo conectar ArcMap y ArcGIS Pro con PostGIS»

  1. Hola Aurelio, a mi tambien me sale sale el mismo error que reporta Anna y no le he logrado resolver, tengo Arcgis 10.1 con el SP1, el sistema operativo es Windows 7 profesional con SP1

  2. Hola, gracias por el aporte, es muy buena esta información les comento que todo funciona bastante bien con el SpatialKit 4.0, Postgris 2. ArcMap 10.1. Me permite realizar la conversion de SHP a una Tabla de la BD. Posteriormente me permite crear la conexion con el SpatialKit 4.0 como se muestra en el tutorial.
    Sin embargo tengo dos problemas:

    1.- yo ncesito poder editar esta información y registre en la BD estos cambios.

    2.- Tambien requiero manejar mas de 100 registros, ya que esta version es solo para 100.

    Agluna sugerencia?
    gracias

    • Hola Robin,
      Gracias por el comentario.
      1- Puedes editar la información como si se tratase de un archivo vectorial.
      2 – Si te registras en SpatialKit 4.0 puedes acceder a los registros completos de la tabla. El registro es gratuito.
      Un saludo

  3. Hola, he estado trabajando con .shp los cuales migro a través de la herramienta de Posgis de manera exitosa (o eso creo) a una BD en Postgres. Al realizar la conexion de Arcmap con postgres este muestra en el árbol de Arcatalog tablas dentro de la BD…. he intentado visualizar los mapas contenidos en las tablas por el método de Query Layer y SpatialKit 4.0 y no he tenido éxito…

    Me interesa mas el método de SpatialKit 4.0 pero al momento de agregar los layers (pantallaso Add ST Layer) no me muestra nada en la pestaña «spatial» todo me lo muestra en «non stpatial» y por consiguiente ahí quedo estancado con ese proceso… si alguien sabe que estoy haciendo mal o me pueda brindar una ayuda, le agradecería mucho….gracias

    • Hola Manuel,
      Si la pestaña spatial no te muestra nada, posiblemente no se han importado bien los SHP, utiliza el importador de PostGIs para realizar la tarea.
      Saludos

  4. Hola Aurelio, por un lado feliz que se esté trabajando en la idea de conectarse a PostGis desde ArcMap 10, pero por otro lado triste porque no consigo conectarme…
    Lo he probado desde la oficina y desde casa y me aparece siempre el mismo mensaje:
    «valor demasiado grande o demasiado pequeño para Int16»
    Supongo que no tendrás idea de cuál puede ser el problema no?
    Lo intento desde ArcGIS 10.0, que en su web dicen que funciona con esa versión…
    Gracias!
    Anna.

  5. Excelente este método, no lo conociaa…todo esta bien , descargo todo, me lo reconoce el arcgis 10, baje la versión SpatialKit correspondiente….

    Solo que cuando ya en le parte final trato de agregar la tabla con el campo «the_geom» que me da la información cartográfica me sale un error :S

    ERROR: 42883: function st_srid(geometry) does not exist.

    porfa lo necesito urgente para mi trabajo pues manejo una base de datos de alumbrado publico y necesito hacer modificaciones espaciales urgente

    • Gracias Andrés,
      Creo que el error tiene que ver con la versión de PostGIS. Para trbajar con PostGIS 2 necesitas la versión 10.1 con el último Service Pack.
      Un saludo

Los comentarios están cerrados.