В этом вопросе рассматривается geography::STBuffer. Расширяя комментарий Дэвида Сторфера, поля геометрии обрабатываются по-разному и имеют совершенно другой набор документация. Однако в этой документации вопрос о единицах измерения не рассматривается подробно. Наша информация содержит данные SHAPE, хранящиеся в виде поля геометрии, поэтому мне нужно знать, какие единицы измерения использует геометрия::STBuffer?
Геометрия SQL Server .STBuffer() единицы измерения расстояния
Ответы (1)
Это обсуждение утверждает, что «системы координат в sys.spatial_reference_systems предназначены для типа geography», поэтому, несмотря на подробное рассмотрение, оказалось, что эта информация не имеет отношения к этому вопросу. После некоторого дальнейшего исследования я прибегнул к использованию STDistance и вручную изучил карту, чтобы подтвердить, что, по крайней мере, для нашей информации, геометрия::STBuffer (и геометрия::STDistance) используемые значения соответствуют метрам, используемым в качестве меры расстояния. Этот SO вопрос предполагает, что возвращаемое значение из STDistance находится в градусов, но это было не то поведение, которое я наблюдал. Следуя ссылке SO ГИС, указанной на этой странице, и последующему сообщение MSDN, где еще раз было указано, что «SRID, перечисленные в sys.spatial_reference_systems, относятся только к типу geography» и что «для типа геометрии линейные единицы, возвращаемые такими методами, как расстояние, длина и площадь всегда в единицах координат точек», я пришел к выводу, что ответ на этот вопрос на самом деле зависит от того, какая единица измерения использовалась для создания набора данных.
P.S. Конечно, теперь я хотел знать, как определить единицу моей информации. В этом сообщении SO рассматриваются единицы в целом, и принятый ответ шел по строкам if ваши столбцы данных были созданы с SRID, равным 0, тогда система определяется как не имеющая единиц измерения, и вам потребуются некоторые метаданные о модели данных, чтобы определить единицы измерения. Если они были определены с помощью реального SRID, вы можете запросить sys.spatial_reference_systems. Так что, похоже, мне пришлось вернуться к тому, с чего я начал, глядя на sys.spatial_reference_systems. Другой сообщение MSDN, по-видимому, поддерживает идею о том, что пространственные_референциальные_системы важны при обсуждении полей геометрии.
В этом сообщении ГИС SO объясняется, как определить, какой SRID на самом деле используется вашими данными (выберите отдельный SP_GEOMETRY.STSrid из dbo.MYTABLE). Затем это можно сопоставить с информацией в sys.spatial_reference_systems, хотя требуется немного больше работы, чтобы определить, какая запись в sys.spatial_reference_systems соответствует, например. при использовании наших данных выберите отдельный SP_GEOMETRY.STSrid из dbo.MYTABLE вернул 28355, но это значение не отображается в sys.spatial_reference_systems - согласно http://spatialreference.org/ref/epsg/gda94-mga-zone-55/html/ это значение фактически является идентификатором проекции. Просматривая содержимое, возвращенное spacereference.org, детали полномочий (AUTHORITY["EPSG","4283"]) выглядят так, как будто они предоставляют соответствующий SRID для соответствия записи в sys.spatial_reference_systems. В нашем случае unit_of_measure указан как метр.
П.П.С. Интересно услышать мысли, прежде чем решить, буду ли я публиковать комментарии в некоторых из ссылок выше.