Я пытаюсь автоматизировать путь пользователя через UI Automation. В идеале местоположение пользователя в MKMapView
будет обновляться в соответствии со списком путевых точек, которые я изложил в автоматизации script:
var target = UIATarget.localTarget();
var waypoints = [
{location: {latitude: 37.33170, longitude: -122.03020}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03022}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03025}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03027}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03030}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03032}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03035}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03037}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03040}, options: {course: 180}}
];
for (var waypointIndex = 0; waypointIndex < waypoints.length; waypointIndex++)
{
if (waypointIndex == 0)
target.delay(5);
var waypoint = waypoints[waypointIndex];
target.setLocationWithOptions(waypoint.location, waypoint.options);
target.delay(1);
if (waypointIndex == (waypoints.length - 1))
waypointIndex = 0;
}
Часть местоположения применяется без проблем, а индикатор пользователя перемещается по пути. Однако вариант курса, похоже, ничего не делает. Я пробовал 90
, 180
, -90
, 3.14
и 1.57
в качестве значений для опции, безрезультатно.
Я также попытался добавить в параметр speed: 8
значение options
без изменений.
Увидев, как это выглядит как единственный способ имитации заголовков вообще, а course
полностью действителен и документирован, он разочаровывает, что он не работает.
Раздражающее хакерское обходное решение: Если вы размещаете симуляцию (через файл GPX), на физическом устройстве работает ротация устройства. Таким образом, вы можете имитировать маршрут и получить поворот.