I am able to get an offline tile set for the USA from here. However, I was wondering if it is possible to get satellite imagery of those tile sets. I have been checking online and most require to be connected to the internet and cache for 30 days then reconnected.

I would like to download satellite imagery tile set that I could just keep for like a year or so then download later.

I am currently using tileserver-gl to host the mbtiles tile set for offline mode.

Restrictions involved:

  • Javascript (Leaflet)
  • tileserver-gl requires .mbtiles
  • I'm wondering how much storage you will have available for offline storage? I took Snyder County PA's data which is a small county and it was 20GB's of imagery at 1 foot pixels. To create a Cache for speed it took 2 days of server time and was about 40 GB cached. Snyder was only 1 of 67 counties in PA. I can't imagine this on a tablet or phone. I know my laptop hated it. Jun 19, 2017 at 19:31
  • @BillChappell Yeah that is definitely overkill for devices. If satellite images for a county is that bad then I may just want to limit to properties. I simply would like to use satellite imagery to look around odd shaped terrain and structures that a simple terrain map doesn't suffice.
    – zyeek
    Jun 19, 2017 at 19:41
  • @BillChappell What the new goal would be if CPU and memory is that bad. Have a min of 2 zoom levels focused on maybe an acre property. My questions thought is how could I obtain these satellite images to use in my application. At the moment I want to setup the app I download the map for the designated area. That way I would just have to download the appropriate small regions per application area.
    – zyeek
    Jun 19, 2017 at 19:43
  • You can have satellite images at much broader scale, like Landsat at 30m. For raw data, have a loot at USGS (even for locations outside of USA)
    – JGH
    Jun 20, 2017 at 0:18
  • @JGH That looks pretty neat, but I am unsure how I can use that for a server to serve up the tiles as it normally would. The High Resolution Orthoimagery seem to look like what I want but varies in zoom level. I would need to zoom in pretty close. Enough to be able to easily place markers in between parking spots at a parking venue, for example.
    – zyeek
    Jun 20, 2017 at 0:40

2 Answers 2


EDIT as 2019-06-18: HRO (High Resolution Orthoimagery) is no longer available on https://viewer.nationalmap.gov/basic/. Instead, visit https://earthexplorer.usgs.gov/. You'll need an account (free to register) to download the TIF files.

The team of OpenMapTiles.org project works on a downloadable global satellite / aerial layer which is ready to be used similarly as the vector tiles.

See https://openmaptiles.com/satellite/

The initial announcement at https://twitter.com/klokantech/status/855071043442159617

The layer is made with MapTiler - http://maptiler.com/, which you can use yourself to produce MBTiles of very large raster areas - from public opendata or other sources. There is a Free version and even a free demo of the MapTiler Pro version available - able to tile extremely large areas. Cluster mode to speed up the rendering by using multiple computers is supported too.

If you are after the very high-resolution aerial imagery for USA or Europe we are preparing it too as downloadable tile package at https://openmaptiles.com/.

In the meanwhile, you can do also processing on your own. For example by downloading the free HRO (High Resolution Orthoimagery) or NAIP geodata from government.

Practically it means:

  1. Visit: https://viewer.nationalmap.gov/basic/
  2. Choose "Imagery - 1 foot (HRO)"
  3. Zoom or Find a place on the map which you need (be sure you really zoom in)
  4. Click on "Find Products"
  5. Choose the one you want and click on "Download"
  6. Unpack the downloaded zip - to see individual files (important is the .jp2)
  7. Install on your computer MapTiler - from http://www.maptiler.com/
  8. Start MapTiler - choose "Standard Tiles", drag and drop in the .jp2 file, click on "Choose bands" and "Ignore alpha channel (4th band)", location and coordinate system should be autodetected
  9. Follow with "Continue", choose output (MBTiles or folder, mobile app or upload to cloud hosting on Amazon S3 or Google), confirm with "Render" and select where to store the tiles on your computer
  10. Finished! You have got your perfectly GPS aligned map - ready to be used on the web or in mobile apps. Experiment with the MapTiler software - check http://www.maptiler.com/how-to/ and video tutorials at https://www.youtube.com/watch?v=by5sTBs1qOA&feature=youtu.be&list=PLGHe6Moaz52PiQd1mO-S9QrCjqSn1v-ay for more info

This way you get very high-detailed imagery - compatible with OpenMapTiles, where you can see parking lots and high details. For example: HRO MapTiler Free preview

  • Oh neat. So I am rather new at making it myself. Do you know any good sites that provide raster images for satellite layer that offers a really close zoom in? I have looked into usgs, but they do not offer the desired zoom level for which I needed.
    – zyeek
    Jun 20, 2017 at 18:08
  • It was mentioned that since I most likely only need a few zoom levels. If I could just take a raster image of a small area with the different zoom levels. How would I be able to get it to properly represent appropriate GPS coordinates? For example, I only need satellite image of a few very close zoom in levels of a parking lot.
    – zyeek
    Jun 20, 2017 at 18:14
  • I have updated my answer with detailed step-by-step tutorial - hope it helps!
    – MapTiler
    Jun 21, 2017 at 9:54
  • That worked perfectly! I had another question, 1) are there other places where I can find more up to date images? Seems I just need to look for anything that has .j2 and MapTiler can manage the rest. 2) If I were to get the Start version of MapTiler how bad would the pixelation be if zoom levels were set to about level 22. Currently what I am using is a bit blurry, but max zoom 18 isn't enough to place markers accurately through a UI.
    – zyeek
    Jun 21, 2017 at 19:09

The accepted answer didn't work for me because I was having problems with MapTiler crashing on OSX (a known bug) as well as being limited by the features available in the free version.

You can use the USGS HRO imagery from EarthExplorer mentioned in the accepted answer with QGIS, which is free and provides functionality that is only available in the Pro level of MapTiler.

Here's a full step-by-step of what worked for me:

  1. Find and download aerial imagery from USGS EarthExplorer
  2. Use QGIS to tile the raster files for use with Leaflet

Find and download aerial imagery from USGS EarthExplorer

This video has instructions: https://www.usgs.gov/media/videos/eros-earthexplorer-how-do-a-bulk-download I’ve also outlined the process here for reference.

  1. Create a new EROS account at: https://ers.cr.usgs.gov/
  2. Download and install the Bulk Download app https://earthexplorer.usgs.gov/bulk/ This is optional but makes it easier to download multiple images for a region. You may need to install a particular version of Java/JDK for the installer to work (my experience with macOS)
  3. Go to https://earthexplorer.usgs.gov/ and log in using your EROS account. This is a search tool to find imagery for a particular map area.
  4. Find the area you want to cover with your tiles. It is helpful to draw out the coverage on the map with a polygon because EarthExplorer will return the images which match that coverage area.
  5. Once an area is selected, go to Data Sets and choose Aerial > High Resolution Orthoimagery, then click Results >>.
  6. Preview the images on the map using the image and coverage toggles. EarthExplorer will likely return different images from different data sets (often collected different years) depending on the location.
    • You may need multiple images from the same data set to cover the area.
    • The metadata for each image has information about the resolution.
  7. Select the images that you want to use, and submit for bulk download. Alternatively, you can download them directly one by one.
  8. Open the Bulk Download app and login with the same EROS account.
  9. Go to File -> Open Order and find the bulk download order you created.
  10. Unzip the downloaded files (by default on my mac they were located inside the .app application directory)

Use QGIS to tile the raster files for use with Leaflet

  1. Download and install QGIS 3.14
  2. Open QGIS and click “Open data source manager” and select Raster.
  3. Find the .tif file(s) in the unzipped folder(s) and add them here (you can add multiple files and they should work seamlessly).
  4. Close the modal and open the processing toolbox (View > Panels > Processing Toolbox)
  5. Search for Generate XYZ tiles and choose whether you want mbtiles or a directory (mbtiles for OPs question)
  6. Input your desired parameters and output path for your tiles. Extent > Draw on canvas will allow you to select an area on the map canvas under the modal and only output tiles for that area.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.