2013-03-04 11 views
15

Sto tentando di automatizzare il percorso di un utente tramite UI Automation. Idealmente, la posizione dell'utente in un MKMapView avrebbe aggiornato secondo la lista dei waypoint che ho esplicitato nello script di automazione:UIATarget.setLocationWithOptions course not apply

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; 
} 

La porzione di posizione si applica senza alcun problema, e indicatore si sposta degli utenti lungo il percorso. Tuttavia, l'opzione del corso non sembra fare nulla. Ho provato 90, 180, -90, 3.14 e 1.57 come valori per l'opzione, senza successo.

Ho anche provato ad aggiungere il parametro speed: 8 a options, senza modifiche.

Visto come questo sembra essere il only way to simulate headings at all, e che il course option is totally valid and documented, è frustrante che non funziona.

Soluzione fastidiosa per l'hacky: Se si esegue la simulazione della posizione (tramite file GPX), sul dispositivo fisico, la rotazione del dispositivo funziona. In questo modo puoi simulare un percorso e ottenere la rotazione.

+0

Non è necessario fornire anche la velocità di movimento? –

+0

Non so perché dovrei, ma ci provo! –

+0

Il mio pensiero è che non si può avere corso senza muoversi effettivamente, e che l'ambiente non calcola la velocità per te se si aggiorna semplicemente la posizione. –

risposta

2

Coordinate come questo lavoro per me in strumenti:

{location:{longitude:2.105528,latitude:41.414359}, options:{speed:20, course: 290, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}} 

dare una prova di precisione orizzontale e verticale, e forse anche di altitudine.

Buona fortuna!