Это может быть действительно немым вопросом, но...
Какие единицы делает Географию. Возврат STLength? Официальная страница MSDN ничего не говорит о единицах, возвращенных, и в этой записи в блоге здесь говорится STLength() returns a float indicating the length of the instance in units
. Да, правильно, это говорит, что возвращает его в единицах.
Кто-либо может пролить некоторый свет на то, какие единицы STLength возвращает? Ноги? Метры? Дюймы?На помощь!
Единицы измерения полностью зависят от идентификатора пространственной привязки (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. Большинство из них находятся в метрах, но несколько - в футах.