¿Se conecta a la base de datos PostGIS desde ArcMap para visualizar y consultar sin ArcSDE?

37

¿Cómo puedo conectarme a una base de datos PostGIS desde ArcMap usando ArcGIS Desktop 9.3 y posterior?

Me gustaría poder realizar consultas espacialmente habilitadas y recibir los resultados (p. Ej., Uniones espaciales y no espaciales, filtros, etc.) en lugar de simplemente descartar el contenido de una tabla.

No quiero usar las extensiones espaciales de ArcSDE, quiero usar las extensiones espaciales de PostGIS en ArcGIS Desktop.

fmark
fuente

Respuestas:

29

Si está utilizando ArcGIS 10.0 o posterior, puede conectarse directamente a los datos de PostGIS utilizando una capa de consulta, hay más información disponible sobre esto en la ayuda de cada versión:

Para usar el tipo de geometría PostGIS, el administrador de la base de datos debe instalar PostGIS en el clúster de base de datos PostgreSQL. PostGIS es una instalación de código abierto de terceros. Una vez instalado, el administrador de la base de datos puede usar la base de datos de plantilla PostGIS para crear una base de datos que contenga el tipo de geometría PostGIS, o configurar una base de datos existente para usar el tipo de geometría PostGIS.

CDBrown
fuente
22

ArcGIS 10.1 y ArcGIS 10.2 son compatibles de forma nativa con los tipos de datos PostGreSQL y PostGIS. En la ayuda para ambas versiones se incluye un tutorial sobre cómo configurar y obtener tablas para usar los tipos de geometría PostGIS.

om_henners
fuente
55
Dada la alta visibilidad de este QI, animo a desarrollar esta respuesta, por lo que es mucho más que un "ver este enlace". Además de los archivos de ayuda vinculados, también hay Edición de datos PostGIS en ArcGIS Desktop. y Uso de ArcGIS y QGIS juntos en un entorno de edición multiusuario?
Matt Wilkie
ArcGIS ahora tiene soporte nativo ahora (10.1+) y los requisitos se pueden ver aquí: desktop.arcgis.com/en/desktop/latest/get-started/… . Las notas del parche 10.3 muestran correcciones de errores relevantes de 10.2 gisupdates.esri.com/ArcGIS/ArcGIS103pr_releasenotes.pdf
James Milner
18

Eche un vistazo a esta publicación en mi blog: http://www.paolocorti.net/2008/06/06/spatial-database-for-postgres-and-arcgis-users-how-to-choose/

Básicamente tienes 2 opciones:

  1. use PostGis con ArcSde (por lo que necesita una licencia de ArcSde y ArcEditor si necesita editar datos)
  2. use zigGIS: http://www.obtusesoft.com/ (tenga en cuenta que no está probado en ArcGis 10.0). Solo necesitará un cuadro ArcView para conectarse, incluso para escribir datos.

Tenga en cuenta que si necesita soporte de geodatabase (dominios, topología, etc.) o soporte de ArcCatalog, la primera solución (con ArcSde) es la única forma de hacerlo en este momento.

Por lo que he escuchado (no lo probé directamente) en ArcGis Desktop 10, puede hacer una conexión directa de solo lectura a PostGis sin la puerta de enlace ArcSde.

zigGIS ya no está activo y el sitio web está desconectado

capooti
fuente
44
-1, no porque fuera una mala respuesta, sino porque el paso del tiempo y los cambios consiguientes lo han hecho así (zig descontinuado, ahora soporte de arcgis nativo para la geometría de Post) y esta respuesta ya no debería estar en la parte superior.
Matt Wilkie
9

Tengo algunas publicaciones sobre cómo hacerlo con 9.3. El primero está aquí y puedes llegar al resto desde allí: http://geobabble.wordpress.com/2008/05/28/using-arcsde-93-with-postgresql-part-1/

Lo hice una vez con 10.0 y no he tenido problemas. Diré que, cuando use PostgreSQL y PostGIS con ArcSDE, recomiendo ceñirse a las versiones compatibles con Esri.

Bill Dollins
fuente
Seguí el blog de Bills y la documentación de esri para que Postgresql y PostGIS funcionaran correctamente con ArcSDE. Estoy de acuerdo en que necesita usar la versión compatible con esri, aunque a veces puede ser difícil de encontrar, por ejemplo, Postgresql 8.4.1 fue difícil de localizar.
Ando
5

Lo más fácil sería zigGIS de Obtuse Software . Actualmente tiene que pagar por ello, pero se dice que la versión 3 será de código abierto. .


De acuerdo con Google Code Archive enziggis :

zigGIS v1.2 ya no es compatible, aunque permanecerá disponible aquí para descargar. zigGIS v2.0 ahora es un producto comercial e incluye importantes mejoras de estabilidad, aumentos de rendimiento y capacidades de edición completas. Para obtener más detalles, consulte el sitio web de Obtuse Software .

y el enlace al sitio web de Obtuse Software parece estar roto.

om_henners
fuente
La versión 3 será de código abierto. El único problema con esto en este momento es que no se administra a través de ArcCatalog, lo que significa que debe usar PgAdmin o SQL para administrar su base de datos. Aparte de eso, eres bueno
TheSteve0
Para agregar a los comentarios de SteveO, aquí está la hoja de ruta ZigGISv3 : abegillespie.blogspot.com/2010/06/on-to-30.html El modelo de proveedor será una gran mejora.
Jay Cummins
¿Todavía está disponible la versión gratuita 1.0?
fmark
Sí, la versión gratuita está disponible aquí: code.google.com/p/ziggis Pero está muy viejo, ya no lo admitimos y no puedes editar (que era la característica principal introducida en la versión 2.0).
xanadont
Recientemente, vi esta publicación a través de otra fuente de la lista que decía "zigGIS ha alcanzado oficialmente su fin de vida ya que la próxima versión de ArcGIS debería admitir la interoperabilidad de lectura / escritura directa con PostGIS (lo que hace que zigGIS sea discutible). groups.google.com/group/ziggis/browse_thread/thread/…
RyanDalton
4

ArcGIS 10.1 SP1 puede conectarse a bases de datos PostGIS 2.0.0 de forma nativa, pero la conexión es de solo lectura y funciona principalmente como un front end más limpio para las capas de consulta (de hecho, solo carga cualquier capa como capa de consulta). La conexión de la base de datos solo le permite ver todas las tablas y capas de la base de datos en el catálogo.

postgis1 postgis2 postgis3

Como alternativa, también existe arcgis-ogr , que permite conexiones a todos los tipos de vectores OGR como un complemento de ArcGIS. arcgis-ogr. También es de solo lectura en este momento.

DPierce
fuente
3

En primer lugar: solo podrá usar ArcGIS con PostgreSQL utilizando conexiones OLE DB, lo que significa que solo podrá leer tablas y columnas comunes (incluso podrá leer las columnas espaciales, pero ArcGIS no puede hacer nada para ellos,

Para usar ArcGIS y PostgreSQL + PostGIS (lo que significa que necesita ver datos espaciales), necesitará ArcSDE o ZigGIS .

Con ambas opciones puede consultar, editar y analizar datos almacenados en PostGIS, dentro de ArcMap u otras herramientas de ESRI.

ArcSDE es un middleware proporcionado por ESRI, que cambia todo el flujo de trabajo (de instalación, configuración de una geodatabse, etc.) de trabajo y ZigGIS es una herramienta de escritorio (es decir, solo se usa cuando las herramientas de escritorio de ESRI están involucradas).

George Silva
fuente
1
Recientemente, vi esta publicación a través de otra fuente de la lista que decía "zigGIS ha alcanzado oficialmente su fin de vida ya que la próxima versión de ArcGIS debería admitir la interoperabilidad de lectura / escritura directa con PostGIS (lo que hace que zigGIS sea discutible)". groups.google.com/group/ziggis/browse_thread/thread/…
RyanDalton
3

Si tiene el nivel de escritorio ArcEditor o ArcInfo, puede usar SQL Server Express. Aunque solo un usuario puede editar a la vez, el bloqueo y el desbloqueo pueden ser mejores; puede probar esto primero. Hay mucha documentación sobre cómo hacerlo, y no tienes que ser un dba, aunque me gustan los postgres. Sin ofender, amigos de QGIS;)

Además, asegúrese de que su representante de ventas de Esri le dé una cotización para "ArcGIS Server Workgroup", no Enterprise. Vea a continuación: puede tener 10 conexiones de edición simultáneas. Debería ser más como $ 3-5k. Precios http://www.esri.com/software/arcgis/arcgisserver/pricing

Consulte también esta publicación para obtener una buena explicación de las licencias y enlaces sobre SDE y la licencia de escritorio ArcSDE de SQL Server Express

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/What_are_database_servers_in_ArcGIS/003n0000004r000000/

"Cree geodatabases y realice otras tareas administrativas para los servidores de bases de datos a través del nodo Servidores de bases de datos en la ventana Catálogo o ArcCatalog. Realizar la administración del servidor de bases de datos y sus geodatabases a través de ArcGIS Desktop significa que no se necesita experiencia adicional en software o administración de bases de datos para usted para crear y usar estos tipos de geodatabases de ArcSDE.

Las conexiones a las geodatabases en un servidor de bases de datos son siempre conexiones directas; usan los archivos de la biblioteca ArcSDE en el cliente para realizar la conexión. En este caso, las aplicaciones cliente son ArcGIS Desktop en el nivel de licencia ArcEditor o ArcInfo, ArcGIS Engine y ArcGIS Server Workgroup.

Los medios para estos productos incluyen archivos de instalación para SQL Server Express. Una vez que haya creado la instancia de SQL Server Express y ejecute el asistente para permitir que la instancia almacene geodatabases, las bibliotecas dentro de la aplicación cliente le permiten conectarse y trabajar con los servidores de bases de datos y crear y trabajar con geodatabases en el servidor de bases de datos.

Con ArcGIS Desktop (ArcEditor y ArcInfo) y ArcGIS Engine, puede configurar un servidor de base de datos y crear geodatabases de ArcSDE a las que pueden acceder algunos usuarios y editar un usuario a la vez .

Con ArcGIS Server Workgroup que usa ArcGIS Desktop, puede configurar un servidor de base de datos y crear geodatabases de ArcSDE a las que pueden acceder hasta 10 usuarios a la vez, todos los cuales pueden editar simultáneamente . Al usar los servidores de bases de datos con licencia a través de ArcGIS Server Workgroup, también puede conectarse a las geodatabases usando aplicaciones web, para las cuales no hay límite de conexión ".

awesomo
fuente
2
He tenido éxito al usar geodatabases de ArcSDE SQL Server Express con múltiples usuarios / editores, pero han pasado algunos años desde que lo configuramos. El GDB se crea en la estación de trabajo de un usuario, otros usuarios de la oficina se conectan a su instancia y cada usuario edita en su propia versión, que luego se publica en la versión predeterminada cuando se desea. Todo esto se instaló desde los medios de instalación de Desktop, no involucrado ArcGIS Server, estoy bastante seguro de que no hubo implicaciones de licencia más allá de que cada usuario tenga su licencia de nivel ArcEditor / ArcInfo de Desktop.
MC5
3

Escribí un complemento que le da acceso a ArcGIS a más de 50 formatos de vectores (incluido PostGIS). Todavía es experimental, pero puedes probarlo y decirme cómo va.

Hay ventajas de usar este enfoque sobre la funcionalidad incorporada en ArcGIS (consulte las preguntas frecuentes), pero nuevamente, todavía es experimental.

Descarga e instrucciones aquí

Ragi Yaser Burhum
fuente
hola, ¿sigue siendo de solo lectura?
Matt
1
programáticamente puede escribir a través de la funcionalidad ExecuteSQL. Simplemente no he construido una interfaz que permita hacerlo a través de ArcMap. Entonces puede escribir a través del código, pero aún no a través de la GUI.
Ragi Yaser Burhum
3

He estado monitoreando esta publicación y la web más amplia para encontrar una solución a esto, ya que quería una herramienta similar. Hoy me topé con mi (nuestra) solución a través del feed RSS del blog de James Fee . Y creo que la solución que busca es PgMap por ST-Links .

He probado la versión ArcGIS 9.3 y es impresionante. Sin embargo, todavía estoy luchando con las ediciones ya que todavía soy un novato de PostGIS (cosa de la columna de identidad). También viene con un elegante cargador ESRI para PostGIS y, sobre todo, ¡es GRATIS! [Probado con OpenGeoSuite Community Edition 2.4.1]

Erick
fuente
Escuché que st-link solo es gratis por un año. Después de lo cual necesitas tener una licencia. ¿No es verdad?
OPENGISTECH
3

Vaya a Inicio -> Panel de control -> Rendimiento y mantenimiento -> Herramientas administrativas -> Orígenes de datos.

Vaya a la pestaña DSN del sistema.

Haz clic en Agregar.

Desplácese hacia abajo en la lista. Debería poder ver sus controladores ODBC PostgreSQL allí si los instaló. Haga clic en el primer controlador ODBC PostgreSQL de la lista.

Ingrese los detalles de su conexión en el formulario. Si la conexión está en la misma máquina que la base de datos PostgreSQL, escriba localhost en el campo del servidor; de lo contrario, el nombre de la computadora en la red. Tendrá que hacer algunos cambios en el archivo pg_hba.conf para conectarse a su base de datos en la red. Lea sobre esto en los manuales de PostgreSQL en la sección Autenticación de usuario. Una vez hecho esto, haga clic en Finalizar.

Agregue todos los controladores ODBC PostgreSQL que encuentre en la lista de manera similar.

Haga clic en Aceptar. Ahora puede conectarse a la base de datos PostgreSQL a través de los controladores ODBC. Los controladores solo necesitaban ser dirigidos a la base de datos con información de conexión.

Anurag
fuente
3

A partir de la era 2011, pruebe ST-Links SpatialKit . El software es gratuito y funciona con ArcGIS 9.3 / 10.0 / 10.1 / 10.2.

La descarga tiene un buen PDF para documentar las capacidades, que incluyen visualización, edición, etc.

Mike T
fuente
Mike, mirando @ la documentación ST-Links parece que puede tener un potencial increíble. ¿Lo has usado personalmente? ¿Tiene alguna impresión de su velocidad y usabilidad que pueda compartir con la comunidad?
RyanDalton
En realidad, todavía estoy descubriendo el proceso de instalación ... Tengo ArcGIS 9.3 instalado con una configuración personalizada, pero todavía no veo pgMap 1.0 en las Extensiones ... espero que alguien más pueda compartir su experiencia
Mike T
1
Perdone el enlace a mi propio blog, pero eché un vistazo a PgMap después del anuncio de que zigGIS se estaba cerrando. Mis observaciones están aquí: blog.geomusings.com/2011/08/09/taking-a-look-at-pgmap Dado que parece que ArcMap no podrá editar directamente bases de datos espaciales en 10.1, PgMap se ve aún más convincente .
Bill Dollins
2

He hecho esto antes sin demasiados problemas al usar ArcGIS 10.1 y 10.2 desafortunadamente no funciona con 9.3 y postgres 9.2, creo que de memoria.

Usé los controladores de esri. Inicie sesión en el sitio de atención al cliente de ESRI, aunque creo que esto ha cambiado desde que escribí las instrucciones.

  1. Selecciona tu versión
  2. "Descargas de software"
  3. "Archivos de soporte DMBS"
  4. Desplácese hacia abajo hasta que vea "Bibliotecas de cliente PostgreSQLQL (Windows)", debe tener un tamaño de 2.21 MB.

  5. Haga clic en Descargas

    Para PostgreSQL / PostGIS en el archivo descargado debe estar el conjunto de bibliotecas de cliente "pg_client_windows86" que contiene la versión necesaria de 32 bits de libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll y ssleay32.dll. Cópielos en su directorio bin de ArcGIS. En mi computadora usando 10.1 era: C: Archivos de programa (x86) ArcGISDesktop10.1bin Si está usando ventanas de 32 bits, sería algo así como: C: Archivos de programa ArcGISDesktop10.1bin

Una vez que haya hecho esto, debería poder conectarse y agregar datos de su base de datos. Para usar una capa de consulta de datos, primero deberá conectarse a su base de datos. En ArcGIS 10.1 deberá ir a Archivo> Agregar datos> Agregar capa de consulta

Lo único a tener en cuenta es que los datos que se devuelven deben tener un campo único que ArcGIS pueda utilizar como clave principal. En ocasiones, es posible que deba especificarlo si está utilizando algo más que una consulta básica y ArcGIS no puede determinar qué campo usar. Puedes hacer esto:

  1. Primero valide la consulta SQL haciendo clic en el botón Validar (ArcGIS necesita generar una lista de campos que están en la instrucción select para llenar el cuadro de diálogo de opciones avanzadas).
  2. Una vez que se haya validado el SQL, haga clic en Mostrar opciones avanzadas y el botón Finalizar cambiará de Finalizar a Siguiente>
  3. Haga clic en Siguiente> y luego podrá acceder al cuadro de diálogo de opciones avanzadas.
  4. En el cuadro de diálogo de opciones avanzadas, se le proporciona una lista de todos los campos de la tabla. Seleccione un campo que actuará como un campo identificador único; el valor predeterminado es tener todos los campos seleccionados.
  5. También puede establecer el sistema de referencia espacial de sus datos si es apropiado hacerlo.
  6. Haga clic en finalizar y luego se agregará su capa a su mapa.

También puede ejecutar las consultas espaciales contra la base de datos de postgres con relativa facilidad, aunque debe fabricar un campo de identificación sobre la marcha. Por ejemplo, aquí hay un ejemplo de hacer un buffer de 100 km

SELECT row_number() over(order by cities.the_geom)::integer as oid,
ST_BUFFER(cities.the_geom, 100000) AS the_geom,
cities.name
FROM mygis.public.cities As cities

No solo eso, también puede guardar cualquier capa de consulta como un archivo de capa y pasarla también por algunas de las herramientas estándar de ArcGIS. No he probado esto demasiado. Entonces, al agregar columnas y cosas así, pude ver que causa estragos. Creo que podría hacer llamadas SQL espaciales con otras bases de datos como SQLServer y Oracle, también con un poco de violín para crear el campo de identificación sobre la marcha.

Hice un tutorial completo hace un tiempo en: http://www.gisuser.org.nz/resources/tips-and-tricks/look-mum-dad-no-hands

andy3092
fuente
2

Efectivo con ArcGIS 10.4, puede leer y escribir en la geometría PostGIS en bases de datos PostgreSQL compatibles sin necesidad de extensiones adicionales. Solo he usado una licencia avanzada para esto, pero creo que una licencia estándar también puede conectarse a una base de datos de servidor PG que no es de geodatabase y usar ese espacio de trabajo como destino para herramientas de creación de vectores. Es más engorroso, pero también puede usar clientes de licencia básica para escribir en tablas usando SQL con Python (vía arcpy.ArcSDESQLExecute). Las capas de consulta de solo lectura han sido una opción con todos los niveles de licencia desde ArcGIS 10.0.

Vince
fuente
Vince, ¿cuál es el proceso para configurar una conexión de base de datos PostGIS no SDE grabable en ArcGIS 10.4+? Intentar agregar una conexión de base de datos a través de ArcCatalog Advanced 10.5 produce un error "no se permiten conexiones a bases de datos del sistema".
Rudy Stricklan
1
No hay proceso, más allá de crear la base de datos, administrarla para contener datos y conectarse a ella. Si desea probar esto y falla, puede hacer una nueva pregunta aquí (proporcionando todos los detalles). Si está tratando de trabajar en la base de datos maestra como usuario de postgres, primero necesita obtener un libro sobre el uso de RDBMS.
Vince
Gracias vince Sí, el mensaje de error es un poco confuso, ya que estoy tratando de conectarme a una tabla espacial en una base de datos PostGIS de vainilla ("gis"), no en la base de datos maestra. Sin embargo, su consejo es correcto: documentaré el problema y enviaré una nueva pregunta.
Rudy Stricklan
1

GISquirrel hace el trabajo a una fracción del costo de SDE. Es compatible con la conexión arcgis a MSSQL y PostGIS. Muy simple de configurar (capaz de importar a postgres desde shapefile / featureclass) y simple de mantener. Para un pequeño número de usuarios que necesitan la capacidad de edición multiusuario, está bien.

Utilizamos GISquirrel / Arcgis para nuestros 'usuarios avanzados' de GIS y QGIS puede conectarse al mismo servidor PostGIS para nuestros 'usuarios básicos', lo que ahorra costos de licencia.

Mate
fuente
¿Pueden sus 'usuarios avanzados' editar en el entorno ArcGIS o todavía es de solo lectura?
user17963
sí GISquirrel permite la edición completa en ArcGIS.
Matt
¡Interesante! ¿Qué pasa con los controles de topología?
user17963
Funciona creando una geodatabase temporal para las características seleccionadas del usuario y bloquea esas características para que el usuario las edite, utilizando ArcGIS puede editar la característica en la geodatabase, una vez que se guardan las ediciones, las características se actualizan en PostGIS. También es posible editar todas las características de una capa a la vez.
Matt
1
Gracias Matt, voy a probar con GISquirrel y ver si funciona con nuestros datos.
user17963
1

GISquirrel hace el trabajo muy bien para MSSQLserver, y estoy bastante seguro de que funcionará bien para Postgres. Trabajo en un entorno mixto de ESRI / Qgis, y también uso GIS Squirrel para importar archivos de forma, etc. a la base de datos. En SQLserver GISsquirrel realiza un seguimiento de las columnas de geometría, utilizo esta información para actualizar la tabla geometry_columns utilizada por Qgis. Muy útil ...

Peter Bange
fuente
1

PgMap fue reemplazado por st-links spatialKit y no solo es compatible con PostGIS, sino que también es compatible con SQL Server 2008. Funciona con ArcMap 9.3 y ArcMap 10. Simplemente cumple con sus requisitos. Compruébalo en www.st-links.com

chun
fuente
0

Creo que tiene varias opciones fuera de usar SDE (aunque señalaré que puede usar PG_Geometry en SDE, por lo tanto, acceder a los datos a través del software ESRI o el software OS compatible con PostGIS). Tiene la extensión de Interoperabilidad de datos ESRI, ZigGIS, y probablemente podría instalar una copia de geoserver o mapserver y conectarse a través de un servicio WMS en ArcGIS. Similar a la publicación anterior sobre zigGIS y la necesidad de administrar consultas a través de pgAdmin, necesitaría usarlo para crear sus consultas con geoserver / mapserver. Idealmente, si estuviera reutilizando las mismas consultas, podría guardarlas como vistas en postgresql y acceder a los datos de esa manera.

wilsongis
fuente
0

ST-Links SpatialKit es una extensión de ArcMap para conectarse directamente a bases de datos espaciales sin ArcSDE, Sin ArcInfo, Sin ArcGIS Server.

De acuerdo con su Licencia , cuesta $ 188 CAD, pero dicen "Continuaremos emitiendo licencias gratuitas para aquellos usuarios que no pueden pagar la tarifa de la licencia. Las licencias gratuitas tienen límites de tiempo. Si solicita una licencia gratuita, indique el motivo en su correo electrónico de solicitud de licencia ".

RyanDalton
fuente
0

Una manera fácil de agregar datos PostGIS a ArcMap es agregar una 'Conexión de interoperabilidad'. Para hacer esto, se requiere la 'Extensión de interoperabilidad de datos'.

Se considera una buena idea agregar un 'Índice numérico' y 'Clave primaria' a la Tabla de base de datos PostGIS antes de crear la conexión.

Vasanth Reddy Donakanti
fuente