Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Возвращает наименьшее расстояние от точки в экземпляре geography до точки в другом экземпляре geography.
Note
STDistance() возвращает самое короткое значение LineString между двумя типами geography. Это приблизительное значение, соответствующее геодезическому расстоянию. Отклонение значения STDistance() на простых моделях Земли от точного геодезического расстояния составляет не более 0,25 %. Это позволяет избежать путаницы, когда речь заходит о незначительной разнице между длиной и расстоянием в геодезических типах.
Syntax
.STDistance ( other_geography )
Arguments
other_geography
Другой экземпляр geography, от которого измеряется расстояние до экземпляра, где вызван метод STDistance(). Если other_geography является пустым набором, STDistance() возвращает значение NULL.
Типы возвращаемых данных
Тип возвращаемого значения SQL Server: float
Тип возвращаемых данных CLR: SqlDouble
Remarks
Результат выражается в единице измерения, определенной идентификатором пространственной ссылки (SRID) пространственных данных. STDistance() всегда возвращает значение NULL, если у экземпляров geography не совпадают идентификаторы пространственных ссылок (SRID).
Note
Методы, вызываемые для типа данных geography и вычисляющие площадь или расстояние, могут возвращать различные результаты в зависимости от идентификатора SRID экземпляра. Дополнительные сведения об идентификаторах SRID см. в разделе Идентификаторы пространственных ссылок (SRID).
Examples
В следующем примере вычисляется расстояние между двумя экземплярами 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);