LandNav datafield - practice land navigation

[IMG2=JSON]{"data-align":"none","data-size":"full","src":"https:\/\/forums.garmin.com\/attachment.php?attachmentid=41703"}[/IMG2]
Reviews needed and feedback appreciated!

Reply to this thread or click "contact developer" (in the app store) if you have questions or issues. I will try to reply promptly. Sourcecode link below!

This thread contains information on how to set up and use the LandNav datafield/app. For information on what this app can do, and what devices it supports, visit https://apps.garmin.com/en-US/apps/2...0-2bd3fd932388


App Instructions

PART I: GETTING STARTED


Add this datafield to a new or existing activity profile. Ensure 'Auto Pause' is disabled. First time users should set the number of fields to 1, so this datafield is 'full screen'. Also recommended: (1) disable 'Auto Lap', (2) disable 'Auto Scroll', (3) hide other screens or 'lock' the buttons so you don't accidentally scroll to other screens while using this app, and (4) go 'Settings' -> 'System' -> 'Data Recording' -> 'Every Second', for more GPS data.

Plug your device into a computer to access the files via USB. Find this app in the 'GARMIN/APPS/' subdirectory. Then go to 'GARMIN/APPS/LOGS/' subdirectory and create a blank TXT file with the same name. For example, if your app is 3DDDD222.PRG you would create 3DDDD222.TXT in the 'GARMIN/APPS/LOGS/' subdirectory. Subsequent downloads of this app will require renaming the TXT file.

PART II: CONFIGURING THE SETTINGS

For how to access the settings visit https://forums.garmin.com/showthread...o-App-Settings

The 'Mode' menu determines what the app does. Option 1. Randomize within boundary lets you practice finding points. Enter the park boundary in the Points section, and the app will produce random points within the boundary for you to find. Option 2. Points in random order lets you find pre-selected points. Enter the points, and the app will make you visit them in random order. Option 3. Points in list order has you visit points in order.

The 'Points [Lat,Lon_Lat,Lon_]' section will accept no less than 3 points, and no more than around 10 points. Points must be Lat/Lon decimal degree format, with 6 digits of precision. I use Google maps on my computer. Negative numbers represent southern and western hemispheres. They go into the 'Points' section in Latitude[comma]Longitude[space] format. Do NOT include brackets as shown in the example below, they are to remind you a space is required at the end too.
[38.994336,-76.894223 38.994095,-76.893279 38.992560,-76.894127 38.992593,-76.894652 ]

The number of digits used for one latitude must be the same as all other latitudes, and the same rule applies to longitudes. In the above example, each latitude has 9 digits (including decimal), and each longitude has 10 digits (including decimal and minus sign). If your course contains a point where one longitude is 11 digits long, you will need to pad all the other longitudes with 0s so they are also 11 digits long.
[IMG2=JSON]{"data-align":"none","data-size":"full","src":"https:\/\/forums.garmin.com\/attachment.php?attachmentid=41702"}[/IMG2]
SETTINGS CONTINUED...

Disable 'Show distance and bearing' if you wish to hide the top two fields, and manually calculate the distance and bearing to the next point.

When 'Show self-correcting hints' is enabled, the bearing and distance fields will continually update to show bearing and distance to the next point, and the coordinates indicate your moving position. When disabled, bearing and distance fields will not update. Instead, they will show the bearing and distance from the last point to the next point, and the coordinates will show the location of the next point, not your position.

Enable '100m pace count beep' and your device will chirp every 100 meters you move (not 'as the bird flies', but as you meander along), helping you to learn pace count. Arriving at a point or pressing the lap button will reset this pace count to zero. (Vivoactive devices apparently cannot beep)

Enter your 'Magnetic declination' to show magnetic instead of grid bearing. When it is set to 0.0, the app will not adjust for magnetic declination (it will display grid bearing).

'Point radius in m' is how close you must get to one point, before the app will let you move to the next point. If you encounter impassable terrain on the way, you may need to skip to the next leg. See below for how to do this.

'Minimum leg in m' is the minimum distance between your location and the next random point.

'Maximum leg in m' is the maximum distance between your location and the next random point.

'Show MGRS not Lat,Lon' displays the coordinates in MGRS format.

'Save next 10 pts for re-run' will save your first 10 points (or skips) to the Points section. Automatically, and without fooling with the settings, whoever runs the activity next will be presented with the same 'course' that you ran, except they will run it in mode 3. (The points will include all locations where you arrived at or skipped points). This is good for some friendly competition!

PART III: BASIC OPERATION

When you load the activity it should look like below. The device on the top left is waiting for GPS signal. If the activity is 'paused' the background will be amber. Press 'Start/Stop' to begin. If the activity is 'running' the background will be white. When you arrive at the next point, it will turn green. The device with the green background is 3 meters away from the point.
[IMG2=JSON]{"data-align":"none","data-size":"full","src":"https:\/\/forums.garmin.com\/attachment.php?attachmentid=41701"}[/IMG2]
Pressing lap while the background is green ('arrived') will begin the next leg (yay!), and add a lap to the activity recording in the FIT file.

Pressing lap while the background is white ('running') will not change legs, but will add a lap to the activity recording.

Pressing lap while the background is amber ('paused') will let you skip to the next leg (before reaching the point). You may need to skip if the point is in a lake, or if you encounter impassable terrain.

To skip to the next leg while the activity is running, first press 'start/stop' to pause the activity, then press 'lap', then press 'start/stop' again to restart the activity. Note that skipping is annotated with two dashes '--' in the TXT file output, so anyone reading the TXT output will see where and when you skipped.

PART IV: DESIGNING A GOOD BOUNDARY

In mode 1. Randomize within boundary, the app will periodically generate numerous random points to see if they fall inside your boundary. If successful you are presented with the next point. If it fails, the background will turn red indicating an 'out-of-bounds' point, and you must skip to the next leg in order for the app to retry this process.
[IMG2=JSON]{"data-align":"none","data-size":"full","src":"https:\/\/forums.garmin.com\/attachment.php?attachmentid=41730"}[/IMG2]
Logically, if the boundary is too 'empty' it will have to make more attempts before succeeding. Computationally, the fewer points your boundary has, the less computations it does to see if a point is in bounds, and the more time it can spend generating random points. For example, if your boundary has 10 points it can make 20 attempts, but if it has 6 points it can make 30 attempts, and so on. Therefore design your park boundary so that it has fewer points, and is not too 'empty'. If you still frequently get a red background, try using simpler park boundaries and skip to the next leg when you determine your point is out-of-bounds. Do NOT upload overlapping or criss-crossing boundary lines, because the app will crash.

PART V: VIEWING TXT FILE OUTPUT

After running an activity it should write to the TXT file (if it doesn't, check that the TXT filename is the same as the PRG filename). Once again you'll need to connect your device with your computer via USB to access it. For better viewing, copy the text into Word, and change the font:
LOADED [38.990891,-76.900096 38.991440,-76.898423 38.992196,-76.897331 38.992665,-76.897590 ]
MODE 3 =========== TO =========== STARTED 14:04 DECL 11.0 PTS 4
0:00:01 0.00km 00 [38.990891, -76.900093] 18S UJ 3545517176, at 80 for 5m
0:00:19 0.00km 01 [38.991440, -76.898422] 18S UJ 3560217234, at 78 for 154m
0:02:22 0.06km 02 [38.992195, -76.897331] 18S UJ 3569817316, at 60 for 123m
0:03:45 0.13km 03 [38.992664, -76.897591] 18S UJ 3567717369, at 350 for 65m

The first line in the TXT file lists the points that were loaded. The second line displays (1) the mode, (2) 24hr time the activity started, (3) magnetic declination, and (4) number of points loaded. Each line after that shows (5) elapsed time, (6) elapsed distance in km, (7) the next point number or '--' if it was skipped, (8) the next point (or skipping) location in brackets, and (9) the grid, distance and direction possibly displayed on screen.

DEVELOPER NOTES

I don't have much time to program updates, but I am interested in making sure it works on different Garmin devices. It's pretty small and 'feature-thin' because I programmed it to work on my FR630. But if you need to improve at Land Nav, it should help!

*** Complete sourcecode available at https://github.com/landnavapp ***





  • looks nice. would a directional arrow not be easier than having to interprete the bearing or would that considered to be cheating in landnav?
  • looks nice. would a directional arrow not be easier than having to interprete the bearing or would that considered to be cheating in landnav?

    Hi, thanks for your question. A directional arrow would be easier. However in landnav and orienteering the point is to use an actual compass and map for navigation, so that is why I have left it off the implementation. And YES, it would be considered cheating too! You should check out "orienteering", it's really fun!

    I was considering including it for practical purposes (like for retrieving controls/points etc), however I decided it was unnecessary, and it took away from the skill it was designed to train - navigation using a compass.

    In some forms of landnav/orienteering the distance and bearing is not calculated for you, so the option exists to "hide" those two fields. Conversely, if you wanted to hide the coordinates field you can do that by selecting two datafields per display instead of just this one.
  • Hi.
    I was definitely looking for something like that. Almost dediced to create one by myself.
    I had two ideas for orienteering.
    First one was as yours'. But for this one I need to get all Lat/Lon datas.
    Second one is like this; Imagine a have a map for orienteering. There are points on it with no flag in forest. And I want to start from any point on map. If I drag a new course for training for instance with a pen, it is easier to count angle and distance. It would be easier to load this data to system. Otherwise I need google maps and it is hard to see exact point on google map if it is not in city.
    Can we organize source code for this aim?
    Thanks for your effort.
    Yasin.

  • --- Edit 2020 May 12 ---

    I'm working on updating this app. Should be ready for testing soon

    --------------------------- (below is older message) --------------------

    Hi

    thanks for your question sorry for the late reply. First off I will probably not get around to improving upon this app until the end of 2018 since I am in classes and simply don't have time.

    I was working on an updated version (app not datafield) which has more functionalities including increased abilities to save routes etc, which could then (theoretically at this point) be transferred to orienteering maps, however the primary purpose may have to stay land nav (and dead reckoning) and not so much terrain association or orienteering...

    which is a disappointment because orienteering is a great sport and its great for cardio. And if there was a way I could somehow transfer the coolness of orienteering into a watch app I definitely would. So at least hopefully I can get around to releasing an update at the end of this year. Hopefully!

    in the meantime if you are an aspiring land nav'er, you should do yourself a favor and get involved in local orienteering organizations. That's probably the best way to get better at land nav. You can even keep using your watch app to record your GPS tracks during the competition.

    back to your question. A map with points and no points in forest. Good question. Seems possible to somehow transfer the points from map to digits. Involving scaling and rotation perhaps. Currently with this app, you would have to have visited the points before a GPS grid is generated, since the app doesn't let you place points that way, if memory serves. I'll consider adding this if I can figure out a solution. Thanks again for your question!