Apakah SHAPE_Length memperhitungkan nilai ketinggian akun?

10

Apakah Shape_Lengthatribut memperhitungkan ketinggian? Misalnya, jika saya memiliki 3 poin: A, B, danC

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

Lalu saya membuat dua baris:, L1dan L2.

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

Apa yang saya amati dalam hasil adalah bahwa SHAPE_Lengthatributnya sama untuk keduanya L1dan L2. Saya telah memverifikasi bahwa semua poin dan semua polyline adalah ZAware.

Jadi, apakah saya salah menganggap SHAPE_Lengthatribut memperhitungkan Z dari bentuk?

Saya tidak punya masalah menyimpan Nilai Z atau memanipulasi mereka. Saya menggunakan IPolyline.

Dari apa yang saya dengar, SHAPE_Length hanya 2D dan tidak dapat diedit.

Chris
sumber
1
Tergantung pada Shapefile [tipe bentuk] - jika itu adalah PolylineZ
Mapperz
@Mapperz SHAPE_Length tidak dihitung secara otomatis untuk shapefile.
whuber
Benar tetapi shape_Return3D_Length.cal dari ian-ko.com/free/free_arcgis.htm#Calculate akan membuat panjang yang benar
Mapperz

Jawaban:

5

Saya telah bekerja dengan kelas fitur PolylineZ, PolygonZ, dan PointZ untuk waktu yang lama sekarang, dan pengalaman saya adalah bahwa SHAPE_Lengthbidang ini benar-benar XY. Karena saya tidak memiliki Analis 3D (Majikan saya belum merasa cocok untuk mendapatkannya), saya harus melakukan beberapa geometri mewah untuk bekerja dengan ketinggian. (Ya, persamaan vektor secara teori akan lebih mudah, tapi saya tidak siap untuk itu sekarang.) Jadi, tanpa 3D Analyst, akan muncul SHAPE_Lengthhanya XY. Sekarang, Analis 3D mungkin atau mungkin tidak mencari bidang otomatis ini dalam 3D. Saya tidak akan tahu. Apakah ada pengguna Analis 3D yang beruntung di luar sana yang tahu sendoknya?

celticflute
sumber
+1, Hmmm. Ini sangat menarik. Itu mengubah pertanyaan saya.
Chris
Ini menjawab pertanyaan awal saya, dan menempatkan saya pada jalur untuk mewujudkan semua yang perlu saya ketahui untuk melanjutkan. Terima kasih!
Chris
1

Konversi ke PolylineZ untuk Ketinggian dapat disimpan sebagai Nilai Z dalam jenis bentuk PolylineZ Shapefile:

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

Lihat

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

dibawah:

Isi rekaman panjang variabel tergantung pada jenis bentuk. Berikut ini adalah jenis bentuk yang mungkin:

ET GeoWizard dapat mengonversi Polyline ke PolylineZ dengan cepat. http://www.ian-ko.com/ET_GeoWizards/gw_demo.htm

Mapperz
sumber
Tapi apa jawaban untuk pertanyaan itu?
whuber
Saya tidak punya masalah menyimpan atau memanipulasi nilai Z. Saya menggunakan IPolyline.
Chris
1

Jika Anda menggunakan ArcSDE atau RDBMS berdasarkan Spesifikasi Fitur Sederhana Konsorsium Open GIS, maka panjangnya adalah 2D. Bahkan pada spec 1.2.1, nilai Z masih nilai ordinat saja; X dan Y adalah satu-satunya koordinat untuk geometri yang dinormalisasi. Geometri biner masih belum termasuk Z atau M sebagai bagian dari spesifikasi.
Rujuk ke bagian 6.1.5:
http://www.opengeospatial.org/standards/sfs
Melakukan pemeriksaan terhadap beberapa implementasi spesifikasi, semuanya menentukan bahwa ST_LENGTH untuk kurva tidak memperhitungkan Nilai-Z pada saat ini, dan tidak terlihat seperti tes spesifikasi yang memperhitungkan nilai Z.

Saya tidak yakin apakah file-geodatabase akan mengimplementasikan koordinat Z. Tidak seperti ArcSDE, filegeodatabases menggunakan kurva sejati bukan kurva padat dan tidak mengikuti OGC SFS. Jadi, ada kemungkinan bahwa basis file melakukan perhitungan panjang sadar Z.

tuan-castillo
sumber