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

Это может быть действительно немым вопросом, но...

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

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

6
задан Jon Seigel 28 March 2010 в 22:02
поделиться

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. Большинство из них находятся в метрах, но несколько - в футах.

8
ответ дан 16 December 2019 в 21:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: