Oracle 18c/10.7.1 EGDB
I have a polyline FC that has features with arcs.
Does the Oracle SDE.ST_LENGTH() function calculate the true length of arcs?
Or does it only calculate the straight-line length between the arc's vertices?
I manually measured the length of the line with arcs via the ArcMap measuring tool. The measured length roughly matched the results I get when I query the length using SDE.ST_GEOMETRY(). So that made me think, yes, the true length of the arc gets calculated.
But upon further investigation, it looks like ST_GEOMETRY densifies the arc into many individual vertices:
So the answer seems to be:
Yes, it calculates the length along the arc quite accurately via densification. But it doesn't actually calculate the length of the arc; it only calculates the length between densified vertices.
A comment from @Vince from a related post:
There is one quirky part...the area and perimeter reported on certain shapes which were created by perfect functions (e.g.,
SE_shape_generate_circle
) report the exact value, not the area/perimeter of the segmented approximation). It appears this is applied to CAD curves as well, so while the vertex count is from the approximation, the length isn't (or, at least, isn't always).