Creating, saving and loading a custom route onto a mobile device: Part 2

In my previous post, I related my experience with loading a custom defined route onto a mobile device (my Nokia Lumia 1020) for offline navigation. This is a task I easily carry out as part of my work, so I assumed it would be easy for me to come up with a solution from the end user side instead of the config side.

After trying 4 other technologies (here, Google Maps, Bing Maps, ArcGIS), I soldiered on, despite feeling dejected. I have come to embrace that feeling, because it often appears when I have been staring at a piece of code for hours. It always signals that a breakthrough is coming.

Everything up until this point then led me to Strava. Since I am not a cyclist (you need to be able to ride a bike in order to be one of those), I did not realise that this is a common task for them. I only discovered this when I performed a convoluted Google search for “best mobile app upload custom routes+navigation”.

I figured I would need to convert the route to GPX, create a Strava account, upload the gpx file manually, and use third party app Striver to connect to my Strava account so that I could view my custom routes.

I tried converting my feature class to gpx before I realised ArcGIS only has a GPX To Features tool, not the other way around. I downloaded a script from the always great Kevin Hibma to quickly do the conversion.

Once I figured out where Strava hides their manual activity upload button, I selected my gpx file, only to be told it won’t accept file names with “foreign characters”. As a GIS person, who has “always _, never ” tattooed somewhere on my brain, this was unacceptable.

Against my will, I changed the underscore to a space, only to be told that I could not upload a gpx file without time information. That is where my ride with Strava ended.

Now that my horizons had been broadened, I uploaded the gpx file to my OneDrive, and downloaded the GPX viewer app on my phone. I connected my OneDrive to it, and could view the gpx file in the folder, but it refused to download onto the phone.

At my wits end, I ended up at Bikemap. Not hoping for much, I uploaded my gpx file, which Bikemap very kindly accepted and displayed for me. I logged into my account on my phone using the official Bikemap app (who would’ve thought?) and there it was. Too bad it can’t do turn by turn offline navigation. Oh yes, here maps can do that….

I feel like this shouldn’t be this hard. I ended up looking at my planned routes before leaving, and using here maps to navigate there in online mode so that I could monitor the traffic.

I am prone to going for the most complicated solution when a simpler one exists, so what this all boiled down to was: Can I predefine a route, load it onto my mobile device and navigate that predefined route using offline turn-by-turn navigation? It would seem to me that the answer is no.

Home is where the GPS says you are

Yesterday during Kevin’s presentation on our mobile data capture workflow, he brought up an example of insufficient training/assumptions of user aptitude. The fieldworkers were capturing sign posts, and the way the schema was structured was that the device prompted for a photo of the sign before asking for a GPS point. The fieldworkers would cross the road to get a nice picture of the sign, which is great, but then they would take the location of the point where they were standing, without crossing back to the pole.

The end result contains points which are not true reflections of where the poles are. If the photos were stored as geotagged attachments, we could extract the correct location from there, but that’s an additional unnecessary step. If the fieldworkers were in a road with >2 storey buildings, such as in most cities, then GPS error could also add complexity to the issue. If the photos were stored as embedded rasters, then there would be no secondary location information stored as it would be embedded within the incorrect GPS point.

My point is, when Kevin mentioned this example, everyone laughed when he spoke about the point being captured in the wrong place. It’s not like he made a joke, as he was just saying what happened. Only a room full of spatial nerds would understand the full implications of what he was saying, and the amount of post-processing required for something which could have been easily avoided, and then still laugh about it. It’s a coping mechanism, I think.