Search code examples
iosios5core-locationsimulatorxcode4.2

Simulate Location including movement in Xcode 4.2 / iOS5


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?


Solution

  • 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>