title: 实时轨迹

1. 轨迹记录

startRecordingPath() 用于记录指定 Key 的轨迹,并实时上传至云端,默认为 5 秒 上传一次。

设置上传频率

你可以根据时间或距离设置上传频率:

  • 根据时间间隔上传,最小间隔 1 秒, 最大间隔 300 秒。

例如,每 60 秒上传一次轨迹点:

  1. var locationProvider = wildLocation.AMapLocationProvider("timeInterval", 60000);
  2. wildLocation.startRecordingPath(key, locationProvider);
  • 根据距离间隔上传,最小间隔 0 米 (1 秒判断一次),最大间隔 500 米。

例如,每 20 米 上传一次轨迹点:

  1. var locationProvider = wildLocation.AMapLocationProvider("distanceInterval", 20);
  2. wildLocation.startRecordingPath(key, locationProvider);

停止记录轨迹

stopRecordingPath()用于停止记录指定 Key 的轨迹。

  1. wildLocation.stopRecordingPath(key);

2. 轨迹查询

实时轨迹查询

PathQurey.on() 用于查询实时轨迹,轨迹一旦发生变化,将会实时更新。

  1. var pathQuery = wildLocation.pathQuery(key);
  2. pathQuery.on(function (pathSnapshot) {
  3. console.log('轨迹的路程长度为: ', pathSnapshot.length());
  4. var positions = pathSnapshot.points();
  5. var latestPosition = pathSnapshot.latestPoint();
  6. });

提示:

如果你想绘制一条实时的轨迹,可以利用 latest point 实时绘制新的轨迹点。

根据时间范围查询轨迹。

起始时间 QueryStartAtTime

  1. var pathQuery = wildLocation.pathQuery(key, {startTime: QueryStartAtTime});
  2. pathQuery.on(function (pathSnapshot) {
  3. console.log('轨迹的路程长度为: ', pathSnapshot.length());
  4. var positions = pathSnapshot.points();
  5. var latestPosition = pathSnapshot.latestPoint();
  6. });

结束时间 QueryEndAtTime

  1. var pathQuery = wildLocation.pathQuery(key, {endTime: QueryEndAtTime});
  2. pathQuery.on(function (pathSnapshot) {
  3. console.log('轨迹的路程长度为: ', pathSnapshot.length());
  4. var positions = pathSnapshot.points();
  5. var latestPosition = pathSnapshot.latestPoint();
  6. });

单次轨迹查询

PathQurey.once() 用于查询指定时间范围内的轨迹记录。

  1. var pathQuery = wildLocation.pathQuery(key);
  2. pathQuery.once(function (pathSnapshot) {
  3. console.log('轨迹的路程长度为: ', pathSnapshot.length());
  4. var positions = pathSnapshot.points();
  5. var latestPosition = pathSnapshot.latestPoint();
  6. });

提示:

如果查询时间范围超过轨迹时间范围,将只会返回轨迹时间范围内的轨迹点。

3. 轨迹长度

pathSnapshot 的属性 length 用于记录轨迹的长度,单位为米。

  1. pathSnapshot.length();