Simulate Location including movement in Xcode 4.2 / iOS5
Asked Answered
S

2

4

I've seen Apple demoing the new simulator features in iOS5, and apart from static locations, they showed off the ability to simulate location movement on an application running on the Simulator. I have successfully simulated single locations using GPX files, but I can't find any way of simulating movement.

Did this feature get dropped at the last minute or am I missing something obvious?

Sphygmic answered 26/10, 2011 at 15:31 Comment(0)
B
12

The <wpt> type supports a <time> element which can be used to simulate movement. Xcode will just go through the list of points in a loop. For example, here's a short 4 minute walk in the center of Berlin:

<?xml version="1.0"?>
<gpx
 version="1.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">

<wpt lat="52.529985" lon="13.403">
 <time>2013-12-08T12:00:00Z</time>
</wpt>

<wpt lat="52.529976" lon="13.403069">
    <time>2014-11-07T11:22:03Z</time>
</wpt>

<wpt lat="52.52987" lon="13.40308">
    <time>2014-11-07T11:22:6Z</time>
</wpt>

<wpt lat="52.52986" lon="13.402899999999999">
    <time>2014-11-07T11:22:09Z</time>
</wpt>

<wpt lat="52.529849999999996" lon="13.4026">
    <time>2014-11-07T11:22:12Z</time>
</wpt>

<wpt lat="52.52981" lon="13.401769999999999">
    <time>2014-11-07T11:22:15Z</time>
</wpt>

<wpt lat="52.529799999999994" lon="13.401599999999998">
    <time>2014-11-07T11:22:18Z</time>
</wpt>

<wpt lat="52.52978999999999" lon="13.401489999999999">
    <time>2014-11-07T11:22:21Z</time>
</wpt>

<wpt lat="52.52977999999999" lon="13.401399999999999">
    <time>2014-11-07T11:22:24Z</time>
</wpt>

<wpt lat="52.52978" lon="13.4014">
    <time>2014-11-07T11:22:27Z</time>
</wpt>

<wpt lat="52.529740000000004" lon="13.40145">
    <time>2014-11-07T11:22:30Z</time>
</wpt>

<wpt lat="52.52969" lon="13.4015">
    <time>2014-11-07T11:22:33Z</time>
</wpt>

<wpt lat="52.52962" lon="13.40155">
    <time>2014-11-07T11:22:36Z</time>
</wpt>

<wpt lat="52.5293" lon="13.40174">
    <time>2014-11-07T11:22:39Z</time>
</wpt>

<wpt lat="52.52897" lon="13.40196">
    <time>2014-11-07T11:22:42Z</time>
</wpt>

<wpt lat="52.528890000000004" lon="13.40197">
    <time>2014-11-07T11:22:45Z</time>
</wpt>

<wpt lat="52.52886" lon="13.40198">
    <time>2014-11-07T11:22:48Z</time>
</wpt>

<wpt lat="52.52827" lon="13.40243">
    <time>2014-11-07T11:22:51Z</time>
</wpt>

<wpt lat="52.52816" lon="13.40252">
    <time>2014-11-07T11:22:54Z</time>
</wpt>

<wpt lat="52.528059999999996" lon="13.402600000000001">
    <time>2014-11-07T11:22:57Z</time>
</wpt>

<wpt lat="52.527899999999995" lon="13.402740000000001">
    <time>2014-11-07T11:23:00Z</time>
</wpt>

<wpt lat="52.52764" lon="13.402910000000002">
    <time>2014-11-07T11:23:03Z</time>
</wpt>

<wpt lat="52.52742" lon="13.403100000000002">
    <time>2014-11-07T11:23:06Z</time>
</wpt>

<wpt lat="52.5273" lon="13.403190000000002">
    <time>2014-11-07T11:23:09Z</time>
</wpt>

<wpt lat="52.52721" lon="13.403260000000001">
    <time>2014-11-07T11:23:12Z</time>
</wpt>

<wpt lat="52.52713" lon="13.403300000000002">
    <time>2014-11-07T11:23:15Z</time>
</wpt>

<wpt lat="52.52706" lon="13.403340000000002">
    <time>2014-11-07T11:23:18Z</time>
</wpt>

<wpt lat="52.527029999999996" lon="13.403360000000001">
    <time>2014-11-07T11:23:21Z</time>
</wpt>

<wpt lat="52.526759999999996" lon="13.403480000000002">
    <time>2014-11-07T11:23:24Z</time>
</wpt>

<wpt lat="52.52618" lon="13.403670000000002">
    <time>2014-11-07T11:23:27Z</time>
</wpt>

<wpt lat="52.52607" lon="13.403700000000002">
    <time>2014-11-07T11:23:30Z</time>
</wpt>

<wpt lat="52.52607" lon="13.4037">
    <time>2014-11-07T11:23:33Z</time>
</wpt>

<wpt lat="52.52603" lon="13.4038">
    <time>2014-11-07T11:23:36Z</time>
</wpt>

<wpt lat="52.525999999999996" lon="13.40389">
    <time>2014-11-07T11:23:39Z</time>
</wpt>
<wpt lat="52.525369999999995" lon="13.40527">
    <time>2014-11-07T11:23:42Z</time>
</wpt>

<wpt lat="52.524989999999995" lon="13.40611">
    <time>2014-11-07T11:23:45Z</time>
</wpt>

<wpt lat="52.524969999999996" lon="13.40617">
    <time>2014-11-07T11:23:48Z</time>
</wpt>

<wpt lat="52.52495" lon="13.406239999999999">
    <time>2014-11-07T11:23:51Z</time>
</wpt>
<wpt lat="52.524939999999994" lon="13.40627">
    <time>2014-11-07T11:23:54Z</time>
</wpt>
<wpt lat="52.524939999999994" lon="13.4063">
    <time>2014-11-07T11:23:57Z</time>
</wpt>
<wpt lat="52.524939999999994" lon="13.406369999999999">
    <time>2014-11-07T11:24:00Z</time>
</wpt>
<wpt lat="52.52494" lon="13.40637">
    <time>2014-11-07T11:24:03Z</time>
</wpt>
<wpt lat="52.52493" lon="13.40648">
    <time>2014-11-07T11:24:06Z</time>
</wpt>
<wpt lat="52.524919999999995" lon="13.406600000000001">
    <time>2014-11-07T11:24:09Z</time>
</wpt>
<wpt lat="52.524899999999995" lon="13.406720000000002">
    <time>2014-11-07T11:24:12Z</time>
</wpt>
<wpt lat="52.52486999999999" lon="13.406910000000002">
    <time>2014-11-07T11:24:15Z</time>
</wpt>
<wpt lat="52.52483999999999" lon="13.407030000000002">
    <time>2014-11-07T11:24:18Z</time>
</wpt>
<wpt lat="52.52480999999999" lon="13.407140000000002">
    <time>2014-11-07T11:24:21Z</time>
</wpt>
<wpt lat="52.52469999999999" lon="13.407440000000001">
    <time>2014-11-07T11:24:24Z</time>
</wpt>
<wpt lat="52.52451999999999" lon="13.40792">
    <time>2014-11-07T11:24:27Z</time>
</wpt>
<wpt lat="52.52452" lon="13.40792">
    <time>2014-11-07T11:24:30Z</time>
</wpt>
<wpt lat="52.52442" lon="13.40788">
    <time>2014-11-07T11:24:33Z</time>
</wpt>
<wpt lat="52.52439" lon="13.407860000000001">
    <time>2014-11-07T11:24:36Z</time>
</wpt>
<wpt lat="52.524359999999994" lon="13.407850000000002">
    <time>2014-11-07T11:24:39Z</time>
</wpt>
<wpt lat="52.52387999999999" lon="13.407480000000001">
    <time>2014-11-07T11:24:42Z</time>
</wpt>
<wpt lat="52.52368999999999" lon="13.40736">
    <time>2014-11-07T11:24:45Z</time>
</wpt>
<wpt lat="52.52340999999999" lon="13.40719">
    <time>2014-11-07T11:24:48Z</time>
</wpt>
<wpt lat="52.52341" lon="13.40719">
    <time>2014-11-07T11:24:51Z</time>
</wpt>
<wpt lat="52.523309999999995" lon="13.40768">
    <time>2014-11-07T11:24:54Z</time>
</wpt>
<wpt lat="52.52325999999999" lon="13.407879999999999">
    <time>2014-11-07T11:24:57Z</time>
</wpt>
<wpt lat="52.523199999999996" lon="13.4081">
    <time>2014-11-07T11:25:00Z</time>
</wpt>
<wpt lat="52.523129999999995" lon="13.408299999999999">
    <time>2014-11-07T11:25:03Z</time>
</wpt>
<wpt lat="52.523039999999995" lon="13.40852">
    <time>2014-11-07T11:25:06Z</time>
</wpt>
<wpt lat="52.522909999999996" lon="13.40884">
    <time>2014-11-07T11:25:09Z</time>
</wpt>
<wpt lat="52.52265" lon="13.40957">
    <time>2014-11-07T11:25:12Z</time>
</wpt>
<wpt lat="52.52265" lon="13.40957">
    <time>2014-11-07T11:25:15Z</time>
</wpt>
<wpt lat="52.52271" lon="13.4097">
    <time>2014-11-07T11:25:18Z</time>
</wpt>
<wpt lat="52.52271" lon="13.40972">
    <time>2014-11-07T11:25:21Z</time>
</wpt>
<wpt lat="52.52271" lon="13.40973">
    <time>2014-11-07T11:25:24Z</time>
</wpt>
<wpt lat="52.52271" lon="13.409749999999999">
    <time>2014-11-07T11:25:27Z</time>
</wpt>
<wpt lat="52.52271" lon="13.409759999999999">
    <time>2014-11-07T11:25:30Z</time>
</wpt>
<wpt lat="52.52271" lon="13.409769999999998">
    <time>2014-11-07T11:25:33Z</time>
</wpt>
<wpt lat="52.522659999999995" lon="13.409829999999998">
    <time>2014-11-07T11:25:36Z</time>
</wpt>
<wpt lat="52.52266" lon="13.40983">
    <time>2014-11-07T11:25:39Z</time>
</wpt>
<wpt lat="52.52263" lon="13.40987">
    <time>2014-11-07T11:25:42Z</time>
</wpt>
<wpt lat="52.5226" lon="13.4099">
    <time>2014-11-07T11:25:45Z</time>
</wpt>
<wpt lat="52.52258" lon="13.409930000000001">
    <time>2014-11-07T11:25:48Z</time>
</wpt>
<wpt lat="52.52254" lon="13.40999">
    <time>2014-11-07T11:25:51Z</time>
</wpt>
<wpt lat="52.52254" lon="13.40999">
    <time>2014-11-07T11:25:54Z</time>
</wpt>
<wpt lat="52.5225" lon="13.41003">
    <time>2014-11-07T11:25:57Z</time>
</wpt>
<wpt lat="52.5225" lon="13.41004">
    <time>2014-11-07T11:26:00Z</time>
</wpt>
<wpt lat="52.52249" lon="13.41006">
    <time>2014-11-07T11:26:03Z</time>
</wpt>
<wpt lat="52.52249" lon="13.41007">
    <time>2014-11-07T11:26:09Z</time>
</wpt>
<wpt lat="52.52249" lon="13.410089999999999">
    <time>2014-11-07T11:26:12Z</time>
</wpt>
<wpt lat="52.5225" lon="13.410109999999998">
    <time>2014-11-07T11:26:15Z</time>
</wpt>
<wpt lat="52.5225" lon="13.410119999999997">
    <time>2014-11-07T11:26:18Z</time>
</wpt>
<wpt lat="52.52253" lon="13.410179999999997">
    <time>2014-11-07T11:26:21Z</time>
</wpt>
<wpt lat="52.52253" lon="13.41018">
    <time>2014-11-07T11:26:24Z</time>
</wpt>
<wpt lat="52.52214" lon="13.41085">
    <time>2014-11-07T11:26:27Z</time>
</wpt>
<wpt lat="52.52194" lon="13.41118">
    <time>2014-11-07T11:26:30Z</time>
</wpt>
<wpt lat="52.52189" lon="13.41127">
    <time>2014-11-07T11:26:33Z</time>
</wpt>
<wpt lat="52.521699999999996" lon="13.41158">
    <time>2014-11-07T11:26:36Z</time>
</wpt>
<wpt lat="52.521508" lon="13.411267">
    <time>2014-11-07T11:26:39Z</time>
</wpt>

</gpx>
Brahma answered 7/11, 2014 at 10:57 Comment(1)
In case you don't want to physically record the files, I've built an alternative that can convert Google Maps Directions straight to Xcode compatible GPX files. (including time simulation and elevation). hardkjarni.blogspot.com/2015/11/…Laddy
B
6

Just add many nodes as child of node like this:

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="35.641043" lon="139.609592">
        <name>63.265614</name>
    </wpt>
    <wpt lat="35.641043" lon="139.609592">
        <name>63.265614</name>
    </wpt>
    <wpt lat="35.640779" lon="139.609641">
        <name>45.113590</name>
    </wpt>
    <wpt lat="35.640771" lon="139.609642">
        <name>45.052517</name>
    </wpt>
    <wpt lat="35.640770" lon="139.609680">
        <name>45.798065</name>
    </wpt>
    ...
</gpx>

I have no idea how to control the speed though.

Brandabrandais answered 5/11, 2011 at 2:7 Comment(2)
you can't simulate speed in the gpx file, but you can use the UI Automation instrument as described in this answer: https://mcmap.net/q/479415/-when-using-gpx-in-xcode-to-simulate-location-changes-is-there-a-way-to-control-the-speedPitta
See bernhard's answer to https://mcmap.net/q/479415/-when-using-gpx-in-xcode-to-simulate-location-changes-is-there-a-way-to-control-the-speed for a solution.Sphygmic

© 2022 - 2024 — McMap. All rights reserved.