2010-01-10 5 views
6

Это может быть очень глупый вопрос, но ...Вопрос о блоках SQL Server

Какие единицы возвращает география.STLength? official MSDN page ничего не говорит о возвращенных единицах, а this blog entry здесь говорит STLength() returns a float indicating the length of the instance in units. Да, верно, говорится, что он возвращает его в единицах.

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

ответ

8

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

Однако, как правило, тип географии использует SRID из 4326, который является эталонным идентификатор широты/долготы эллипсоидальной Земли систему, известную как WGS 84. координат При указании координаты точки в этой системе, в градусах угла широты и долготы, а не на некотором расстоянии от источника. Вычисления длины и площади по точкам в этой системе отсчета возвратят совершенно разные результаты из геометрических расчетов в точках одного и того же положения точки (для отличного примера see Differences between Geography and Geometry here, а также для why this happens, see here).

Итак, если ваши столбцы данных были созданы с SRID «0», то система определяется как единое целое, и вам понадобятся некоторые метаданные о модели данных для определения единиц. Если бы они были определены с реальным SRID, то вы можете использовать этот запрос:

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

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