老师好,我想问下LinearPoint类中的DistanceAlong表示桩号,DistanceOnExtension表示什么意思呢?
我在ORD SDK的examples下能找到如下使用:
private static string GetStationFromPoint(Alignment al, LinearPoint point) { // Get numerical station string stationStr = ""; double stationNum = point.DistanceOnExtension + point.DistanceAlong; // Format it StationingFormatter sformatter = new StationingFormatter(al); StationFormatSettings settings = StationFormatSettings.GetStationFormatSettingsForModel(m_activeModel); sformatter.FormatStation(ref stationStr, stationNum, settings); return stationStr; }
符工,double stationNum = point.DistanceOnExtension + point.DistanceAlong;这段函数不是很清楚,因为一般情况下double stationNum = point.DistanceAlong;都表示桩号了,但是上面一段函数什么意思不清楚?
Li Liu您好!如下是我们ORD工程师的专业回答。
Duo Duo said:LinearPoint类中的DistanceAlong表示桩号,DistanceOnExtension表示什么意思呢?
DistanceAlong 表示在曲线上的距离,DistanceOnExtension 表示曲线延长线上的距离,负数为在起点方向延长,正为在终点方向延长。
例如,一条曲线的距离参数区间为[0,100]
1、如果点在曲线上,比如在距离 10 处,则,DistanceAlong = 10,DistanceOnExtension = 0,(在曲线上DistanceOnExtension 恒等于0);
2、如果点在曲线起点延长线上,比如在起点方向延长10 处,则,DistanceAlong = 0,DistanceOnExtension = -10 ,(在曲线起点延长线上DistanceAlong 恒等于0);
3、如果点在曲线终点延长线上,比如在终点方向延长10 处,则,DistanceAlong =100,DistanceOnExtension = -10,(在曲线终点延长线上DistanceAlong 恒等于100);
基于以上,所以曲线上的绝对距离为 DistanceAlong + DistanceOnExtension ;
Duo Duo said:double stationNum = point.DistanceOnExtension + point.DistanceAlong;这段函数不是很清楚,因为一般情况下double stationNum = point.DistanceAlong;都表示桩号了,但是上面一段函数什么意思不清楚?
1、DistanceAlong (距离也叫绝对桩号) 和 Station(相对桩号)是有差异的。
2、DistanceAlong 一般对应为曲线的几何距离,这个是一个几何概念。
3、Station 是一个工程概念,表示为路线的起点桩号+路线距离。
4、DistanceAlong一定是从0开始的,但是Station不一定从0开始。
5、如果没有修改过路线的起点桩号 或 路线上没有断链,那么DistanceAlong和Station是一样的,也就是基于此,这两个概念很容易混淆。
6、如果路线上存在桩号系统,那么需要通过桩号系统来对二者进行转化。详见 Bentley.CifNET.LinearGeometry.Stationing 或 Bentley.CifNET.GeometryModel.SDK.Stationing.
Answer Verified By: Duo Duo