¿SHAPE_Length tiene en cuenta los valores de elevación?

10

¿El Shape_Lengthatributo tiene en cuenta la elevación? Por ejemplo, si tengo 3 puntos: A, ByC

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

Luego creo dos líneas: L1y L2.

L1.fromPoint = A
L1.toPoint = C
L2.fromPoint = B
L2.toPoint = C

Lo que estoy observando en los resultados es que el SHAPE_Lengthatributo es el mismo para ambos L1y L2. He verificado que todos los puntos y todas las polilíneas son ZAware.

Entonces, ¿me equivoco al suponer que el SHAPE_Lengthatributo tiene en cuenta la Z de las formas?

No tengo ningún problema para almacenar los valores Z o manipularlos. Estoy usando IPolyline.

Por lo que he estado escuchando, SHAPE_Length es solo 2D y no es editable.

Chris
fuente
1
Depende del Shapefile [tipo de forma] - si es un PolylineZ
Mapperz
@Mapperz SHAPE_Length no se calcula automáticamente para los archivos de forma.
whuber
Correcto pero shape_Return3D_Length.cal de ian-ko.com/free/free_arcgis.htm#Calculate creará la longitud correcta
Mapperz

Respuestas:

5

He estado trabajando con las clases de entidad PolylineZ, PolygonZ y PointZ durante mucho tiempo, y mi experiencia es que el SHAPE_Lengthcampo es estrictamente XY. Debido a que no tengo un analista 3D (a mi empleador no le ha parecido conveniente obtenerlo), he tenido que hacer una geometría elegante para trabajar con elevaciones. (Sí, las ecuaciones vectoriales serían teóricamente más fáciles, pero no estoy haciendo eso en este momento). Entonces, sin 3D Analyst, parecería que SHAPE_Lengthsolo es XY. Ahora, 3D Analyst puede o no calcular estos campos automáticos en 3D. No lo sabría ¿Conocen los usuarios afortunados de 3D Analyst por ahí?

celta
fuente
+1, mmm. Eso es muy interesante. Eso cambia mi pregunta.
Chris
Esto responde a mi pregunta original y me encamina a darme cuenta de todo lo que necesitaba saber para seguir adelante. ¡Gracias!
Chris
1

Convert to PolylineZ for Elevation se puede almacenar como un valor Z en los tipos de formas de PolylineZ Shapefile:

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

Ver

http://en.wikipedia.org/wiki/Shapefile#Shapefile_shape_format_.28.shp.29

debajo:

El contenido del registro de longitud variable depende del tipo de forma. Los siguientes son los tipos de formas posibles:

ET GeoWizard puede convertir Polyline a PolylineZ rápidamente. http://www.ian-ko.com/ET_GeoWizards/gw_demo.htm

Mapperz
fuente
¿Pero cuál es la respuesta a la pregunta?
whuber
No tengo problemas para almacenar o manipular los valores Z. Estoy usando IPolyline.
Chris
1

Si está utilizando un ArcSDE o un RDBMS basado en la especificación de entidad simple Open GIS Consortium, la longitud es 2D. Incluso en la especificación 1.2.1, los valores Z siguen siendo solo valores de ordenadas; X e Y son las únicas coordenadas para la geometría normalizada. La geometría binaria todavía no incluye Z o M como parte de la especificación.
Consulte la sección 6.1.5:
http://www.opengeospatial.org/standards/sfs
Al hacer una verificación de varias implementaciones de la especificación, todas especifican que ST_LENGTH para curvas no tiene en cuenta los valores Z en este momento, y no parece que las pruebas de especificación tengan en cuenta los valores Z.

No estoy seguro de si una geodatabase de archivos implementaría coordenadas Z. A diferencia de ArcSDE, las bases de datos de archivos utilizan curvas verdaderas en lugar de curvas densificadas y no siguen el OGC SFS. Entonces, es posible que las bases de datos de archivos estén haciendo cálculos de longitud conscientes de Z.

castillo-blord
fuente