Вопрос о блоках SQL Server
Это может быть очень глупый вопрос, но...
Какие единицы возвращает Geography.STLength? Официальная страница MSDN ничего не говорит о возвращенных единицах, и эта запись в блоге здесь говорит STLength() returns a float indicating the length of the instance in units
, Да, верно, он говорит, что возвращает его в единицах.
Кто-нибудь может пролить свет на то, какие юниты STLength возвращает? Ножки? Метры? Дюймов? Помогите!
1 ответ
Единицы измерения полностью зависят от идентификатора пространственной привязки (SRID) используемых географических / геометрических данных. По соглашению вы обычно используете SRID "0" для типов геометрии, если все данные находятся в одной системе единиц.
Однако обычно тип географии использует SRID 4326, который является эталонным идентификатором эллипсоидальной системы координат Земли широта / долгота, известной как WGS 84. Когда вы задаете координаты точки в этой системе, она указывается в градусах угла широты и долготы., а не на некотором расстоянии от происхождения. Расчеты длины и площади в точках в этой эталонной системе будут возвращать совершенно разные результаты геометрических вычислений в тех же точечных положениях (отличный пример см. В разделе Различия между географией и геометрией, а также о том, почему это происходит, см. Здесь).
Таким образом, если ваши столбцы данных были созданы с SRID, равным "0", то система определена как единичная, и вам потребуются некоторые метаданные о модели данных, чтобы определить единицы измерения. Если они были определены с реальным SRID, то вы можете использовать этот запрос:
SELECT spatial_reference_id
, well_known_text
, unit_of_measure
, unit_conversion_factor
FROM sys.spatial_reference_systems
чтобы проверить, какие единицы представляет SRID. Большинство в метрах, но некоторые в футах.