com.supermap.analyst.networkanalyst

类 TrajectoryPreprocessing

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.analyst.networkanalyst.TrajectoryPreprocessing
  • 所有已实现的接口:
    IDisposable


    public class TrajectoryPreprocessing
    extends com.supermap.data.InternalHandleDisposable
    轨迹预处理类。用于处理轨迹数据中的异常点,包括轨迹分段,处理偏移点、重复点、尖角等异常情形。
    • 构造器详细资料

      • 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)
        设置待处理点的坐标系。
        参数:
        prjCoordSys - 待处理点的坐标系。
      • 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 DatasetVector rectify(DatasetVector sourceDataset,
                                     String idField,
                                     String timeField,
                                     double splitTimeMilliseconds,
                                     Datasource outputDatasource,
                                     String outputDatasetName,
                                     String resultTrackIndexField)
        对数据集进行轨迹预处理,结果保存为点数据。
        参数:
        sourceDataset - 原始轨迹点数据集。
        idField - 轨迹的 ID 字段,相同 ID 值相同的轨迹点属于一条轨迹,比如手机号、车牌号等。没有指定 ID 字段时,数据集中所有点将归类为一条轨迹。
        timeField - 轨迹点的时间字段,必须为时间或时间戳类型字段。
        splitTimeMilliseconds - 分割轨迹的时间间隔,如果时间相邻的两个点的时间间隔大于指定的分割轨迹的时间间隔,则会从两个点间分割轨迹。例如以自然天为分割的时间间隔。
        outputDatasource - 保存结果数据集的数据源。
        outputDatasetName - 结果数据集名称。
        resultTrackIndexField - 保存轨迹索引的字段,轨迹分割后,一条轨迹可能分割为多条子轨迹,resultTrackIndexField 将会保存子轨迹的索引值,值从1开始。 因为结果数据集会保存源轨迹点数据集的所有字段,所以必须确保 resultTrackIndexField 字段值在源轨迹点数据集中是没有被占用。
        返回:
        结果点数据集,预处理后的结果点数据集。
      • splitTrack

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

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

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

Copyright © 2021–2024 SuperMap. All rights reserved.