com.supermap.analyst.networkanalyst
类 TrajectoryPreprocessing

java.lang.Object
  继承者 com.supermap.analyst.networkanalyst.TrajectoryPreprocessing

public class TrajectoryPreprocessing
extends java.lang.Object

轨迹预处理类。用于处理轨迹数据中的异常点,包括轨迹分段,处理偏移点、重复点、尖角等异常情形。


构造方法摘要
TrajectoryPreprocessing()
          构造一个新的轨迹预处理类的新对象。
 
方法摘要
 void dispose()
          释放该对象所占用的资源。
 double getMeasurementError()
          返回轨迹点误差值。
 PrjCoordSys getPrjCoordSys()
          返回待处理点的坐标系。
 double getSharpAngle()
          返回尖角角度值。
 DatasetVector getValidRegion()
          返回有效面。
 boolean isRemoveRedundantPoints()
          返回是否去除空间位置相等的重复点。
 DatasetVector rectify(DatasetVector sourceDataset, java.lang.String idField, java.lang.String timeField, double splitTimeMilliseconds, Datasource outputDatasource, java.lang.String outputDatasetName, java.lang.String resultTrackIndexField)
          对数据集进行轨迹预处理,结果保存为点数据。
 TrajectoryPreprocessingResult rectify(TrackPoint[] points)
          轨迹预处理结果。
 TrajectoryPreprocessing setMeasurementError(double value)
          设置轨迹点误差值,比如 GPS误差值,单位为米。
 TrajectoryPreprocessing setPrjCoordSys(PrjCoordSys prjCoordSys)
          设置待处理点的坐标系。
 TrajectoryPreprocessing setRemoveRedundantPoints(boolean value)
          是否去除空间位置相等的重复点。
 TrajectoryPreprocessing setSharpAngle(double sharpAngle)
          设置尖角角度值。
 TrajectoryPreprocessing setValidRegion(DatasetVector datasetValidRegion)
          设置有效面,只有落在有效面内的点才是有效点。
static java.util.List<TrackPoint[]> splitTrack(TrackPoint[] points, double splitTimeMilliseconds)
          设置轨迹分段方式。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

TrajectoryPreprocessing

public TrajectoryPreprocessing()
构造一个新的轨迹预处理类的新对象。

方法详细信息

dispose

public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。


setMeasurementError

public TrajectoryPreprocessing setMeasurementError(double value)
设置轨迹点误差值,比如 GPS误差值,单位为米。需要根据数据的质量指定一个合适的误差值。轨迹点偏移超过该误差值,则将其处理掉。

下图为处理轨迹点误差值的示意图。

参数:
value - 轨迹点误差值。

getMeasurementError

public double getMeasurementError()
返回轨迹点误差值。

返回:
轨迹点误差值。

setPrjCoordSys

public TrajectoryPreprocessing setPrjCoordSys(PrjCoordSys prjCoordSys)
设置待处理点的坐标系。

参数:
value - 待处理点的坐标系。

getPrjCoordSys

public PrjCoordSys getPrjCoordSys()
返回待处理点的坐标系。

返回:
待处理点的坐标系。

setValidRegion

public TrajectoryPreprocessing setValidRegion(DatasetVector datasetValidRegion)
设置有效面,只有落在有效面内的点才是有效点。

参数:
datasetValidRegion - 有效面数据集。

getValidRegion

public DatasetVector getValidRegion()
返回有效面。

返回:
有效面。

setSharpAngle

public TrajectoryPreprocessing setSharpAngle(double sharpAngle)
设置尖角角度值。

下图为处理轨迹尖角的示意图。

参数:
sharpAngle - 尖角角度值。单位为角度,当连续时间段内三个不相等的点的夹角小于指定的尖角角度值时,中间的点将会被纠偏处理成首尾两个点的中点。当值小于等于0时,将不处理尖角。

getSharpAngle

public double getSharpAngle()
返回尖角角度值。

返回:
尖角角度值。

setRemoveRedundantPoints

public TrajectoryPreprocessing setRemoveRedundantPoints(boolean value)
是否去除空间位置相等的重复点。

下图为处理重复点的示意图。

参数:
value - 是否去除空间位置相等的重复点。

isRemoveRedundantPoints

public boolean isRemoveRedundantPoints()
返回是否去除空间位置相等的重复点。

返回:
是否去除空间位置相等的重复点。true表示去除空间位置相等的重复点。

rectify

public TrajectoryPreprocessingResult rectify(TrackPoint[] points)
轨迹预处理结果。

参数:
points - 处理后的轨迹点数据集。

splitTrack

public static java.util.List<TrackPoint[]> splitTrack(TrackPoint[] points,
                                                      double splitTimeMilliseconds)
设置轨迹分段方式。如果对轨迹进行分段,则会生成一个 TrackIndex 字段(或 TrackIndex 开头的字段),用于标识每个轨迹点所属的轨迹。

下图为轨迹分段的示意图。

参数:
points - 待处理的轨迹点。
splitTimeMilliseconds - 时间间隔长度,单位为毫秒。对于轨迹切割的 duration方式,当连续两个点的时间间隔大于该时间间隔长度时,则将轨迹从两个点间分割开。

rectify

public DatasetVector rectify(DatasetVector sourceDataset,
                             java.lang.String idField,
                             java.lang.String timeField,
                             double splitTimeMilliseconds,
                             Datasource outputDatasource,
                             java.lang.String outputDatasetName,
                             java.lang.String resultTrackIndexField)
对数据集进行轨迹预处理,结果保存为点数据。

参数:
sourceDataset - 原始轨迹点数据集。
idField - 轨迹的 ID 字段,相同 ID 值相同的轨迹点属于一条轨迹,比如手机号、车牌号等。没有指定 ID 字段时,数据集中所有点将归类为一条轨迹。
timeField - 轨迹点的时间字段,必须为时间或时间戳类型字段。
splitTimeMilliseconds - 分割轨迹的时间间隔,如果时间相邻的两个点的时间间隔大于指定的分割轨迹的时间间隔,则会从两个点间分割轨迹。例如以自然天为分割的时间间隔。
outputDatasource - 保存结果数据集的数据源。
outputDatasetName - 结果数据集名称。
resultTrackIndexField - 保存轨迹索引的字段,轨迹分割后,一条轨迹可能分割为多条子轨迹,resultTrackIndexField 将会保存子轨迹的索引值,值从1开始。 因为结果数据集会保存源轨迹点数据集的所有字段,所以必须确保 resultTrackIndexField 字段值在源轨迹点数据集中是没有被占用。
返回:
结果点数据集,预处理后的结果点数据集。