SHAPE_Length tiene conto dei valori di elevazione?


10

L' Shape_Lengthattributo tiene conto dell'elevazione? Per esempio, se ho 3 punti: A, B, eC

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

Quindi creo due righe:, L1e L2.

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

Quello che sto osservando nei risultati è che l' SHAPE_Lengthattributo è lo stesso per entrambi L1e L2. Ho verificato che tutti i punti e tutte le polilinee sono ZAware.

Quindi, sbaglio a pensare che l' SHAPE_Lengthattributo tenga conto della Z delle forme?

Non ho problemi a memorizzare i valori Z o manipolarli. Sto usando IPolyline.

Da quanto ho sentito, SHAPE_Length è solo 2D e non è modificabile.


1
Dipende dallo Shapefile [tipo di forma] - se si tratta di un PolylineZ
Mapperz

@Mapperz SHAPE_Length non viene calcolato automaticamente per gli shapefile.
whuber

Corretto ma shape_Return3D_Length.cal da ian-ko.com/free/free_arcgis.htm#Calculate creerà la lunghezza corretta
Mapperz

Risposte:


5

Lavoro da molto tempo con le classi di funzioni PolylineZ, PolygonZ e PointZ e la mia esperienza è che il SHAPE_Lengthcampo è strettamente XY. Poiché non ho un analista 3D (il mio datore di lavoro non ha ritenuto opportuno farlo), ho dovuto fare delle geometrie fantasiose per lavorare con le quote. (Sì, le equazioni vettoriali sarebbero teoricamente più semplici, ma al momento non ci riesco.) Quindi, senza 3D Analyst, sembrerebbe che SHAPE_Lengthsia solo XY. Ora, 3D Analyst può o meno calcolare questi campi automatici in 3D. Non lo saprei Qualche fortunato utente degli analisti 3D là fuori conosce lo scoop?


+1, Hmmm. È molto interessante. Questo cambia la mia domanda.
Chris,

Questo risponde alla mia domanda originale e mi ha messo sulla buona strada per realizzare tutto ciò che avevo bisogno di sapere per andare avanti. Grazie!
Chris,

1

Converti in PolylineZ per Elevation può essere memorizzato come valore Z nei tipi di forma PolylineZ Shapefile:

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

Vedere

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

sotto:

Il contenuto del record a lunghezza variabile dipende dal tipo di forma. Di seguito sono riportati i possibili tipi di forma:

ET GeoWizard può convertire rapidamente Polyline in PolylineZ. http://www.ian-ko.com/ET_GeoWizards/gw_demo.htm


Ma qual è la risposta alla domanda?
whuber

Non ho problemi a memorizzare o manipolare i valori Z. Sto usando IPolyline.
Chris,

1

Se si utilizza ArcSDE o RDBMS in base alle specifiche delle funzionalità semplici del consorzio Open GIS, la lunghezza è 2D. Anche alla specifica 1.2.1, i valori Z sono comunque solo valori ordinati; X e Y sono le uniche coordinate per la geometria normalizzata. La geometria binaria non include ancora Z o M come parte delle specifiche.
Fare riferimento alla sezione 6.1.5:
http://www.opengeospatial.org/standards/sfs
Effettuando un controllo di diverse implementazioni della specifica, tutti specificano che ST_LENGTH per le curve non tiene conto dei valori Z in questo momento, e non sembra che i test di specifica tengano conto dei valori Z.

Non sono sicuro se un file-geodatabase implementerebbe le coordinate Z. A differenza di ArcSDE, i filegeodatabase utilizzano curve vere anziché curve densificate e non seguono l'OGC SFS. Pertanto, è possibile che i filegeodatabase stiano eseguendo calcoli della lunghezza in base a Z.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.