How we host 100% of charted US airspace without paying a dime
By Dominic Frank · September 5, 2026
[!INFO] Don’t want to read? Scroll through the pretty pictures :)
Since our business, Aviation Maps, reflect similar high standards to the rest of the aviation industry, I tasked myself, as the backend developer of Aviation Maps, with the work of keeping the map tiles that we serve current with the 56-day cycle. Here is a bit of a technical deep-dive into the workflow I have developed for Aviation Maps.
All pilots are familiar with Sectional Charts, updated every 56 days by the FAA. Not everyone knows that the FAA provides these on the official website, free for anyone to download. That is not the only interesting cost-saving measure we employ to keep our costs to a minimum. Keep reading to learn how we build a seamless map of the entire US airspace, and then try exploring it yourself!
Step 1: Acquiring FAA Raster Charts
The first step is to download all 53 Sectional Aeronautical Raster Charts GEO-TIFF Files from the official website. This is done using a simple Python script. The FAA always follows a simple pattern for downloading these files. https://aeronav.faa.gov/visual/{DATE}/sectional-files/{NAME}.zip, where {DATE} and {NAME} are the date of the 56-day cycle (September 3, 2026 at the time of writing) and name of the sectional chart, of which the names are always the same. (See the code below)
VERSION = "09-03-2026"
FAA_URL_TEMPLATE = "https://aeronav.faa.gov/visual/{version}/sectional-files/{name}.zip"
SECTIONAL_CHARTS = ["Point_Barrow", "Cape_Lisburne", "Dawson", "Fairbanks", "Nome", "Anchorage", "Juneau", "Ketchikan", "Seward", "McGrath", "Kodiak", "Bethel", "Cold_Bay", "Dutch_Harbor", "Western_Aleutian_Islands", "Western_Aleutian_Islands", "Halifax", "Montreal", "Lake_Huron", "Green_Bay", "Twin_Cities", "Billings", "Great_Falls", "Seattle", "New_York", "Detroit", "Chicago", "Omaha", "Cheyenne", "Salt_Lake_City", "Klamath_Falls", "Washington", "Cincinnati", "St_Louis", "Kansas_City", "Wichita", "Denver", "Las_Vegas", "San_Francisco", "Charlotte", "Atlanta", "Memphis", "Dallas-Ft_Worth", "Albuquerque", "Miami", "Jacksonville", "New_Orleans", "Houston", "San_Antonio", "El_Paso", "Phoenix", "Los_Angeles", "Brownsville", "Hawaiian_Islands"] By the end of the data acquisition process, we are left with a folder of all the sectionals files.
Step 2: Stitching together all 57 sectional charts into a single large map
Every .tif file provided by the FAA has geo-encoded information, which can be read and processed by a program like OSGeo4W which provides useful functions for translating and warping these maps into a single large map.
As you can see, doing so means some of the legends are overlapping useful parts of the map. I followed an incredibly helpful guide written by Kira Tully, Generating map tiles for FAA sectional charts with GDAL to fix this issue. She was kind enough to provide the shapefiles, sort of like cookie-cutters, for cutting out the legends from the borders of the map, which means our map tiles look seamless.
Why don’t you try it yourself??
TODO replace pic with Svelte interactive map
Step 3: Keeping server costs low for map tiles
Now that the full map has been created, we split it into map tiles, 256x256 squares covering a small section of the map. We do the same for higher zoom levels as well. You may see these tiles load in if you move to a different section of the map quickly.
The way we keep costs low is by adopting the PMTiles protocol, written by Brandon Liu as part of the open-source mapping project Protomaps. These are hosted in a Cloudflare R2 bucket, which supports HTTP range requests, meaning we don’t need a server awake 24/7 to provide tiles for our users. Because of math and how the protocol was designed, this keeps server costs to a minimum. Cloudflare doesn’t charge for data egress according to their official pricing page.
Conclusion
I hope this article has helped you to appreciate a bit of what goes unsung behind the scenes at Aviation Maps. All of these different technical challenges once took 100% of my mental focus. Through the work of thousands of maintainers of open-source software, the FAA, and Cloudflare, this is now a workflow I do once every 56 days to keep Aviation Maps up-to-date with the FAA’s latest chart cycle.
It is a great example of what goes on behind-the-scenes at Aviation Maps, where we must express creativity engineering a way to keep costs to a minimum while creating something both beautiful and useful. Now that you know how it works, try exploring it for yourself! You will no doubt start to notice map tiles in other mapping programs as well!
Return to all posts