Czy Shape_Length
atrybut 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: L1
i L2
.
L1.fromPoint = A
L1.toPoint = C
L2.fromPoint = B
L2.toPoint = C
W wynikach obserwuję, że SHAPE_Length
atrybut jest taki sam dla obu L1
i L2
. Sprawdziłem, że wszystkie punkty i wszystkie polilinie są ZAware.
Czy więc mylę się, zakładając, że SHAPE_Length
atrybut 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ć.
arcgis-desktop
arcobjects
.net
vb.net
Chris
źródło
źródło
Odpowiedzi:
Od dłuższego czasu pracuję z klasami funkcji PolylineZ, PolygonZ i PointZ, a moje doświadczenie jest takie, że
SHAPE_Length
pole 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ę, żeSHAPE_Length
jest 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ę?źródło
Konwertuj na PolylineZ dla elewacji można zapisać jako wartość Z w typach kształtów Shapefile PolylineZ:
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
źródło
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.
źródło
To jest 2D. Jeśli chcesz obliczyć długość 3D dla linii 3D, użyj ICurve3D :: Length3D http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/Length3D_Property/002m0000010s000000/
źródło