Алгоритм расстояния, используемый в SQL2008 для типов данных географии - PullRequest
2 голосов
/ 02 марта 2010

Я хочу знать, какой алгоритм использует SQL2008 при расчете расстояния для типов данных географии.

Существует несколько таких алгоритмов, как Haversine и Vincenty, однако я не нашел ссылок на то, что SQL2008 фактически использует.

Ответы [ 3 ]

1 голос
/ 03 марта 2010

Я думаю, что вы заинтересованы в типе географии и как он рассчитывает расстояние. Эта глава может помочь (как и этот блог) http://blogs.msdn.com/edkatibah/archive/2009/12/17/inside-microsoft-sql-sever-2008-t-sql-programming-chapter-14-spatial-data.aspx

Существует также MS SQLSpatialTools на Codeplex. Их функции интерполяции для типов географии могут дать вам подсказку, что они делают под капотами

http://sqlspatialtools.codeplex.com/wikipage?title=Current%20Contents&referringTitle=Home

Могу ли я спросить, почему вас волнует, какая функция используется, если ответ правильный?

1 голос
/ 02 марта 2010

Он полностью зависит от Идентификатора пространственной привязки , связанного с типом географии.

SRID представляет, какие именно единицы в типе географии, и будет определять систему координат. Эта система будет указывать, какие алгоритмы используются.

При этом SQL Server 2008 поддерживает только определенный набор SRID (см. Раздел «Географические экземпляры должны использовать поддерживаемые SRID» в приведенной выше ссылке) при выполнении вычислений для экземпляров географии.

Вы, вероятно, можете получить больше информации о спецификации, которую SQL Server 2008 использует для типов географии / геометрии, Спецификация простого доступа к функциям Open Geospacial Consortium .

0 голосов
/ 08 марта 2010

Кажется, что вас действительно волнует, так это то, как SQL Server вычисляет расстояние, но как он фактически определяет расстояние на земле, поскольку существует много альтернативных определений. Лучшим примером для этого является статья Майкла Каллая Определение краев на круглой земле .

Исаак Кунен также написал официальный документ о представлении круглых поверхностей в 2d координатах, что является превосходным хорошим фоновым чтением.

...