Учитывает ли SHAPE_Length значения высот?


10

Имеет ли 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 и не редактируется.


1
Это зависит от Shapefile [тип фигуры] - если это PolylineZ
Mapperz

@Mapperz SHAPE_Length не вычисляется автоматически для шейп-файлов.
whuber

Правильно, но shape_Return3D_Length.cal от ian-ko.com/free/free_arcgis.htm#Calculate создаст правильную длину
Mapperz

Ответы:


5

Я давно работаю с классами объектов PolylineZ, PolygonZ и PointZ, и мой опыт показывает, что SHAPE_Lengthполе строго XY. Поскольку у меня нет 3D Analyst (мой работодатель не счел нужным его получить), мне пришлось сделать некоторую причудливую геометрию для работы с отметками. (Да, векторные уравнения теоретически были бы проще, но сейчас я не до этого.) Таким образом, без 3D Analyst может показаться, что SHAPE_Lengthэто только XY. Теперь 3D Analyst может отображать или не отображать эти автоматические поля в 3D. Я бы не знал. Знают ли какие-нибудь счастливые пользователи 3D Analyst совок?


+1, ммм Это очень интересно. Это меняет мой вопрос.
Крис

Это отвечает на мой первоначальный вопрос и позволяет мне понять, что мне нужно знать, чтобы двигаться дальше. Спасибо!
Крис

1

Преобразование в PolylineZ для повышения может быть сохранено как значение Z в типах фигур PolylineZ Shapefile:

   PolylineZ    Mandatory: MBR, Number of parts, Number of points, Parts, Points, Z range, Z array
    Optional: M range, M array

Видеть

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


Но каков ответ на вопрос?
whuber

У меня нет проблем с хранением или манипулированием значениями Z. Я использую IPolyline.
Крис

1

Если вы используете 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.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.