ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

El tipo de almacenamiento ST_Geometry

  • Subclases
  • Llamadas de función ST_Geometry
  • ¿Cómo se implementa ST_Geometry?

El tipo de dato ST_Geometry implementa la especificación SQL 3 de los tipos de datos definidos por el usuario (UDT), lo que permite crear columnas capaces de almacenar datos espaciales como la ubicación de un hito, una calle o una parcela de tierra. Proporciona acceso de lenguaje estructurado de consultas (SQL) compatible con la Organización Internacional para la Estandarización (ISO) y con Open Geospatial Consortium, Inc. (OGC) a la geodatabase y a la base de datos. Este almacenamiento amplía las capacidades de la base de datos proporcionando almacenamiento para objetos (puntos, líneas y polígonos) que representan entidades geográficas. Se diseñó para utilizar de un modo eficiente los recursos de las bases de datos, para ser compatible con funciones de base de datos como la replicación y la partición, y para brindar un acceso rápido a los datos espaciales.

Esri ha implementado un tipo de ST_Geometry en Oracle, PostgreSQL y SQLite. Es el tipo de datos de ST_Geometry que se explica en la ayuda de ArcGIS.

ST_Geometry en sí misma es una superclase abstracta sin instancias creadas. Sin embargo, se pueden crear. La creación de una instancia de tipo de datos se puede definir como una columna de tabla y posee valores de su tipo insertados en ella.

Aunque puede definir una columna como tipo ST_Geometry, no puede insertar valores ST_Geometry en la columna ya que no se pueden crear instancias. En su lugar, debe insertar los valores de las subclases.

En el gráfico siguiente se muestra la jerarquía del tipo de datos ST_Geometry y las subclases:

ST_Geometry
La superclase ST_Geometry y sus subclases

Subclases

Las subclases de ST_Geometry se dividen en dos categorías: las subclases de geometría base y las subclases de conjuntos homogéneos. Las geometrías base incluyen ST_Point, ST_LineString y ST_Polygon, mientras que los conjuntos homogéneos incluyen ST_MultiPoint, ST_MultiLineString y ST_MultiPolygon. Como lo indica su nombre, los conjuntos homogéneos son conjuntos de geometrías base. Además, para compartir las propiedades de geometría base, los conjuntos homogéneos poseen algunas de sus propias propiedades.

Cada subclase almacena el tipo de geometría que implica su nombre; por ejemplo, ST_MultiPoint almacena multipuntos. Una lista de las subclases y sus descripciones se encuentra en la siguiente tabla:

SubtipoDescripción

ST_Point

  • Geometría de dimensión cero que ocupa una ubicación simple en un espacio de coordenadas.
  • Posee un valor de coordenada x, y, siempre es simple y tiene un límite NULL.

ST_LineString

  • Objeto de una sola dimensión almacenado como secuencia de puntos que definen una ruta interpolada lineal.
  • El tipo ST_LineStrings tiene longitud.
  • El tipo ST_LineString es simple si no se interseca con el interior.
  • Los extremos (el límite) de un tipo ST_LineString cerrado ocupan el mismo punto en el espacio.
  • Un tipo ST_LineString es un anillo si es cerrado y simple.
  • Los extremos normalmente forman el límite de un tipo ST_LineString a menos que éste sea cerrado, en cuyo caso el límite es NULL.
  • El interior de un tipo ST_LineString es la ruta conectada que está comprendida entre los extremos, a menos que esté cerrada; en cuyo caso el interior es continuo.

ST_Polygon

  • Superficie de dos dimensiones almacenada como secuencia de puntos que definen el anillo de delimitación exterior y cero o más anillos interiores.
  • El tipo ST_Polygon posee área y siempre es simple.
  • La parte exterior y los anillos interiores definen el límite de un tipo ST_Polygon y el espacio cerrado entre los anillos define el interior de ST_Polygon.
  • Los anillos de un tipo ST_Polygon pueden intersecarse en un punto tangente pero nunca cruzarse.

ST_MultiPoint

  • Conjunto de ST_Points.
  • Tiene una dimensión de 0.
  • El tipo ST_MultiPoint es simple si ninguno de sus elementos ocupa el mismo espacio de coordenadas.
  • El límite de un ST_MultiPoint es NULL.

ST_MultiLineString

  • Conjunto de ST_LineStrings.
  • El tipo ST_MultiLineStrings tiene longitud.
  • Los tipos ST_MultiLineStrings son simples si solo se intersecan en los extremos de los elementos de ST_LineString.
  • Los tipos ST_MultiLineStrings no son simples si los interiores de los elementos de ST_LineString se intersecan.
  • El límite de un ST_MultiLineString son los extremos no intersecados de los elementos de ST_LineString.
  • El tipo ST_MultiLineString es cerrado si todos los elementos de ST_LineString son cerrados.
  • El límite de un ST_MultiLineString es NULL si todos los extremos de todos los elementos se intersecan.

ST_MultiPolygon

  • Conjunto de polígonos.
  • El tipo ST_MultiPolygons tiene área
  • El límite de un ST_MultiPolygon es la longitud acumulativa del anillo exterior e interior de sus elementos.
  • El interior de un tipo ST_MultiPolygon se define como los interiores acumulados de su elemento ST_Polygons.
  • El límite de los elementos de un tipo ST_MultiPolygon solo se puede intersecar en un punto tangente.

Subtipos ST_Geometry

Observe que cada subclase hereda las propiedades de la superclase ST_Geometry pero también posee sus propias propiedades. Las funciones que operan en el tipo de datos ST_Geometry aceptan cualquiera de los tipos de entidad de subclase. Sin embargo, algunas funciones se han definido en el nivel de subclase y solo aceptan ciertas subclases.Por ejemplo, la función ST_GeometryN solo toma los valores del subtipo ST_MultiLinestring, ST_MultiPoint o ST_MultiPolygon como entrada.

Para descubrir la subclase de un tipo ST_Geometry, puede utilizar la función ST_GeometryType. La función ST_GeometryType toma una ST_Geometry y devuelve la subclase con instancia creada en forma de cadena de caracteres. Para obtener información acerca de cuántos elementos de geometría base existen en un conjunto homogéneo, puede utilizar la función ST_NumGeometries, que toma un conjunto homogéneo y devuelve la cantidad de elementos de geometría base que contiene.

Llamadas de función ST_Geometry

Las funciones ST_Geometry en Oracle y PostgreSQL se implementan en SQL. Este es un lenguaje a nivel de la base de datos. En Oracle, es Lenguaje procedural / Lenguaje estructurado de consultas (PL/SQL). En PostgreSQL, es PL/pgSQL.

Se accede a la base de datos directamente al acceder a las columnas ST_Geometry en Oracle o PostgreSQL mediante funciones de SQL; por tanto, la base de datos debe poder acceder a la biblioteca de ST_Geometry. En Oracle, la base de datos también genera un proceso extproc.

En SQLite, las funciones de ST_Geometry se implementan en C en la biblioteca ST_Geometry. Debe acceder a la biblioteca ST_Geometry para usar las funciones de ST_Geometry.

Oracle 11g

Las funciones se implementan en PL/SQL, que invoca funciones en archivos de biblioteca compartidos externos escritos en el lenguaje de programación C. Las funciones se invocan desde PL/SQL por medio de un alias que asigna el nombre de la biblioteca (st_shapelib en el caso de ST_Geometry en Oracle) al nombre del archivo de biblioteca. (Consulte la documentación para el comando CREATE LIBRARY de Oracle para obtener más información). La primera vez que se invoca una función de tipo espacial que requiere st_shapelib, la base de datos solicita al agente de escucha que genere un proceso extproc para la sesión SQL. Se otorga a extproc la ubicación de st_shapelib, el nombre de la función que se invocará y sus parámetros. El extproc carga st_shapelib e invoca la función. Cuando la función externa se completa, el extproc devuelve los resultados y permanece activo, a la espera de llamadas de función adicionales durante la sesión. El proceso extproc termina cuando la sesión SQL se desconecta.

Esto requiere la siguiente configuración:

  • La base de datos debe conocer la ubicación del archivo que contiene st_shapelib para que pueda pasar esta información al proceso de escucha y a su vez al extproc.
  • Si file_spec para st_shapelib en la tabla user_libraries no coincide con la ubicación física del archivo de st_shapelib en el servidor, los operadores y las funciones de ST_Geometry no funcionarán. Por lo tanto, debe actualizar la definición de biblioteca en las bibliotecas de usuario de Oracle para incluir la ruta de biblioteca correcta del archivo que contiene st_shapelib por medio del comando CREATE LIBRARY.
    Nota:

    Alterar la definición de la ruta de la biblioteca invalida los cuerpos de paquete que hacen referencia a la biblioteca; por lo tanto, los cuerpos de paquete de algunos procedimientos almacenados en geodatabases se deben volver a compilar con Oracle.

  • La base de datos debe conocer el servicio que gestiona las solicitudes al extproc. Eso está configurado en el archivo tnsnames.ora.
  • Se debe permitir que el extproc cargue el archivo que contiene st_shapelib. Esto se hace definiendo la variable de entorno EXTPROC_DLLS del archivo extproc.ora.
  • El extproc (que normalmente se ejecuta como el usuario propietario de ORACLE_HOME) debe tener permisos de lectura en la ubicación de los archivos de biblioteca y permisos de ejecución en los archivos.

PostgreSQL

La biblioteca st_geometry debe almacenarse en el directorio de instalación de PostgreSQL para permitir que PostgreSQL acceda a las funciones ST_Geometry. Debe copiar el archivo st_geometry.dll (Windows) a la carpeta lib en el directorio de instalación de PostgreSQL. Para los servidores Linux, copie el archivo st_geometry.so (Linux) en el directorio /usr/lib/pgsql en el servidor PostgreSQL. Ambos archivos se pueden encontrar en la carpeta DatabaseSupport de instalaciones de ArcMap o ArcGIS Server, o se pueden descargar desde My Esri.

SQLite

Debe designar la ubicación de la biblioteca ST_Geometry y cargarla para que el cliente de SQLite pueda tener acceso a las funciones de SQL. Puede definir la ubicación de la biblioteca en la variable de entorno de sistema PATH (Windows) o LIBPATH (Linux) del cliente y cargar a continuación la biblioteca, o puede especificar la ruta cuando cargue la biblioteca ST_Geometry. Consulte Cargar la biblioteca ST_Geometry de SQLite para obtener instrucciones.

¿Cómo se implementa ST_Geometry?

ST_Geometry se implementa como tipo definido por el usuario que se puede utilizar en las bases de datos y en las geodatabases de IBM Db2, IBM Informix, Oracle, PostgreSQL y SAP HANA. ST_Geometry también se puede usar en las bases de datos de SQLite, Dameng e IBM Netezza.

Cada sistema de administración de bases de datos es compatible con ST_Geometry según se detalla a continuación:

ST_Geometry por base de datos

Sistema de administración de bases de datosDescripción

Dameng

El tipo ST_Geometry se incluye en la base de datos Dameng, pero debe inicializarlo.

IBM Db2

El extensor espacial Db2, que IBM incluye como parte del producto Db2 de forma predeterminada, proporciona compatibilidad con ST_Geometry. El tipo ST_Geometry fue desarrollado conjuntamente por Esri e IBM.

Tenga en cuenta que hay algunas diferencias en la sintaxis de SQL entre Db2 para z/OS y Db2. Consulte la documentación de Db2 para obtener una sintaxis adecuada para la versión de Db2 que está utilizando.

IBM Informix

El Informix Spatial DataBlade, que IBM proporciona como parte del producto Informix, instala el tipo ST_Geometry en la base de datos y en la geodatabase. ST_Geometry es la única opción utilizada para almacenar geometría de entidad en geodatabases en Informix. Fue desarrollado conjuntamente por Esri e IBM y es un tipo de almacenamiento de alto rendimiento que proporciona acceso SQL compatible con ISO y OGC a los datos espaciales.

IBM Netezza

El tipo ST_Geometry en Netezza se implementa a través de la biblioteca Netezza Spatial Esri (nzSpatial_Esri), que forma parte del paquete de software de IBM Netezza Analytics.

Oracle 11g

El tipo de datos ST_Geometry se instala al crear una geodatabase en Oracle y es el tipo de almacenamiento de geometría predeterminado para las geodatabases en Oracle. Si no necesita la funcionalidad de la geodatabase, puede instalar el tipo ST_Geometry en una base de datos de Oracle utilizando la herramienta de geoprocesamiento Crear tipo espacial.

PostgreSQL

El tipo de datos ST_Geometry se instala al crear una geodatabase en PostgreSQL y es el tipo predeterminado para almacenar geometría de entidad en geodatabases en PostgreSQL. Si no necesita la funcionalidad de la geodatabase, puede instalar el tipo ST_Geometry en una base de datos de PostgreSQL utilizando la herramienta de geoprocesamiento Crear tipo espacial.

SAP HANA

La instalación del almacén de datos de SAP HANA incluye el tipo ST_Geometry de forma predeterminada.

SQLite

El tipo de datos ST_Geometry de SQLite se implementa usando una biblioteca st_geometry y una columna geometryblob. Las funciones SQL de ST_Geometry se almacenan en la biblioteca st_geometry y no en la base de datos.

Puede utilizar la herramienta de geoprocesamiento Crear base de datos SQLite para crear una base de datos de SQLite que contenga el tipo ST_Geometry. Como alternativa, puede usar la función CreateOGCTables de SQL para crear el tipo de datos ST_Geometry en una base de datos de SQLite existente.

Temas relacionados

  • Configure el extproc para acceder a ST_Geometry en Oracle
  • Diferencias de implementación de SQL para el tipo ST_Geometry

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2021 Esri. | Privacidad | Legal