Имеет ли Shape_Length
принимать во внимание атрибут возвышение? Например, если у меня есть 3 очка: A
, B
иC
A.X = 10
A.Y = 10
A.Z = 10
B.X = 10
B.Y = 10
B.Z = 50
C.X = 0
C.Y = 0
C.Z = 10
Затем я создаю две строки: L1
и L2
.
L1.fromPoint = A
L1.toPoint = C
L2.fromPoint = B
L2.toPoint = C
Что я наблюдаю в результатах, что SHAPE_Length
атрибут является одинаковым для обоих L1
и L2
. Я проверил, что все точки и все полилинии ZAware.
Итак, я ошибаюсь, предполагая, что SHAPE_Length
атрибут учитывает Z форм?
У меня нет проблем с сохранением значений Z или манипулированием ими. Я использую IPolyline.
Из того, что я слышал, SHAPE_Length является только 2D и не редактируется.
Ответы:
Я давно работаю с классами объектов PolylineZ, PolygonZ и PointZ, и мой опыт показывает, что
SHAPE_Length
поле строго XY. Поскольку у меня нет 3D Analyst (мой работодатель не счел нужным его получить), мне пришлось сделать некоторую причудливую геометрию для работы с отметками. (Да, векторные уравнения теоретически были бы проще, но сейчас я не до этого.) Таким образом, без 3D Analyst может показаться, чтоSHAPE_Length
это только XY. Теперь 3D Analyst может отображать или не отображать эти автоматические поля в 3D. Я бы не знал. Знают ли какие-нибудь счастливые пользователи 3D Analyst совок?источник
Преобразование в PolylineZ для повышения может быть сохранено как значение Z в типах фигур PolylineZ Shapefile:
Видеть
http://en.wikipedia.org/wiki/Shapefile#Shapefile_shape_format_.28.shp.29
под:
Содержимое записи переменной длины зависит от типа фигуры. Ниже приведены возможные типы фигур:
ET GeoWizard может быстро конвертировать Polyline в PolylineZ. http://www.ian-ko.com/ET_GeoWizards/gw_demo.htm
источник
Если вы используете ArcSDE или RDBMS на основе Спецификации простых объектов Open GIS Consortium, тогда длина равна 2D. Даже в спецификации 1.2.1 значения Z по-прежнему являются только значениями ординат; X и Y - единственные координаты для нормализованной геометрии. Двоичная геометрия все еще не включает Z или M как часть спецификации.
Обратитесь к разделу 6.1.5:
http://www.opengeospatial.org/standards/sfs.
Выполняя проверку нескольких реализаций спецификации, все они указывают, что ST_LENGTH для кривых в настоящее время не учитывает Z-значения, и это не похоже, что тесты спецификации принимают значения Z во внимание.
Я не уверен, что файловая база геоданных будет реализовывать координаты Z. В отличие от ArcSDE, файловые базы геоданных используют истинные кривые вместо уплотненных и не следуют OGC SFS. Таким образом, возможно, что файловые базы геоданных выполняют вычисления длины с учетом Z.
источник
Это 2D. Если вы хотите рассчитать 3D-длину для 3D-линий, используйте ICurve3D :: Length3D http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/Length3D_Property/002m0000010s000000/
источник