Czy SHAPE_Length uwzględnia wartości wysokości?

10

Czy Shape_Lengthatrybut uwzględnia wysokość? Na przykład, jeśli mam 3 punkty: A, B, iC

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

Następnie tworzę dwie linie: L1i L2.

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

W wynikach obserwuję, że SHAPE_Lengthatrybut jest taki sam dla obu L1i L2. Sprawdziłem, że wszystkie punkty i wszystkie polilinie są ZAware.

Czy więc mylę się, zakładając, że SHAPE_Lengthatrybut uwzględnia Z kształtów?

Nie mam problemu z przechowywaniem wartości Z lub manipulowaniem nimi. Używam IPolyline.

Z tego, co słyszałem, SHAPE_Length jest tylko 2D i nie można go edytować.

Chris
źródło
1
To zależy od Shapefile [typ kształtu] - jeśli jest to PolylineZ
Mapperz
@Mapperz SHAPE_Length nie jest automatycznie obliczany dla plików kształtów.
whuber
Prawidłowe, ale shape_Return3D_Length.cal z ian-ko.com/free/free_arcgis.htm#Calculate utworzy prawidłową długość
Mapperz

Odpowiedzi:

5

Od dłuższego czasu pracuję z klasami funkcji PolylineZ, PolygonZ i PointZ, a moje doświadczenie jest takie, że SHAPE_Lengthpole jest ściśle XY. Ponieważ nie mam Analityka 3D (mój pracodawca nie uznał za stosowne, aby go zdobyć), musiałem wykonać fantazyjną geometrię do pracy z elewacjami. (Tak, równania wektorowe byłyby teoretycznie łatwiejsze, ale na razie nie jestem tego pewien.) Zatem bez 3D Analyst wydaje się, że SHAPE_Lengthjest to tylko XY. Teraz 3D Analyst może, ale nie musi, wyliczyć te automatyczne pola w 3D. Nie wiedziałbym Czy jacyś szczęśliwi użytkownicy Analityka 3D znają tę miarkę?

flet celtycki
źródło
+1, Hmmm. To jest bardzo interesujące. To zmienia moje pytanie.
Chris
Odpowiada to na moje pierwotne pytanie i pozwala mi zrealizować wszystko, co muszę wiedzieć, aby przejść dalej. Dzięki!
Chris
1

Konwertuj na PolylineZ dla elewacji można zapisać jako wartość Z w typach kształtów Shapefile PolylineZ:

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

Widzieć

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

pod:

Zawartość rekordu o zmiennej długości zależy od typu kształtu. Oto możliwe typy kształtów:

ET GeoWizard może szybko przekonwertować Polyline na PolylineZ. http://www.ian-ko.com/ET_GeoWizards/gw_demo.htm

Mapperz
źródło
Ale jaka jest odpowiedź na pytanie?
whuber
Nie mam problemu z przechowywaniem lub manipulowaniem wartościami Z. Używam IPolyline.
Chris
1

Jeśli używasz ArcSDE lub RDBMS w oparciu o specyfikację funkcji Open GIS Consortium Simple, długość wynosi 2D. Nawet w specyfikacji 1.2.1 wartości Z są nadal tylko rzędnymi; X i Y są jedynymi współrzędnymi dla znormalizowanej geometrii. Geometria binarna nadal nie zawiera Z ani M jako części specyfikacji.
Patrz rozdział 6.1.5:
http://www.opengeospatial.org/standards/sfs
Sprawdzając kilka implementacji specyfikacji, wszystkie określają, że ST_LENGTH dla krzywych obecnie nie uwzględnia wartości Z, oraz nie wygląda na to, że testy specyfikacji uwzględniają wartości Z.

Nie jestem pewien, czy geobaza danych pliku implementowałaby współrzędne Z. W przeciwieństwie do ArcSDE, bazy danych plików używają prawdziwych krzywych zamiast krzywych zagęszczonych i nie postępują zgodnie z OGC SFS. Jest więc możliwe, że bazy danych filege wykonują obliczenia długości uwzględniające Z.

blord-castillo
źródło