Android 沿路线模拟移动:步行、驾车、乘坐公交

普通的模拟把手机固定在一个点上。但跟踪移动的应用——轨迹记录、健身、导航、地理围栏服务——要检验的不是一个点,而是移动:有速度、转弯和停留。为此,Mock Location 提供了“模拟移动”:您在地图上放置点,应用沿真实道路生成路线,模拟的位置点会自己沿路线移动——像行人、骑行者、汽车或公交车一样。该功能属于 Premium,无需 root,使用的是 Android 同一套内置模拟位置机制。

  1. 打开“模拟移动”

    地图左侧按钮列中依次是模拟、搜索、语音输入,下面是带有两点之间路径图标的“模拟移动”按钮。点按后,屏幕底部会打开路线编辑器,上方的地图仍可正常操作。未开通 Premium 时,编辑器显示为介绍页“移动模拟是 Premium 功能”:可以看到这项功能能做什么,底部的“开始移动”换成了“开通 Premium”(未登录时还有“登录”)。

  2. 选择出行方式

    顶部一排图块:“步行”“自行车”“电动自行车”“踏板摩托”“摩托车”“汽车”“公交”和“混合”。出行方式同时决定很多事情:路线沿哪些道路生成(人行道、自行车道或车行道),位置点如何加速、刹车和过弯,以及下方会出现哪些选项。“公交”指公共交通:步行到车站、候车、乘车经停各站,然后再步行。“混合”可以为每一段选择不同的方式,例如步行到停车场,然后开车。

  3. 在地图上放置点

    点按地图添加点,路线会立即生成。起点由应用自动放置——放在当前模拟的位置,或您的真实位置;每次点按都会添加下一个点,最后一个点成为“终点”。也可以通过搜索添加点:编辑器打开时,搜到的地址、语音说出的地点,或收藏和历史中的记录都会成为新的路线点,而不会移动模拟位置。长按点的标记即可拖动。一条路线最多可有 100 个点。

  4. 检查路线

    “路线点”列表上方是一行“起点 → 点 1 → 终点”以及“长度”“行程用时”和“到达”图块。旁边显示途中有多少红绿灯、人行横道或公交站点。多余的点用该行中的“删除点”按钮删除,整条路线用“清除”。长按点所在的行可以给它起名字——“家”“商店”,名字会显示在路线行和行程卡片中。

  5. 设置速度和重复

    “速度”滑块从每小时几公里到 200 公里/小时。每种出行方式的速度分别记忆:步行 5 公里/小时和开车 50 公里/小时互不影响。对“公交”来说,这是公交车或有轨电车本身的速度,步行路段按步行速度。“重复”部分:“一次”“循环”(到达终点后从起点重新开始)或“往返”(在终点掉头原路返回)。

  6. 选择出发时间

    “出发”部分:“现在”“5 分钟”“15 分钟”“30 分钟”或“60 分钟”。再点一个值,出发时间将在这个范围内随机选择。“按时到达”根据所需的到达时间倒推出发时间:选择时间后,应用会显示“… 出发,… 前到达”;“至…”按钮把到达时间变成一个时间段。如果已经来不及在所选时间到达,您会看到“… 前无法到达 — 立即出发,约 … 到达”。

  7. 设置选项

    “选项”部分只显示适合所选出行方式的项目:“在红绿灯处停车”“遵守限速”“考虑路况”“在各点等待”“城市 GPS 精度”等。默认值已为逼真的行程调好,不必修改。每个选项的作用见移动选项详解。

  8. 点按“开始移动”

    模拟会开启并沿路线移动。底部会出现行程卡片:出行方式和当前速度、“已行驶”“剩余”和“到达”、进度条以及下一个点。等待出发时卡片显示“… 后出发”,停留时显示“等待中”,结束时显示“路线已完成”。点按卡片可让地图回到位置点,长按定位按钮可让地图随行进方向旋转。

  9. 暂停或结束行程

    “暂停”让位置点停在原地,“继续”让它从同一位置接着走。“结束”会取消路线并关闭模拟位置——手机恢复真实坐标。行程进行期间,通知栏中会有“正在沿路线移动”通知,显示出行方式、已行驶距离和“停止”按钮:它同样会连同路线一起关闭模拟。

其他应用看到什么

不只是不断变化的坐标,而是构成真实 GPS 定位的全部内容:速度及其精度、行进方向、海拔(步行和骑行路线按地形)、坐标精度和卫星数量。速度变化是平滑的:位置点会加速,在转弯和停留前减速;停留时速度为零,也没有方向——静止的 GPS 不知道方向。

这种方法的边界很明确:模拟的是坐标,而不是传感器。计步器、加速度计和气压计不 root 就无法模拟,所以健身应用不会计入步数,而把移动与传感器数据比对的应用会发现不一致。

什么不会中断行程

只有“结束”和关闭模拟才会中断行程。可以把应用切到后台或关闭、关闭屏幕、重启手机或更新应用——行程都会从原来的位置继续。重启后、手机解锁之前,位置点停在最后保存的位置,解锁后继续前进。

行程期间,搜索、语音输入、收藏和历史只会在地图上显示地点,并提示“要移动到那里,请结束路线”。点按地图也不会影响行程。

网络以及不适用的场景

路线由 Yandex 路线服务生成,所以生成路线需要联网。已生成的路线没有网络也能行驶,而来自 GPX 文件的路线完全不需要联网——按文件中的线路生成。

和普通模拟一样,模拟移动也不会隐藏模拟来源标记。配送、打车和考勤服务会读取这个标记,所以对它们来说,沿路线移动不会改变任何事情——详见为什么应用看到的是真实坐标。

Mock Location — 免 root 的 Android 虚拟定位

免费,不经 Google Play 分发。安装前可以核对文件校验和。

下载 APK