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)/ |
Примеры
В следующем примере вычисляется расстояние между двумя экземплярами geography.
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);