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

แล้วฉันจะสร้างสองบรรทัด: และL1L2

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

สิ่งที่ฉันสังเกตในผลก็คือว่าSHAPE_Lengthแอตทริบิวต์จะเหมือนกันสำหรับทั้งสองและL1 L2ฉันได้ตรวจสอบแล้วว่าคะแนนและ polylines ทั้งหมดเป็น ZAware

ดังนั้นฉันผิดที่คิดว่าSHAPE_Lengthแอ็ตทริบิวต์คำนึงถึง Z ของรูปร่างหรือไม่

ฉันไม่มีปัญหาในการจัดเก็บค่า Z หรือจัดการพวกเขา ฉันกำลังใช้ IPolyline

จากสิ่งที่ฉันได้ยินมา SHAPE_Length เป็นแบบ 2D เท่านั้นและไม่สามารถแก้ไขได้


1
ขึ้นอยู่กับ Shapefile [ประเภทรูปร่าง] - ถ้าเป็น PolylineZ
Mapperz

@Mapperz SHAPE_Length ไม่ได้ถูกคำนวณโดยอัตโนมัติสำหรับ shapefiles
whuber

ถูกต้อง แต่ shape_Return3D_Length.cal จากian-ko.com/free/free_arcgis.htm#Calculateจะสร้างความยาวที่ถูกต้อง
Mapperz

คำตอบ:


5

ฉันได้ทำงานกับคลาสฟีเจอร์ของ PolylineZ, PolygonZ และ PointZ มาเป็นเวลานานและประสบการณ์ของฉันก็คือSHAPE_Lengthฟิลด์นี้เป็น XY อย่างเคร่งครัด เนื่องจากฉันไม่มีนักวิเคราะห์สามมิติ (นายจ้างของฉันไม่เห็นว่าเหมาะสมที่จะได้รับ) ฉันต้องทำเรขาคณิตแฟนซีเพื่อทำงานกับระดับความสูง (ใช่แล้วสมการของเวกเตอร์จะง่ายกว่าในทางทฤษฎี แต่ตอนนี้ฉันยังไม่ถึงนั้น) ดังนั้นหากไม่มีนักวิเคราะห์ 3 มิติมันจะปรากฏว่าSHAPE_Lengthเป็น XY เท่านั้น ตอนนี้นักวิเคราะห์สามมิติอาจคิดหรือไม่สามารถคิดฟิลด์อัตโนมัติเหล่านี้ในแบบ 3 มิติ ฉันไม่รู้ มีผู้ใช้นักวิเคราะห์สามมิติที่โชคดีที่รู้เรื่องตักไหม?


+1, อืมม นั่นเป็นเรื่องที่น่าสนใจมาก นั่นเปลี่ยนคำถามของฉัน
Chris

นี่เป็นการตอบคำถามเดิมของฉันและทำให้ฉันตระหนักว่าทุกสิ่งที่ฉันต้องการรู้เพื่อดำเนินการต่อ ขอบคุณ!
Chris

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
Chris

1

หากคุณกำลังใช้งาน ArcSDE หรือ RDBMS ซึ่งเป็นไปตาม Open GIS Consortium Simple Feature คุณสมบัติความยาวคือ 2D แม้แต่ที่ข้อมูลจำเพาะ 1.2.1 ค่า Z ก็ยังคงกำหนดค่าเท่านั้น X และ Y เป็นเพียงพิกัดเดียวสำหรับรูปทรงเรขาคณิตที่ทำให้เป็นมาตรฐาน เรขาคณิตไบนารียังคงไม่รวม Z หรือ M เป็นส่วนหนึ่งของข้อมูลจำเพาะ
อ้างถึงส่วนที่ 6.1.5:
http://www.opengeospatial.org/standards/sfs
ทำการตรวจสอบการใช้งานหลาย ๆ อย่างของ spec พวกเขาทั้งหมดระบุว่า ST_LENGTH สำหรับเส้นโค้งไม่คำนึงถึง Z-Values ​​ในเวลานี้และ ดูเหมือนว่าการทดสอบข้อกำหนดจะนำค่า Z มาพิจารณา

ฉันไม่แน่ใจว่าถ้าไฟล์ฐานข้อมูลภูมิศาสตร์จะใช้พิกัด Z ซึ่งแตกต่างจาก ArcSDE ฐานข้อมูล filegeod ใช้เส้นโค้งจริงแทนที่จะเป็นเส้นโค้งหนาแน่นและไม่ปฏิบัติตาม OGC SFS ดังนั้นจึงเป็นไปได้ที่ไฟล์ฐานข้อมูลกำลังทำการคำนวณความยาว Z ที่ทราบ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.