Вопрос о единицах SQL Server

Это может быть очень глупый вопрос, но...

какие единицы географии.Метод stlength вернуться? The официальная страница MSDN ничего не говорит о возвращенных единицах, и эта запись в блоге говорит STLength() returns a float indicating the length of the instance in units. Да, правильно, он говорит, что возвращает его в блоки.

может ли кто - нибудь пролить свет на то, какие единицы stlength возвращается? Ноги? Метры? Дюймов? Помогите!

1 ответов


единицы полностью зависят от идентификатора пространственной привязки (SRID) используемых данных географии/геометрии. По соглашению вы обычно используете SRID "0" для типов геометрии, если все данные находятся в одной системе единиц.

однако обычно тип географии использует SRID 4326, который является эталонным идентификатором эллипсоидальной системы координат Земли широты/долготы, известной как WGS 84. При указании координат точек в этой системе они находятся в градусах угла широты и долготы, а не некоторого расстояния от источника. Вычисления длины и площади точек в этой системе отсчета вернут совершенно разные результаты геометрических расчетов на одних и тех же позициях точек (например,посмотреть различия между географией и геометрией здесь, а почему это происходит, смотрите здесь).

поэтому, если ваши столбцы данных были созданы с SRID "0", то система определяется как unitless и вам понадобятся некоторые метаданные о модели данных, чтобы выяснить единицы. Если они были определены с помощью реального SRID, то вы можете использовать этот запрос:

SELECT spatial_reference_id
   , well_known_text
   , unit_of_measure
   , unit_conversion_factor
FROM sys.spatial_reference_systems

чтобы проверить, какие единицы представляет SRID. Большинство-в метрах, но некоторые-в футах.