com.supermap.data
类 CalibrateMode

java.lang.Object
  继承者 com.supermap.data.Enum
      继承者 com.supermap.data.CalibrateMode

public final class CalibrateMode
extends Enum

该类定义了对路由对象 M 值进行校正的方式类型常量。

校准路由的两种校准都要求用于校准路由的参考点至少为2个,并且校准时,都采用离待校准节点最近的两个参考点来校准。


字段摘要
static CalibrateMode BYDISTANCE
          按距离校准。
static CalibrateMode BYMEASURE
          按刻度值校准。
 
方法摘要
 
从类 com.supermap.data.Enum 继承的方法
equals, getEnums, getNameByValue, getNames, getPredefineValues, getValueByName, getValues, hashCode, isDefined, isDefined, name, parse, parse, toString, value
 
从类 java.lang.Object 继承的方法
getClass, notify, notifyAll, wait, wait, wait
 

字段详细信息

BYDISTANCE

public static final CalibrateMode BYDISTANCE
按距离校准。

按距离校准是基于两点间的沿路由的距离来计算 M 值的。这里的距离是指实际距离(欧式距离)。使用按距离校准的方式可以得到单调的校准结果,即校准后路由的 M 值是递增或递减的。下图(上)的路由为校准前的路由和参考点,该方式校准的过程为:

  1. 校准前路由各节点的坐标和参考点坐标如下表所示:

  2. 对于节点 a1,首先计算 c1 与 c2 之间的距离 d1,然后计算出校准率 R1 = d1/(200-100)。注意这里提到的距离都是指沿线距离。
  3. 然后计算 a1 和 c1 间的距离 d2,,那么有 d2/(100-Ma1)= R1,则 a1 校准后的 M 值为 100 - d2/R1;
  4. 同理,使用 c1 和 c2 来校准 a2。先计算 c1 与 a2 间的距离 d3,然后计算校准率 R2 = d1/(200-100),那么有 d3/(Ma2-100)=R1,则 a2 校准后的 M 值为:100 + d3/R1;
  5. 依次类推,使用 c2 和 c3 来校准 a3,使用 c3 和 c4 来校准 a4 和 a5。注意,校准率总是采样离被校准点最近的两个参考点来计算;
  6. 完成校准后路由各节点的 M 值上图(下)所示。


BYMEASURE

public static final CalibrateMode BYMEASURE
按刻度值校准。

按刻度值校准利用参考点对应路由上位置的刻度值来进行校准。使用该方式对路由进行校准的特点是,能够保持原始路由数据刻度值的变化规律(如不均匀的增加或减少)。当被校准的路由的长度与刻度值的比值不同时,这种方法非常适用于对路由的刻度值进行微调。请结合图和下面的文字来了解该模式如何对路由进行校准。

  1. 校准前路由节点和参考点的坐标,及参考点在路由上对应的点的原 M 值如表所示:

  2. 使用参考点 c1 和 c2 来校准节点 a1。首先计算 M 值校准率 R1=(37.5-10)/(200-100),其中(37.5-10)称为 c1 和 c2 所在点在原来线上的线标差;
  3. a1 和 c1 之间准确的线标差为(10-0),那么有(10-0)/(100-Ma1)= R1,则 a1 点校准后的 M 值为 100 - (10-0)/R1;
  4. 同理,使用 c1和 c2 来校准 a2。首先计算校准率 R2 =(37.5-10)/(200-100),a2 与 c1 之间准确的线标差为(20-10),那么有(20-10)/( Ma2-100) = R2,则 a2 点校准后的 M 值为 100+(20-10)/R2;
  5. 以此类推,依次校准其余节点:使用 c1 和 c2 校准 a2,使用 c2 和 c3 校准 a3,使用 c3 和 c4 校准 a4 和 a5。注意,校准率总是取离被校准最近的两个参考点来计算;
  6. 完成校准后路由各节点的 M 值如上图(下)所示。