Consultas espaciales de la tabla del sistema
La tabla GDB_Items contiene una columna de geometría que mantiene las extensiones de las clases de entidad almacenadas en la geodatabase. Debido a que el tipo de datos de la columna es un tipo espacial que se puede consultar mediante SQL, puede utilizar SQL para realizar consultas espaciales en la tabla y descubrir qué clases de entidad intersecan un área de búsqueda.
Las geometrías almacenadas para la extensión de cada clase de entidad tienen una referencia espacial de WGS 84, independientemente de la referencia espacial que tiene la clase de entidad. Por lo tanto, cualquier geometría de consultas también se debe construir con una referencia espacial WGS 84.
El siguiente ejemplo muestra cómo buscar los nombres de las clases de entidad que caen en un área de búsqueda. Tenga en cuenta que si bien este ejemplo utiliza un polígono y el operador de intersecciones, también se puede utilizar otros tipos de geometrías y operadores relacionales.
--Queries a dbo-schema geodatabase in SQL Server -- Defines the extents of the search area. -- VARCHARs are used rather than FLOATs to reduce casting. DECLARE @MAX_X VARCHAR(3); DECLARE @MIN_X VARCHAR(3); DECLARE @MAX_Y VARCHAR(2); DECLARE @MIN_Y VARCHAR(2); SET @MAX_X = '-85'; SET @MIN_X = '-86'; SET @MAX_Y = '33'; SET @MIN_Y = '32'; -- Create a polygon for the search area. -- 4326 is the spatial reference ID for WGS84 in the SQL Server system table. DECLARE @WKT_CONST nvarchar(max); DECLARE @SEARCH_AREA GEOMETRY; SET @WKT_CONST = 'POLYGON ((' + @MIN_X + ' ' + @MIN_Y + ', ' + @MAX_X + ' ' + @MIN_Y + ', ' + @MAX_X + ' ' + @MAX_Y + ', ' + @MIN_X + ' ' + @MAX_Y + ', ' + @MIN_X + ' ' + @MIN_Y + '))'; SET @SEARCH_AREA =GEOMETRY::STPolyFromText(@WKT_CONST, 4326); -- Find the classes that intersect the extent. SELECT Name FROM dbo.GDB_ITEMS WHERE Shape.STIntersects(@SEARCH_area) = 1