В таблице GDB_Items имеется столбец геометрии, в котором хранятся экстенты классов пространственных объектов, хранящихся в базе геоданных. Поскольку тип данных этого столбца является пространственным типом, который можно запрашивать, используя SQL запросы, вы можете использовать SQL для выполнения пространственных запросов к таблице, чтобы найти, какие классы пространственных объектов пересекают указанную область поиска.
Геометрия экстента каждого класса пространственных объектов имеет пространственную привязку WGS 84 независимо от имеющейся пространственной привязки класса пространственных объектов. Следовательно, любой запрос к геометрии должен быть построен с учетом пространственной привязки WGS 84.
Следующий пример показывает, как находить имена классов пространственных объектов, которые попадают в область поиска. Заметьте, что в этом примере используется полигон и оператор пересечений, но и другие типы геометрии и другие операторы отношений также могут использоваться.
--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