<link crossorigin="anonymous" media="all" integrity="sha512-RtTALB/sW6ZNaV8pAz+zgESY0yned71M1YNbEMwtVf7/NfEx0BUpN2LC+wz7ldlCbRWqDTeFiTgQy7mKjmQXAw==" rel="stylesheet" href="https://github.githubassets.com/assets/github-ff677752aaa20f6618bba240056c3e08.css" />
<meta name="twitter:image:src" content="https://avatars1.githubusercontent.com/u/42966288?s=400&v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="jp000/MapTools" /><meta name="twitter:description" content="Tools for working with Garmin's Etrex10. Contribute to jp000/MapTools development by creating an account on GitHub." />
<meta property="og:image" content="https://avatars1.githubusercontent.com/u/42966288?s=400&v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="jp000/MapTools" /><meta property="og:url" content="https://github.com/jp000/MapTools" /><meta property="og:description" content="Tools for working with Garmin's Etrex10. Contribute to jp000/MapTools development by creating an account on GitHub." />
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
<meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
<meta name="google-analytics" content="UA-3769691-2">
<meta name="hostname" content="github.com">
<meta name="user-login" content="jp000">
<meta name="expected-hostname" content="github.com">
<meta name="js-proxy-site-detection-payload" content="ZWE0ZDNiYTcxNmE4ZDM4NzQ2ZThjMGJlYTU2NmQzM2FlMzA2ZWNiZDA1ZTNjNGVmMjcwNmJhNWQzYTllZTU2NXx7InJlbW90ZV9hZGRyZXNzIjoiMTk5LjY0Ljc1LjE4NCIsInJlcXVlc3RfaWQiOiJBOUEzOjYyQTI6NDE0RjRCOjhGOTA0Rjo1RDc4RTYwQiIsInRpbWVzdGFtcCI6MTU2ODIwNDMyMiwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==">
<meta name="enabled-features" content="ACTIONS_V2_ON_MARKETPLACE,MARKETPLACE_FEATURED_BLOG_POSTS,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS,MARKETPLACE_PENDING_INSTALLATIONS,NOTIFY_ON_BLOCK,RELATED_ISSUES,GHE_CLOUD_TRIAL">
<link href="https://github.com/jp000/MapTools/commits/bf4df19fbfcf5c4dae997c81ae254b50219e91da.atom" rel="alternate" title="Recent Commits to MapTools:bf4df19fbfcf5c4dae997c81ae254b50219e91da" type="application/atom+xml">
<link rel="canonical" href="https://github.com/jp000/MapTools/blob/bf4df19fbfcf5c4dae997c81ae254b50219e91da/README.md" data-pjax-transient>
<header class="Header js-details-container Details flex-wrap flex-lg-nowrap p-responsive" role="banner">
<div class="Header-item d-none d-lg-flex">
<a class="Header-link" href="https://github.com/" data-hotkey="g d" aria-label="Homepage" data-ga-click="Header, go to dashboard, icon:logo">
</div>
<div class="Header-item d-lg-none">
<button class="Header-link btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
<svg height="24" class="octicon octicon-three-bars" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z"/></svg>
</button>
</div>
<div class="Header-item Header-item--full flex-column flex-lg-row width-full flex-order-2 flex-lg-order-none mr-0 mr-lg-3 mt-3 mt-lg-0 Details-content--hidden">
<div class="header-search flex-self-stretch flex-lg-self-auto mr-0 mr-lg-3 mb-3 mb-lg-0 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
role="combobox" aria-owns="jump-to-results" aria-label="Search or jump to" aria-haspopup="listbox" aria-expanded="false"
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
- No suggested jump to results
-
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository"> In this repository </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">?</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">?</span> </div>
-
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository"> In this repository </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">?</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">?</span> </div>
<li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion">
<img src="https://github.githubassets.com/images/spinners/octocat-spinner-128.gif" alt="Octocat Spinner Icon" class="m-2" width="28">
</li>
</div>
</label>
<nav class="d-flex flex-column flex-lg-row flex-self-stretch flex-lg-self-auto" aria-label="Global">
<a class="Header-link d-block d-lg-none py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:dashboard:user" aria-label="Dashboard" href="/dashboard">
Dashboard
</div>
<a class="Header-link d-block d-lg-none mr-0 mr-lg-3 py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15" href="https://github.com/jp000">
<img class="avatar" height="20" width="20" alt="@jp000" src="https://avatars0.githubusercontent.com/u/42966288?s=60&v=4" />
jp000
</div>
<div class="Header-item Header-item--full flex-justify-center d-lg-none position-relative">
<div class="css-truncate css-truncate-target width-fit position-absolute left-0 right-0 text-center">
<svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
<a class="Header-link" href="/jp000">jp000</a>
/
<a class="Header-link" href="/jp000/MapTools">MapTools</a>
<div class="Header-item mr-0 mr-lg-3 flex-order-1 flex-lg-order-none">
<a aria-label="You have no unread notifications" class="Header-link notification-indicator position-relative tooltipped tooltipped-s js-socket-channel js-notification-indicator" data-hotkey="g n" data-ga-click="Header, go to notifications, icon:read" data-channel="notification-changed:42966288" href="/notifications">
<span class="mail-status "></span>
<svg class="octicon octicon-bell" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z"/></svg>
<div class="Header-item position-relative d-none d-lg-flex">
<details class="details-overlay details-reset">
</div>
<div class="Header-item position-relative mr-0 d-none d-lg-flex">
<div class="pl-3 pr-3 f6 user-status-container js-user-status-context pb-1" data-url="/users/status?compact=1&link_mentions=0&truncate=1">
Clear status
Never
<ul class="dropdown-menu dropdown-menu-se pl-0 overflow-auto" style="width: 220px; max-height: 15.5em">
<li>
<button type="button" class="btn-link dropdown-item js-user-status-expire-button ws-normal" title="Never">
<span class="d-inline-block text-bold mb-1">Never</span>
<div class="f6 lh-condensed">Keep this status until you clear your status or edit your status.</div>
</button>
</li>
<li class="dropdown-divider" role="none"></li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 30 minutes" value="2019-09-11T14:48:42+02:00">
in 30 minutes
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 1 hour" value="2019-09-11T15:18:42+02:00">
in 1 hour
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 4 hours" value="2019-09-11T18:18:42+02:00">
in 4 hours
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="today" value="2019-09-11T23:59:59+02:00">
today
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="this week" value="2019-09-15T23:59:59+02:00">
this week
</button>
</li>
</ul>
<include-fragment class="js-user-status-org-picker" data-url="/users/status/organizations"></include-fragment>
</div>
<div class="d-flex flex-items-center flex-justify-between p-3 border-top">
<button type="submit" disabled class="width-full btn btn-primary mr-2 js-user-status-submit">
Set status
</button>
<button type="button" disabled class="width-full js-clear-user-status-button btn ml-2 ">
Clear status
</button>
</div>
Never
<ul class="dropdown-menu dropdown-menu-se pl-0 overflow-auto" style="width: 220px; max-height: 15.5em">
<li>
<button type="button" class="btn-link dropdown-item js-user-status-expire-button ws-normal" title="Never">
<span class="d-inline-block text-bold mb-1">Never</span>
<div class="f6 lh-condensed">Keep this status until you clear your status or edit your status.</div>
</button>
</li>
<li class="dropdown-divider" role="none"></li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 30 minutes" value="2019-09-11T14:48:42+02:00">
in 30 minutes
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 1 hour" value="2019-09-11T15:18:42+02:00">
in 1 hour
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 4 hours" value="2019-09-11T18:18:42+02:00">
in 4 hours
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="today" value="2019-09-11T23:59:59+02:00">
today
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="this week" value="2019-09-15T23:59:59+02:00">
this week
</button>
</li>
</ul>
<include-fragment class="js-user-status-org-picker" data-url="/users/status/organizations"></include-fragment>
</div>
<div class="d-flex flex-items-center flex-justify-between p-3 border-top">
<button type="submit" disabled class="width-full btn btn-primary mr-2 js-user-status-submit">
Set status
</button>
<button type="button" disabled class="width-full js-clear-user-status-button btn ml-2 ">
Clear status
</button>
</div>
</div>
<div role="none" class="dropdown-divider"></div>
<a role="menuitem" class="dropdown-item" href="/jp000" data-ga-click="Header, go to profile, text:your profile">Your profile</a>
<a role="menuitem" class="dropdown-item" href="/jp000?tab=repositories" data-ga-click="Header, go to repositories, text:your repositories">Your repositories</a>
<a role="menuitem" class="dropdown-item" href="/jp000?tab=projects" data-ga-click="Header, go to projects, text:your projects">Your projects</a>
<a role="menuitem" class="dropdown-item" href="/jp000?tab=stars" data-ga-click="Header, go to starred repos, text:your stars">Your stars</a>
<a role="menuitem" class="dropdown-item" href="https://gist.github.com/mine" data-ga-click="Header, your gists, text:your gists">Your gists</a>
<div role="none" class="dropdown-divider"></div>
<a role="menuitem" class="dropdown-item" href="https://help.github.com" data-ga-click="Header, go to help, text:help">Help</a>
<a role="menuitem" class="dropdown-item" href="/settings/profile" data-ga-click="Header, go to settings, icon:settings">Settings</a>
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="logout-form" action="/logout" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="/lMB7QGQURqWjAN/GmAbtb3b+4vz3Bd8p0vlrf+u3O3FM55WFuJjdQLi7feujxorimE79d5lufAs64AH4kjzRA==" />
<button type="submit" class="dropdown-item dropdown-signout" data-ga-click="Header, sign out, icon:logout" role="menuitem">
Sign out
</button>
</div>
<div id="js-flash-container">
<ul class="pagehead-actions">
<li hidden>
<include-fragment src="/jp000/MapTools/used_by_count">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-remote="true" class="clearfix js-social-form js-social-container" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="3biaLDIopHS0h5T2po4v89/k0hDQj6q9Bohswx+gAENz05cI7U4wo43UdllkMftT7jLe1wPHw8N+Q39LJNUZEw==" /> <input type="hidden" name="repository_id" value="147677406">
<details class="details-reset details-overlay select-menu float-left">
<summary class="select-menu-button float-left btn btn-sm btn-with-count" data-hydro-click="{"event_type":"repository.click","payload":{"target":"WATCH_BUTTON","repository_id":147677406,"client_id":"1555881961.1548660513","originating_request_id":"A9A3:62A2:414F4B:8F904F:5D78E60B","originating_url":"https://github.com/jp000/MapTools/blob/bf4df19fbfcf5c4dae997c81ae254b50219e91da/README.md","referrer":"https://github.com/jp000/MapTools/tree/bf4df19fbfcf5c4dae997c81ae254b50219e91da","user_id":42966288}}" data-hydro-click-hmac="a2201e2446a32dd0fac8b2c6c879a9ea052ea5c17b67db9f03f6c630902f33f8" data-ga-click="Repository, click Watch settings, action:blob#show"> <span data-menu-button>
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
Unwatch
</span>
<button type="submit" name="do" value="release_only" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
<svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
<div class="select-menu-item-text">
<span class="select-menu-item-heading">Releases only</span>
<span class="description">Be notified of new releases, and when participating or @mentioned.</span>
<span class="hidden-select-button-text" data-menu-button-contents>
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
Unwatch releases
</span>
</div>
</button>
<button type="submit" name="do" value="subscribed" class="select-menu-item width-full" aria-checked="true" role="menuitemradio">
<svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
<div class="select-menu-item-text">
<span class="select-menu-item-heading">Watching</span>
<span class="description">Be notified of all conversations.</span>
<span class="hidden-select-button-text" data-menu-button-contents>
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
Unwatch
</span>
</div>
</button>
<button type="submit" name="do" value="ignore" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
<svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
<div class="select-menu-item-text">
<span class="select-menu-item-heading">Ignoring</span>
<span class="description">Never be notified.</span>
<span class="hidden-select-button-text" data-menu-button-contents>
<svg class="octicon octicon-mute v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"/></svg>
Stop ignoring
</span>
</div>
</button>
</div>
</details-menu>
</details>
<a class="social-count js-social-count"
href="/jp000/MapTools/watchers"
aria-label="1 user is watching this repository">
1
</a>
<h1 class="public ">
<svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
</div>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /jp000/MapTools/issues" href="/jp000/MapTools/issues">
<svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg>
<span itemprop="name">Issues</span>
<span class="Counter">0</span>
<meta itemprop="position" content="2">
Pull requests 0
<a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /jp000/MapTools/projects" href="/jp000/MapTools/projects">
<svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
Projects
<span class="Counter" >0</span>
<a class="js-selected-navigation-item reponav-item" data-hotkey="g w" data-selected-links="repo_wiki /jp000/MapTools/wiki" href="/jp000/MapTools/wiki">
<svg class="octicon octicon-book" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z"/></svg>
Wiki
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a class="js-selected-navigation-item selected reponav-item" itemprop="url" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /jp000/MapTools" href="/jp000/MapTools">
<span itemprop="name">Code</span>
<meta itemprop="position" content="1">
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /jp000/MapTools/issues" href="/jp000/MapTools/issues">
<span itemprop="name">Issues</span>
<span class="Counter">0</span>
<meta itemprop="position" content="2">
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /jp000/MapTools/pulls" href="/jp000/MapTools/pulls">
<span itemprop="name">Pull requests</span>
<span class="Counter">0</span>
<meta itemprop="position" content="3">
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /jp000/MapTools/projects" href="/jp000/MapTools/projects">
<span itemprop="name">Projects</span>
<span class="Counter">0</span>
<meta itemprop="position" content="4">
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_wiki /jp000/MapTools/wiki" href="/jp000/MapTools/wiki">
<span itemprop="name">Wiki</span>
<meta itemprop="position" content="5">
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy code_scanning /jp000/MapTools/network/alerts" href="/jp000/MapTools/network/alerts">
<span itemprop="name">Security</span>
<meta itemprop="position" content="6">
<a class="d-none js-permalink-shortcut" data-hotkey="y" href="/jp000/MapTools/blob/bf4df19fbfcf5c4dae997c81ae254b50219e91da/README.md">Permalink</a>
<!-- blob contrib key: blob_contributors:v21:72e508dd2ba13fc50f8142b29a2f71c9 -->
<div class="d-flex flex-items-start flex-shrink-0 pb-3 flex-column flex-md-row">
<span class="d-flex flex-justify-between width-full width-md-auto">
<div class="BtnGroup flex-shrink-0 d-md-none">
<a href="/jp000/MapTools/find/bf4df19fbfcf5c4dae997c81ae254b50219e91da"
class="js-pjax-capture-input btn btn-sm BtnGroup-item"
data-pjax
data-hotkey="t">
Find file
</a>
<clipboard-copy value="README.md" class="btn btn-sm BtnGroup-item">
Copy path
</clipboard-copy>
</div>
</span>
<h2 id="blob-path" class="breadcrumb flex-auto min-width-0 text-normal flex-md-self-center ml-md-2 mr-md-3 my-2 my-md-0">
<span class="js-repo-root text-bold"><span class="js-path-segment"><a data-pjax="true" rel="nofollow" href="/jp000/MapTools/tree/bf4df19fbfcf5c4dae997c81ae254b50219e91da"><span>MapTools</span></a></span></span><span class="separator">/</span><strong class="final-path">README.md</strong>
</h2>
<div class="BtnGroup flex-shrink-0 d-none d-md-inline-block">
<a href="/jp000/MapTools/find/bf4df19fbfcf5c4dae997c81ae254b50219e91da"
class="js-pjax-capture-input btn btn-sm BtnGroup-item"
data-pjax
data-hotkey="t">
Find file
</a>
<clipboard-copy value="README.md" class="btn btn-sm BtnGroup-item">
Copy path
</clipboard-copy>
</div>
</div>
<div class="Box-body d-flex flex-items-center flex-auto f6 border-bottom-0 flex-wrap" >
<details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark float-left mr-2" id="blob_contributors_box">
<summary class="btn-link">
<span><strong>1</strong> contributor</span>
</summary>
<details-dialog
class="Box Box--overlay d-flex flex-column anim-fade-in fast"
aria-label="Users who have contributed to this file"
src="/jp000/MapTools/contributors/6a53557ace0ec186b3efdd71f404d91d29eb8968/README.md/list" preload>
<div class="Box-header">
<button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
<svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
</button>
<h3 class="Box-title">
Users who have contributed to this file
</h3>
</div>
<include-fragment class="octocat-spinner my-3" aria-label="Loading..."></include-fragment>
</details-dialog>
</details>
</div>
<div class="Box mt-3 position-relative">
<div class="BtnGroup">
<a id="raw-url" class="btn btn-sm BtnGroup-item" href="/jp000/MapTools/raw/bf4df19fbfcf5c4dae997c81ae254b50219e91da/README.md">Raw</a>
<a class="btn btn-sm js-update-url-with-hash BtnGroup-item" data-hotkey="b" href="/jp000/MapTools/blame/bf4df19fbfcf5c4dae997c81ae254b50219e91da/README.md">Blame</a>
<a rel="nofollow" class="btn btn-sm BtnGroup-item" href="/jp000/MapTools/commits/bf4df19fbfcf5c4dae997c81ae254b50219e91da/README.md">History</a>
</div>
<div>
<button class="btn-octicon disabled tooltipped tooltipped-nw hide-sm"
type="button"
disabled
aria-label="You must be on a branch to open this file in GitHub Desktop">
<svg class="octicon octicon-device-desktop" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z"/></svg>
</button>
<button type="button" class="btn-octicon disabled tooltipped tooltipped-nw"
aria-label="You must be on a branch to make or propose changes to this file">
<svg class="octicon octicon-pencil" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"/></svg>
</button>
<button type="button" class="btn-octicon btn-octicon-danger disabled tooltipped tooltipped-nw"
aria-label="You must be on a branch to make or propose changes to this file">
<svg class="octicon octicon-trashcan" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z"/></svg>
</button>
</div>
This is a set of different files and scripts to create user defined maps for the Garmin's Etrex 10
The mapping information is provided by OpenStreetMap
Given the following file structure
+Maps/
+mkgmap/
+splitter/
+e10/
+output/
- www.gpsies.com
=> draw tracks and download gpx files
- inkatlas.com
=> print maps
- geojson.io
=> nice drawing on maps and download geojson files (for polygons, lines and points)
- POILoaderforWindows
=> copy pois to the garmin
This is the low end Garmin GPS device with very limited resources. Some say it is too basic, but given the right tools it can be a marvel and it has very good battery life!
The idea is to have a map as large as possible with a minimal number of features required for your activity.
The above mentioned tools will help you split and reduce the size of the map to fit in your device (max 5 to 7 MB).
Also reserve some memory space for route tracking and extra POI
The different Python scripts will assist you in creating the proper maps, ready to be processed by mkgmap
You can also use the web site extract.bbbike.com to select portions of maps to download
The files in directory ./Maps/E10 (relations, lines, points, etc...) give the rules for element extraction and rendering on the GPS device
Examples lines (show rivers at different resolution with different rendering:
(waterway=river | waterway=canal | waterway=drain) & tunnel!=yes {name '${name}'} [0x1f resolution 18]
waterway=stream & tunnel!=yes [0x18 resolution 22]
Example point (show usefull POI's when wandering):
amenity~'biergarten|cafe|restaurant|bar|pub' {name '${name}'} [0x4600 resolution 24 default_name 'Cafe']
amenity=toilets [0x4e00 resolution 22 default_name 'Wc']
amenity=drinking_water|drinking_water=yes|drinkable=yes [0x5000 resolution 22 default_name 'Drink']
By giving a default name you can then search on the device for the nearest amenity
There are also rules to abbreviate names on the map, show routes that are part of relations (trails, bike routes, bus routes, etc.)
By tailoring those files, you can add or remove information that gets displayed on the device
Here is a simple example to get a map of island of Elba
cd Maps
wget -O elba.osm "http://overpass-api.de/api/interpreter?data=[out:xml];node(poly:\"42.70363 10.09403 42.70363 10.45383 42.87622 10.45383 42.87622 10.09403 42.70363 10.09403\");( ._; <;);out body;"
... or ...
wget -O elba.osm "http://overpass-api.de/api/interpreter?data=[out:xml];(area[name=\"Isola d'Elba\"][place=island];)->.x;(node(area.x);<;way(area.x);<;relation(area.x);<<;);out body;"
java -Xmx6000m -jar ".\mkgmap\mkgmap.jar" --style-file=".\e10" --gmapsupp --latin1 --add-pois-to-lines --add-pois-to-areas --check-styles --family-id=1000 --product-id=1 --output-dir=".\output\Elba" ".\Elba.osm" ".\e10\e10.txt"
copy /B ".\output\Elba\gmapsupp.img" ".\output\Elba\gmapbmap.img"
Have a look at OverpassApi.py for other variants or the documentation of the OverPassApi
Create a single map (gmapbmap.img) from an .osm input file and style directory
MakeSingle.bat "file_to_process(.osm)" "style_direcory"
Create a multiple map (splitter.jar and gmapbmap.jar) from an .osm input file and style directory, the input file is split first
Make.bat "file_to_process(.osm)" "style_direcory"
Uses the OverpassApi to fetch the data and pass it to mkgmap for rendering
Example: Get.bat Hong-Kong.dat
Those scripts are by no mean fully fledged applications, just quick&dirty code to get the job done. They can be hacked and adapted to automate repetitive processes, like regenerating the data for a map every so often.
Create a gpx file given a relation number. This can be used by the script bbbikeExtract.py to create bounding boxes
Given a gpx file, find all bounding boxes of a given surface
The output can be be passed to the site extract.bbbike.org
This contains functions to get data from overpass-api.de/api
with samples of different methods.
This will extract polygons defined in geojson format from geojson.io in a format suitable for Overpass API
It will also output lines and points coordinates in different formats, to paste into your queries.
Example:
- draw a square around Elba island, using
http://geojson.io
, save it as "map.geojson" - execute python Json2Overpass.py "map.geojson" => node(poly:"42.70363 10.09403 42.70363 10.45383 42.87622 10.45383 42.87622 10.09403 42.70363 10.09403");
- copy/paste the node info into the next line
- http://overpass-api.de/api/interpreter?data=[out:xml];*node(poly:"42.70363 10.09403 42.70363 10.45383 42.87622 10.45383 42.87622 10.09403 42.70363 10.09403");*( ._; <;);out body;
- rename the output file Elba.osm"
This will give you an 18MB of data
When you use the MakeSingle.Bat file, you will get a 282KB file (gmapbmap) that can be copied to your Etrex10 device.
You can also use this script to help the creation of POI files(.gpx or .csv) to download via POILoaderforWindows
</div>
Go
</main>
<a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com">
<svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
<script crossorigin="anonymous" integrity="sha512-brZO+/0M3pFpD1H0cX0At5oOmlIiMLGQlv2cpUeJW5aHkBrMOtee1r3VvQYb+ue8F4/STmgY75iKHZ6kS7GUGw==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-adfb23e8.js"></script>
<script crossorigin="anonymous" async="async" integrity="sha512-p9zMJLD+WiqdeK4Ge3DPg5e7iHDfhbUf5npDgmg2ZEE3iyDWuqobQY9sxrDVY25hWipYgWIFAJYfVwIqBf0OUw==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-0ad0c698.js"></script>