ArcGIS y tipos espaciales de Microsoft
Las geodatabases admiten el almacenamiento de datos vectoriales utilizando los tipos de geometría y geografía de Microsoft. Estos tipos están disponibles en SQL Server; no requieren una instalación independiente para utilizarlos. También puede usar ArcGIS para tener acceso a las tablas de base de datos que contienen columnas de geometría o geografía.
Geometría frente a geografía
Los tipos geometría y geografía de Microsoft proporcionan acceso SQL a los datos espaciales. Las siguientes secciones comparan otras características de los dos tipos espaciales. Para obtener más información sobre los tipos espaciales de Microsoft, consulte la documentación de SQL Server.
Geometría
- El tipo de geometría es compatible con cualquier sistema de coordenadas X/Y.
- Los cálculos planos (de Tierra plana, euclidianos) y la interpolación de línea recta entre los vértices se usan para las comparaciones de representación en pantalla y espaciales.
- Se ajusta a las entidades simples del Consorcio Geoespacial abierto (OGC) para la versión 1.1.9 de la especificación SQL y cumple con SQL MM, un estándar ISO.
Puede usar el tipo de almacenamiento de geometría con ArcGIS si se da alguna de las siguientes condiciones:
- El sistema de coordenadas que se va a usar no es un sistema de coordenadas geográficas o no está definido en el diccionario de datos de SQL Server.
- Está usando SQL Server 2008 o 2008 R2 y desea almacenar valores z o m con la forma.
Geografía
- El tipo de geografía admite muchos sistemas de coordenadas geográficas estándar, como la latitud y la longitud de GPS.
Microsoft requiere que se usen SRID y los sistemas de coordenadas geográficas definidos en el diccionario de datos de SQL Server.
- Se usan un modelo elipsoidal (Tierra redonda) y una interpolación de tipo Elíptico grande de los segmentos de línea entre los vértices para los cálculos y las comparaciones espaciales.
- Usa una extensión de capa global (esferoidal).
Las coordenadas de los datos no pueden exceder la extensión global.
- En SQL Server 2008 y 2008 R2, las entidades deben ser menores que un hemisferio.
- Cuando se usan con ArcGIS, las entidades no pueden tener coordenadas z o m si se usa SQL Server 2008 o 2008 R2.
Puede usar el tipo de almacenamiento de geografía con ArcGIS si
- El sistema de coordenadas que desea utilizar está definido en el diccionario de datos de SQL Server.
- Está usando SQL Server 2008 o 2008 R2 y no necesita almacenar valores z o m para las entidades.
- Usa SQL Server 2012, en el que los valores z y m se admiten con ArcGIS.
- Los datos cubren extensiones espaciales grandes y necesita usar cálculos de área y de longitud de SQL.
Los cálculos de área y de longitud de SQL que usan la interpolación de línea de tipo Elíptico grande pueden ser significativamente diferentes a la interpolación de línea plana para extensiones espaciales grandes.
- Puede usar la interpolación de línea Elíptico grande para las consultas espaciales de SQL.
Usar tipos espaciales de Microsoft con ArcGIS
Utilice palabras clave de configuración para especificar tipos espaciales de Microsoft
De forma predeterminada, las geodatabases en SQL Server utilizan el tipo de geometría de Microsoft. Si desea utilizar el tipo de geografía de Microsoft para el almacenamiento en geodatabases en bases de datos de SQL Server locales, debe (1) cambiar el parámetro GEOMETRY_STORAGE situado bajo la palabra clave de configuración DEFAULTS de la tabla SDE_dbtune a GEOGRAPHY o (2) especificar una palabra clave de configuración que designe un parámetro GEOMETRY_STORAGE de GEOGRAPHY al crear clases de entidad.
Solo debe modificar el parámetro GEOMETRY_STORAGE bajo la palabra clave DEFAULTS si la mayoría de sus usuarios utilizarán la geografía para sus datos la mayoría del tiempo. Si solo se almacenarán algunos de sus datos en el tipo de geografía, designe una palabra clave por separado al crear la clase de entidad. Se proporciona una palabra clave, GEOGRAPHY, pero puede crear su propia palabra clave personalizada.
Utilice el comando de administración sdedbtune para cambiar los valores de la tabla SDE_dbtune. Este comando se puede instalar con la instalación del servidor de aplicaciones de ArcSDE para SQL Server.
Cuando cree clases de entidad en bases de datos de SQL Server, elija la palabra clave de geometría o de geografía.
Registrar una tabla espacial existente con la geodatabase
Si ha usado una aplicación de otro fabricante o de SQL para crear tablas que contienen columnas de tipo espacial de Microsoft en la geodatabase, puede registrar estas tablas con la geodatabase para aprovechar funciones de la geodatabase como las clases de relación, la topología, las redes geométricas, las estructuras catastrales, los terrenos o los esquemas, o tener subtipos, valores predeterminados, dominios o reglas de validación. Para este fin, las tablas deben cumplir determinados requisitos previos:
- La tabla debe ser propiedad del usuario que la está registrando.
- La tabla debe tener una columna espacial única de tipo de geometría o geografía.
- Todas las formas de la columna deben ser del mismo tipo espacial, ya sean puntos, líneas, polígonos, multipuntos, multicadenas y multipolígonos.
La adición de formas de tipo diferente al de la columna en la que se utiliza SQL después de registrar la tabla con la geodatabase no es compatible y tendrá como resultado un comportamiento impredecible de la clase de entidad.
- Todas las formas de la columna deben utilizar el mismo identificador de referencia espacial (SRID).
- El SRID especificado en el momento del registro debe existir en la tabla del sistema SDE_spatial_references. En caso contrario, debe definirse la proyección al comienzo del registro.
- Si la tabla contiene una clave principal, debe agruparse.
Consulte Registrar una tabla con la geodatabase para obtener instrucciones sobre cómo registrar la tabla en la geodatabase desde ArcGIS for Desktop.
Habilitar una geodatabase en una base de datos existente no registra automáticamente las tablas existentes en la geodatabase. Las tablas o clases de entidad que deban participar en la geodatabase se deben registrar en esta por separado.
Crear un índice espacial
SQL Server requiere que la tabla tenga una clave principal para poder crear un índice espacial.
En ArcGIS
Cuando se crea una clase de entidad con una columna de geometría o geografía en una geodatabase utilizando ArcGIS, de manera predeterminada, ArcGIS crea una clave principal en clúster en la columna de Id. de fila (ObjectID) de la tabla de negocios y luego genera un índice espacial basado en los valores definidos para el parámetro B_MS_SPINDEX de la palabra clave de configuración en la tabla SDE_dbtune utilizada al crear la clase de entidad. Cuando la clase de entidad se registra como versionada, se crea una clave primaria agrupada en las columnas de id de fila y de id de estado de la tabla de inserciones, y se genera el índice espacial basándose en los valores definidos para A_MS_SPINDEX en la palabra clave de configuración utilizada cuando se ha creado la clase de entidad. El valor predeterminado para ambos parámetros es el siguiente:
GRIDS = (MEDIUM, MEDIUM, MEDIUM, MEDIUM), CELLS_PER_OBJECT = 16
Consulte Alterar el contenido de la tabla DBTUNE para obtener información sobre la definición de valores en la tabla SDE_dbtune.
Al crear una clase de entidad con una columna espacial de geometría o geografía en una base de datos o una geodatabase a través de ArcGIS, la caja de límite de la clase de entidad se calcula como la extensión de los datos que se deben indexar. Las entidades que quedan fuera de este rango no serán indexadas pero de todos modos aparecerán en las consultas espaciales. Si no se determina la clase de entidad, el rango máximo de coordenadas del sistema de referencia espacial de la clase de entidad se utilizará para el cuadro de delimitación. Puede definir o recalcular una extensión de clase de entidad en la pestaña Extensión de entidad del cuadro de diálogo Propiedades de la clase de entidad. Si la clase de entidad está en una geodatabase, el cuadro de delimitación se ajusta con la última extensión cuando la capa se cambia del modo de E/S solo de carga al modo de E/S normal.
Fuera de ArcGIS
En el caso de tablas espaciales no creadas en ArcGIS (por ejemplo, las creadas utilizando SQL), debe crear una clave principal en la tabla y crear un índice espacial utilizando SQL. A continuación se detalla la sintaxis de SQL necesaria para crear un índice espacial en una tabla que contiene una columna de tipo geometría:
CREATE SPATIAL INDEX <index_name>
ON <table> (<spatial column>)
USING GEOMETRY_GRID
WITH (
BOUNDING_BOX = minx,miny,maxx,maxy),
GRIDS = (low|medium|high, low|medium|high, low|medium|high, low|medium|high),
CELLS_PER_OBJECT = n,
<other regular btree index options like filegroups, fill factors, etc>
)
La siguiente sintaxis crea un índice espacial en una columna de geografía:
CREATE SPATIAL INDEX <index_name>
ON <table> (<spatial column>)
USING GEOGRAPHY_GRID
WITH (
GRIDS = (low|medium|high, low|medium|high, low|medium|high, low|medium|high),
CELLS_PER_OBJECT = n,
<other regular btree index options like filegroups, fill factors, etc>
)
Límites conocidos al utilizar geografía de SQL Server con ArcGIS
A continuación aparece una lista de cuestiones a tener en cuenta a la hora de almacenar datos de geografía de SQL Server en la geodatabase corporativa:
- Si usa SQL Server 2008 o 2008 R2, ArcGIS no puede almacenar valores z o m en el tipo de datos de geografía. Por tanto, al llevar datos existentes a la geodatabase, como un shapefile o una clase de entidad de otra geodatabase, y deben almacenarse con el tipo de datos de geografía, el dataset de entrada no puede tener atributos 3D (z) o de medida (m).
Es necesario deshabilitar los atributos z y m antes de importar los datos en una geodatabase en SQL Server 2008 o 2008 R2. También se pueden importar datos con atributos 3D o de medidas en clases de entidad que utilicen geometría o el tipo de almacenamiento binario comprimido, o en geodatabases de SQL Server 2012.
- Las mediciones de datos de geografía se realizan en metros en su gran mayoría. La unidad de medida se indica en sys.spatial_ref_system; marque las unidades utilizadas con el valor EPSG asociado a los datos.
- Al aplicar el zoom a la extensión global en una clase de entidad de geografía en SQL Server 2008, se puede generar un filtro espacial que infringe la regla del hemisferio o que tiene coordenadas situadas fuera de la extensión de geografía válida, en cuyo caso la creación del filtro de forma no funcionará correctamente y la consulta no devolverá ningún resultado.