Поделиться через


STDistance (географический тип данных)

Возвращает наименьшее расстояние от точки в экземпляре geography до точки в другом экземпляре geography.

ПримечаниеПримечание

STDistance() возвращает самое короткое значение LineString между двумя типами geography. Это приблизительное значение, соответствующее геодезическому расстоянию. Отклонение значения STDistance() на простых моделях Земли от точного геодезического расстояния составляет не более 0,25 %. Это позволяет избежать путаницы, когда речь заходит о незначительной разнице между длиной и расстоянием в геодезических типах.

Синтаксис

.STDistance ( other_geography )

Аргументы

  • other_geography
    Другой экземпляр geography, от которого измеряется расстояние до экземпляра, на котором вызван метод STDistance(). Если other_geography является пустым множеством, метод STDistance() возвращает значение NULL.

Тип возвращаемых данных

Возвращаемый тип SQL Server: float

Возвращаемый тип CLR: SqlDouble

Замечания

Метод STDistance() всегда возвращает значение NULL, если идентификаторы пространственной ссылки (SRID) экземпляров geography не совпадают.

ПримечаниеПримечание

Методы, вызываемые для типа данных geography и вычисляющие площадь или расстояние, будут возвращать различные результаты в зависимости от идентификатора SRID экземпляра. Дополнительные сведения об идентификаторах SRID см. в разделе идентификаторы пространственных ссылок (SRID).

Примеры

DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.STDistance(@h);