I’m in the process of creating my first iPhone app. It is an exercise log that will allow users to use the GPS to track a run, then be able to save a map of the route as well as the time/distance and upload it to a website. A local list of runs would also be saved on the device. My question is, what is the best way to implement the saving and retrieval of the map? I recall reading somewhere that the way to do it is to have entities that have latitude and longitude attributes, and then fetch these in reverse by time when plotting the map. This would mean that each entity is a point during the run. Is there a way to store all of the coordinates in an array in one entity so that one entity would represent a whole run?
I haven’t really looked at relationships since I’m new to app development, but it seems like I could use relationships to store runs? As in, have the parent entity be the run, and have one of the destinations be all the coordinate entities of that run. Does this sound correct?
Thanks!
Having run as an entity makes sense. For the waypoints along the route, suggest a relationship with a 1-to-many cardinality (that is, one run has many waypoints). The attributes of the run might include start time/date, end time/date. The waypoints attributes might be latitude, longitude, altitude, date/time. You’ll probably want to experiment with how you decide to log a waypoint during the run. Maybe collect every minute, or based on moving a certain distance from the last waypoint.
The waypoint with the earliest date/time is the starting point, and the waypoint with the latest date/time is the ending point.
With the above, you can plot the route one a map, calculate speed between waypoints, average speed, total distance, and maybe some sort of difficulty factor based on altitude changes.