No one should ever be lost for the reason that they do not have a high quality offline map on their phone.

My name is Joseph Elfelt and I am the developer of the GeoJPG web app. I wrote the first version of GeoJPG mainly out of curiosity to see if I could make a "web app" that would display maps offline. There were early development versions that were complete fails as I tried various techniques and continued to learn about web apps in general.

Part of what I hope people find attractive about GeoJPG are the features it does *not* have. There are no ads, no tracking, no sign-up and no fees. Also, hopefully casual users will find it so reliable and easy to use that they will take the time to make a map and install it before heading out for a hike, bike, ride, paddle, climb, mushroom picking or anything else. After all, since a map on a phone adds no extra weight, why run the risk of getting lost for lack of a high quality map that works offline?

For a PDF with some screenshots see

For a PDF with more background on the GeoJPG project please see

For a description of my other projects you can visit

About GeoJPG software

There are two kinds of apps.

1. Native apps are typically obtained from app stores. They do not run in your browser. In order to have the same native app run on both iOS and Android devices, the developer must do twice as much work since iOS and Android use different programming languages.

2. Web apps, like GeoJPG, are web pages that include special coding that allows the web page to work offline. That coding saves a copy of the necessary files in a special browser cache only used by that web app. Your device must be online in order to read the files from a server and cache (i.e. save) them on your device. After the files are saved on your device, then the web app will work offline. Since web apps run in a browser, only a single programming language is required to make a web app that works on both iOS and Android devices.

In more technical terms, GeoJPG is a Progressive Web App (PWA) and uses the cache API to save files in a browser cache named GeoJPG_cache and it uses the fetch API to read those files. Those APIs (Application Program Interface) are built-in to mainstream browsers that you launch from your homescreen. Be careful that you are not using a custom browser that is part of a social media platform. Some of those custom browsers do not include the kind of API technology required by GeoJPG.

GeoJPG is coded with vanilla html, css and javascript. No coding frameworks were used. All necessary files to install GeoJPG so it will work offline are hosted on the GeoJPG server.

You do not get the GeoJPG software from an app store. Instead, start by opening the following link. If you decide not to install the software right away, then the GeoJPG web app will still open and you can display georeferenced JPG maps. However, you cannot install maps for offline use until you first install the software. There is an option under the Menu button that lets you install the software later in the session.

Open GeoJPG web app:

About GeoJPG maps

There are three options for getting georeferenced JPGs that you can install for offline use with the GeoJPG web app.

Option 1. You can use GISsurfer to make your own custom georeferenced JPG maps. GISsurfer is a general purpose web map I developed that has broad support for displaying GIS data. It can also display GPX files. Just like the GeoJPG software, the GISsurfer software has no ads, no tracking, no signup and no fees. If you learn how to use GISsurfer then you can make an unlimited variety of maps for almost anywhere in the world and view them offline on your mobile devices.

GISsurfer has a unique 'screenshot' feature lets you make a series of screenshots that exactly adjoin and are 100% map. A good way to learn how to use this screenshot feature is to start by making a map for your neighborhood. The documentation at Menu > Make your first map will walk you through the process for using GISsurfer screenshot mode to make a basic georeferenced JPG map for the area where you live.

After making your JPG map you need to put the JPG(s) online. No worries! For step-by-step instructions showing how to use Google Drive to host your JPG maps for free, click Menu > Help. See the section “Host files on Google Drive for free”.

Option 2. You can use various other software to make georeferenced JPGs. The JPG must be in the web Mercator projection and you must know the latitude longitude for the four edges of the area covered by the JPG.

To test the georeferencing data for any JPG start by putting the JPG online. Then make a link to open GISsurfer and display the JPG on top of various basemaps. Look around the edge of the JPG to check if it is correctly georeferenced. To see how to make a GISsurfer link that will open a JPG, click Menu > FAQ and scroll down to the section titled "JPG maps".

Option 3. You can use georeferenced JPGs that I made. Since I live near Redmond, Washington most of these JPG maps cover the nearby foothills and much of the Washington State Cascade Mountains. Some of these maps cover the area of a single day hike. Other maps consist of 25 (or more) screenshots stitched together into a JPG that covers 300+ square miles, has plenty of detail for backcountry travel and is about 8MB in size. Another set of these JPG maps cover Ventura County California. To find links to those JPGs and the georeference data for each one, click Menu > JPG maps anyone can use.