app to save/load route of waypoints, iterator to scroll waypoints

Hi,

I would like to incorporate waypoints, destinations, and if possible "courses" into a datafield or app. I have three questions.



-First question-

In the SDK, "Activity->Info":
- distanceToDestination attribute
- distanceToNextPoint attribute
- offCourseDistance attribute

What steps would I need to take, to see these attributes populate accurately in an app? i.e., Would I need to load a waypoint into memory, or load a route? Would I call the "Waypoint->toIntent" function? Is there a sample around somewhere that does this, so I can examine it? Please send me the link to a thread if there is one :)



-Second question-

In the SDK, "PersistedContent":
- Route member class
- Track member class
- Waypoint member class

What steps would I have to take, to have my app create/save a route, populated by a list of waypoints, which the user would have to go to? Is there a sample around that I can examine? Has anyone used these pre-existing GPS functions before?

My initial guess would be to create a Widget which iterates waypoints and routes, and see if by selecting a certain waypoint, if it will automatically show me the "distance and direction arrow" (aka "return to start") screen to that waypoint. I guess I will test these things if I can't get any answers, so any answers would be appreciated.



-Third question-

What watches/platforms support waypoints, and routes? I see one answer is https://forums.garmin.com/showthread.php?356513-How-to-access-course-waypoints&highlight=waypoint

I need to know, so I can determine what watch to buy as a second connectIQ-compatible watch, so I can create an app for multiple users (think about the popular European sport orienteering http://orienteering.org/ , or another idea is geocaching competitions).

According to the SDK, the saving waypoint functionality in "PersistedLocations" is "only available on devices that support waypoints". It goes on to list the supported devices as fenix 2 and epix. It also says "PersistedLocations" module will be replaced by "PersistedContent" in ConnectIQ 4.0.0, but PersistedContent module does not show any list of "supported devices".

I THINK I have been able to save waypoints to my FR630 in an app I wrote. I am thankful for this, because the FR630 was one of the top watches Garmin offered at the time I purchased it, and I should hope it had these core GPS functionalities! I honestly would hope all of Garmin's watches have this capability, and not just the "top tier" fitness watches...

I also own an old Garmin Foretrex 101 and also an old Garmin Rino. The MOST USEFUL FEATURES on these devices in my opinion was the ABILITY TO SAVE AND LOAD WAYPOINTS, to find one's way through the woods. I was surprised that these "core" GPS functionalities are left "unimplemented" or "hidden" in many of Garmin's watches today. I think these standard GPS features like saving and loading waypoints are very important and are the "killer" functionalities that make customers want to buy a Garmin over another mobile technology like fitbit or apple iwatch. I hope Garmin would leave these important GPS functionalities accessible to most/all of its watches in the future. I request that Garmin make these functionalities more transparent and accessible for programmers - so that apps for the iwatch and iphone don't start quickly replacing Garmin's capabilities :)
  • What steps would I need to take, to see these attributes populate accurately in an app?

    If you were implementing a data field, you'd have to load a course. On devices with navigation support you'd find this under Menu > Navigation > Courses. Once you've created/selected a course those fields should be populated. I haven't tried, but I don't think there is anything you can do in the simulator to get them filled out.

    What steps would I have to take, to have my app create/save a route, populated by a list of waypoints, which the user would have to go to?

    You cannot create/save persisted content directly on the device via ConnectIQ. For ConnectIQ 2.x devices, the Communications module allows you to download .FIT or .GPX files that contain the course/waypoint/route data from the internet. You could theoretically write an app that captured location data and sent it to a web service, and that service could generate the appropriate course/waypoint/route to be later downloaded by other users.

    On devices that have support for advanced navigation features, you should be able to create a course/waypoint/route on the device. You could also just use the built-in apps (Run, Bike, ...) to record an activity session, upload this to Garmin Connect, and then extract the course/waypoint/route data you want and then host those files for download by your application.

    My initial guess would be to create a Widget which iterates waypoints and routes, and see if by selecting a certain waypoint, if it will automatically show me the "distance and direction arrow" (aka "return to start") screen to that waypoint.

    The PersistedContent module classes don't have any data in them, other than the Intent for you to examine. All you can do is get the name for the content and then launch it (System.exitTo(route.toIntent())). Launching the intent will open the appropriate app for handling that content; if you launch a course, you'd be prompted to launch the course, and if you accepted, the device would load the course as if you had used the menu to open the given course.

    What watches/platforms support waypoints, and routes?

    None of the ConnectIQ 1.x devices. Most low-end devices don't support navigation (vivoactive and vivoactive_hr are two examples). I'm guessing that the fr230, fr235, and fr630 don't have support, but the fr735 does.

    According to the SDK, the saving waypoint functionality in "PersistedLocations" is "only available on devices that support waypoints".

    Given that this module is deprecated, I wouldn't use it. You already know that it will be eliminated, and I don't believe it is being actively supported. If you find bugs, I have doubts that they'd get the attention you might hope for.

    It goes on to list the supported devices as fenix 2 and epix.

    The list probably is not being maintained. Maintaining deprecated features or documentation for deprecated features isn't something that is done very often.

    It also says "PersistedLocations" module will be replaced by "PersistedContent" in ConnectIQ 4.0.0, but PersistedContent module does not show any list of "supported devices".

    I believe that all devices that have built-in navigation functionality (the Navigation menu exists) and have ConnectIQ 2.2 support will work. It is my understanding that the device simulator to behave similarly to an actual device in this respect, so you should be able to write a sample app and figure it out. i.e., if you simulate a vivoactive_hr and try to access the functionality, it will fail, but if you do the same with a simulated fr735xt it would work.

    I THINK I have been able to save waypoints to my FR630 in an app I wrote.

    I don't think so, but I could be wrong.

    The MOST USEFUL FEATURES on these devices in my opinion was the ABILITY TO SAVE AND LOAD WAYPOINTS, to find one's way through the woods.

    Yes, this is a feature of all devices with basic navigation features. I believe the fr920xt, fr735xt and fenix3 are on this list, but the vivoactive, vivoactive_hr, and fr230, 235 and 630 are not.

    ...are the "killer" functionalities that make customers want to buy a Garmin over another mobile technology

    ConnectIQ can bridge this gap to some extent. There is nothing stopping an intrepid developer such as yourself from creating an app that will retrieve data (via Garmin Connect Mobile) for a course/waypoint/route and then display it directly on the device (side-stepping the need for built-in navigation).

    Travis
  • Thank you for the informative reply, that has also saved me quite a lot of blind guesswork! I hope to post something to the app store in the near future, and hope to get an fr735xt when I get a chance :)
  • Before you decide on the 735, you may want to look at a non-wearable like the Oregon 7xx. It's got the latest CIQ, as well as real maps. It doesn't do running, but depending on what you plan on doing, may fit your needs.