Estoy tratando de configurar una geodatabase empresarial con ArcGIS 10.4.1 y PostgreSQL 9.4 donde puedo usar PostGIS para mis consultas SQL en PostgreSQL y tener la funcionalidad sde.
Tengo un ordenador con Windows.
Mi proceso hasta ahora era:
- instalar postgresql/postgis
- copiar el dll st_geometry a la librería postgresql
- ejecutar la creación de la geodatabase de la empresa
- crear login sde
luego inserté los datos de un archivo GDB en esa conexión databse y funcionó como sde pero fui a usar un simple st_union postgis funciones como esta
select st_union(shape) geom from base_layers.hl_huc
y obtuve este error
ERROR: function st_union(st_geometry) does not exist
LINE 1: select st_union(shape) geom from base_layers.hl_huc
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function st_union(st_geometry) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 8
Por favor, alguien puede decirme instrucciones detalladas sobre cómo puedo conseguir que PostGIS funcione para esta base de datos.
Me encontré con este pdf pero es para versiones antiguas de arc y PostgreSQL y las instrucciones no son muy claras. Por ejemplo en la página 15 uno de los pasos es Edit a SDE config file and a PostgreSQL one
bastante vago...
Ran create extension PostGIS
en la base de datos. Todas las funciones de Postgis están ahí, pero no puedo utilizarlas.
¿Quizás haya una forma de cambiar entre los backends de tipo espacial?
CONCLUSIÓN
El tercer punto de Vince me llevó por el camino de averiguar cómo tener el versionado y la edición de ArcGIS SDE manteniendo el backend de PostGIS. Tenga en cuenta que puede haber hecho más complicado de lo que tenía que ser, pero sin embargo lo resolvió
pasos
- copiar st_geometry de.dll C:\Program Archivos (x86) \ArcGIS\Desktop10.4\DatabaseSupport\PostgreSQL\9.4\Windows64 a C:\Program Archivos \PostgreSQL\9.4\lib (o cualquier versión de arc y postgresql que tengas)
- ejecute la herramienta de esri "create enterprise geodatabase" (esta herramienta creará una nueva base de datos postgresql con el nombre de inicio de sesión sde necesario y proporcionará la contraseña)
- Creé un superusuario llamado postgis, luego creé un esquema en la base de datos llamado postgis y ejecuté create extension postgis *esto podría ser una mala práctica para tener otro superusuario en la DB pero no quería que las funciones de postgis estuvieran en el mismo esquema que el SDE
- ejecute la herramienta esri "exportar palabras clave de configuración de la base de datos". conexión a la base de datos = la base de datos que acaba de crear
- edite el archivo en el bloc de notas, vaya a la línea 27 cambie ST_GEOMETRY por "PG_GEOMETRY", ¡Guardar!
- ejecute la herramienta de esri "importar palabras clave de configuración de la base de datos" para esa conexión de base de datos y cualquier capa que traiga ahora debería tener el backend de postgis por defecto con la funcionalidad de sde.
ahora puedo utilizar el impresionante poder de postgis en el backend y cuando creo una tabla todo lo que tengo que hacer es hacer clic derecho en la capa en la conexión db, gestionar y registrar con geodatabase. Debo tener en cuenta que cuando hago clic en registrar con geodatabase a veces el arcmap se apaga y me da la locura hubo un error grave, por favor, envíe informe de error a ESRI....