Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Конечная точка аналитики SQL в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Тип пространственных данных geographyпредставляет данные в системе координат круглой земли. Этот тип реализуется как тип данных среды CLR .NET в SQL Server. Тип данных SQL Server geography предназначен для хранения эллипсоидальных данных (модели круглой Земли), таких как координаты широты и долготы GPS.
Тип geography является стандартным и доступен в каждой базе данных. В таблице можно создать столбцы типа geography и обращаться с данными geography так же, как с данными других предусмотренных в системе типов.
Создание или построение нового экземпляра географического объекта
Создание нового экземпляра географического объекта из существующего экземпляра
Тип данных geography содержит множество встроенных методов, с помощью которых можно создавать новые объекты geography на основе существующих.
Создание буфера вокруг географического объекта
STBuffer (тип данных geography)
Создать буфер вокруг географического объекта с учетом допуска
BufferWithTolerance (тип данных geography)
Создание географического объекта из пересечения двух географических объектов
STIntersection (тип данных geography)
Создание географического объекта из объединения двух географических объектов
STUnion (тип данных geography)
Создание географического объекта из точек, в которых один объект не пересекается с другим
STDifference (тип данных geography)
Построение экземпляра географического объекта на основе входных данных в формате Well-Known Text
Тип данных geography предоставляет несколько встроенных методов, которые создают объект типа geography из WKT-представления Open Geospatial Consortium (OGC). Стандарт WKT представляет собой текстовую строку, позволяющую осуществлять обмен географическими данными в текстовой форме.
Создание экземпляра географического объекта любого типа на основе входных данных в формате WKT
STGeomFromText (тип данных geography)
Синтаксический анализ (тип данных geography)
Создание экземпляра географического объекта Point на основе входных данных в формате WKT
STPointFromText (тип данных geography)
Создание экземпляра географического объекта MultiPoint на основе входных данных в формате WKT
STMPointFromText (тип данных geography)
Создание экземпляра географического объекта LineString на основе входных данных в формате WKT
STLineFromText (тип данных geography)
Создание экземпляра географического объекта MultiLineString на основе входных данных в формате WKT
STMLineFromText (тип данных "geography")
Создание экземпляра географического объекта Polygon на основе входных данных в формате WKT
STPolyFromText (тип данных geography)
Создание экземпляра географического объекта MultiPolygon на основе входных данных в формате WKT
STMPolyFromText (тип данных geography)
Создание экземпляра географического объекта GeometryCollection на основе входных данных в формате WKT
STGeomCollFromText (тип данных "geography")
Построение экземпляра типа geography из двоичных данных формата Well-Known Binary
WKB — это двоичный формат, заданный OGC, который позволяет обмениваться данными Geography между клиентским приложением и базой данных SQL. С помощью следующих функций создаются экземпляры географических объектов на основе входных данных WKB:
Создание экземпляра географического объекта любого типа на основе входных данных в формате WKB
STGeomFromWKB (тип данных geography)
Создание экземпляра географического объекта Point на основе входных данных в формате WKB
STPointFromWKB (тип данных geography)
Создание экземпляра географического объекта MultiPoint на основе входных данных в формате WKB
STMPointFromWKB (тип данных "geography")
Создание экземпляра географического объекта LineString на основе входных данных в формате WKB
STLineFromWKB (тип данных geography)
Создание экземпляра географического объекта MultiLineString на основе входных данных в формате WKB
STMLineFromWKB (тип данных geography)
Создание экземпляра географического объекта Polygon на основе входных данных в формате WKB
STPolyFromWKB (тип данных geography)
Создание экземпляра географического объекта MultiPolygon на основе входных данных в формате WKB
STMPolyFromWKB (тип данных "geography")
Создание экземпляра географического объекта GeometryCollection на основе входных данных в формате WKB
STGeomCollFromWKB (тип данных geography) STGeomCollFromWKB (тип данных geography)
Построение экземпляра geography из текстовых входных данных GML
Тип данных geography предоставляет метод, который создает экземпляр geography из GML, XML-представления экземпляра geography. SQL Server поддерживает подмножество GML.
Для получения дополнительной информации о языке разметки по географии см. спецификацию OGC: спецификации OGC, язык разметки географии.
Создание экземпляра географического объекта любого типа на основе входных данных в формате GML
GeomFromGML (тип данных geography)
Возврат известного текста и известного двоичного файла из географического экземпляра
Можно использовать следующие методы для получения данных экземпляра geography в формате WKT или формате WKB:
Возвращает представление WKT для экземпляра типа geography
STAsText (тип данных "geography")
ToString (тип данных geography)
Получение представления экземпляра географического объекта в формате WKT, включая все значения Z и M
AsTextZM (тип данных "geography")
Вернуть WKB-представление экземпляра типа geography
STAsBinary (тип данных geography)
Вернуть GML-представление экземпляра типа geography
AsGml — тип данных geography
Запрос свойств и поведения экземпляров типа geography
Все географические экземпляры имеют ряд свойств, которые можно получить с помощью методов, предоставляемых SQL Server. В следующих разделах определяются свойства и поведение географических типов, а также методы запросов к каждому из них.
Сведения о валидности, типе экземпляра и GeometryCollection
После создания экземпляра geography можно использовать следующие методы, чтобы вернуть тип экземпляра или, если это экземпляр GeometryCollection, вернуть конкретный экземпляр geography.
Вернуть тип экземпляра geography
STGeometryType (тип данных geography)
Определение принадлежности географического экземпляра к заданному типу
InstanceOf (тип данных "geography")
Проверка соответствия формата экземпляра географического объекта его типу
STNumGeometries (тип данных "geography")
Вернуть конкретный объект geography в экземпляре GeometryCollection
STGeometryN (тип данных geography) STGeometryN (тип данных geography)
Количество точек
Все непустые экземпляры geography состоят из точек. Эти точки представляют собой координаты широты и долготы на поверхности Земли, по которым строятся экземпляры geography. В типе данных geography предусмотрены многочисленные встроенные методы запросов к точкам экземпляра.
Получение числа точек, образующих экземпляр
STNumPoints (тип данных geography)
Вернуть определённую точку в экземпляре
STPointN (тип данных «geometry»)
Вернуть начальную точку экземпляра
STStartPoint (тип данных geography)
Вернуть конечную точку экземпляра
STEndPoint (тип данных geography)
Dimension
Непустой объект geography может иметь 0, 1 или 2 измерения. Объекты geography нулевой размерности, такие как Point и MultiPoint, не имеют ни длины, ни площади. Одномерные объекты, такие как LineString, CircularString, CompoundCurveи MultiLineString, имеют длину. Двухмерные экземпляры, такие как Polygon, CurvePolygonи MultiPolygon, имеют длину и площадь. Пустые экземпляры имеют размерность -1, а GeometryCollection имеет максимальную размерность содержащихся в ней объектов.
Вернуть размер экземпляра
STDimension (тип данных geography)
Вернуть длину экземпляра
STLength (тип данных geography)
Вернуть площадь экземпляра
STArea (тип данных "geography")
Empty
Пустым называется экземпляр объекта geography, не содержащий ни одной точки. Длина пустых экземпляров LineString, CircularString, CompoundCurveи MultiLineString равна 0. Площадь пустых экземпляров Polygon, CurvePolygon и MultiPolygon равна 0.
Проверка, является ли экземпляр пустым
STIsEmpty (тип данных "geography")
Closure
Замкнутый экземпляр geography — это фигура, начальная и конечная точки которой совпадают. Экземпляры Polygon считаются замкнутыми. ЭкземплярыPoint не замкнуты.
Кольцо — это простой замкнутый экземпляр LineString .
Определение, является ли экземпляр замкнутым
STIsClosed (тип данных Geography)
Вернуть число колец в экземпляре многоугольника
NumRings (тип данных «geography»)
Получение указанного кольца какого-либо географического объекта
RingN (тип данных geography)
Идентификатор пространственной ссылки (SRID)
Идентификатор пространственной ссылки (SRID) представляет собой идентификатор, указывающий на систему эллиптических координат, в которой находится экземпляр geography . Сравнение двух экземпляров geography с различными идентификаторами SRID невозможно.
Задать или вернуть SRID экземпляра
STSrid (тип данных geography)
Это свойство можно изменять.
Определение связей между географическими объектами
Тип данных geography предоставляет множество встроенных методов, с помощью которых можно определить связи между двумя объектами типа geography .
Определение возможного наличия одинакового набора точек в двух объектах
STEquals (тип данных geometry)
Определить, являются ли два экземпляра непересекающимися
STDisjoint (тип геометрических данных)
Определение пересечения двух объектов
STIntersects (тип данных geometry)
Определение точки или точек пересечения двух объектов
STIntersection (тип данных geography)
Определение кратчайшего расстояния между точками двух географических объектов
STDistance (тип данных geometry)
Определение разницы в точках между двумя географическими объектами
STDifference (тип данных geography)
Получение симметрической разницы (или уникальных точек) между двумя экземплярами географических объектов
STSymDifference (тип данных geography)
Географические экземпляры должны использовать поддерживаемые SRID
SQL Server поддерживает СРИД на основе стандартов EPSG. При выполнении вычислений или вызове методов с пространственными данными типа geography необходимо использовать SRID для экземпляров типа geography, поддерживаемый SQL Server. SRID должен совпадать с одним из SRID, отображаемых в представлении каталога sys.spatial_reference_systems. Как было упомянуто ранее, результаты вычислений на пространственных данных с использованием типа данных geography зависят от эллипсоида, использованного при создании рабочих данных, поскольку каждому эллипсоиду назначается отдельный идентификатор пространственной ссылки (SRID).
SQL Server использует SRID 4326 по умолчанию, который соответствует пространственной системе координат WGS 84, при использовании методов экземпляров geography. Если используются данные системы пространственных ссылок, отличной от WGS 84 (или если значение SRID отличается от 4326), для собственных географических пространственных данных необходимо определить отдельный идентификатор SRID.
Remarks
Геометрические и географические типы нельзя использовать в качестве столбцов таблицы в конечной точке аналитики SQL в Microsoft Fabric или
хранилище в Microsoft Fabric.
Examples
В следующих примерах иллюстрируется добавление и запрос географических данных.
Пример A.
В этом примере создается таблица с столбцом идентификации и столбцом geography типа GeogCol1. Третий столбец преобразует столбец geography в представление Well-Known Text (WKT) консорциума Open Geospatial Consortium (OGC) и использует метод STAsText(). Затем вставляются две строки: одна строка содержит объект LineString типа geography, а другая — объект Polygon .
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
( id int IDENTITY (1,1),
GeogCol1 geography,
GeogCol2 AS GeogCol1.STAsText()
);
GO
INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326));
INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326));
GO
Пример B.
В этом примере метод STIntersection() используется для получения точек, в которых пересекаются два вставленных ранее объекта geography.
DECLARE @geog1 geography;
DECLARE @geog2 geography;
DECLARE @result geography;
SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1;
SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geog1.STIntersection(@geog2);
SELECT @result.STAsText();