Чи враховує 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 є лише двовимірним і не піддається редагуванню.


1
Це залежить від Shapefile [тип фігури] - якщо це
PolylineZ

@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-аналітика (мій роботодавець не вважає за потрібне це отримати), мені довелося зробити певну фантазію геометрії для роботи з висотами. (Так, векторні рівняння теоретично були б простішими, але я зараз не до цього.) Отже, без 3D-аналітика, здавалося б, SHAPE_Lengthце лише XY. Тепер 3D-аналітик може або не може відображати ці автоматичні поля в 3D. Я б не знав. Чи знають якісь щасливі користувачі 3D-аналітиків там?


+1, Хм. Це дуже цікаво. Це змінює моє питання.
Кріс

Це дає відповідь на моє первісне запитання і ставить мене на шлях, щоб усвідомити все, що потрібно знати, щоб рухатись далі. Дякую!
Кріс

1

Перетворення в PolylineZ для Elevation може бути збережено як значення 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, то довжина становить 2D. Навіть при специфікації 1.2.1 значення Z все ще є лише ординатними значеннями; X і Y - єдині координати для нормованої геометрії. Бінарна геометрія все ще не включає Z або M як частину специфікації.
Дивіться розділ 6.1.5:
http://www.opengeospatial.org/standards/sfs
Роблячи перевірку декількох реалізацій специфікації, вони вказують, що ST_LENGTH для кривих не враховує значення Z на даний момент, і не схоже, що тести специфікації враховують значення Z.

Я не впевнений, чи би база даних файлів-геоданих реалізувала координати Z. На відміну від ArcSDE, бази даних filegeodata використовують справжні криві замість ущільнених кривих і не слідують за OGC SFS. Отже, цілком можливо, що бази даних filegeodata роблять обчислення довжини Z.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.