Garmin Custom Maps KMZ — Easy Way to Load Custom Maps on Oregon without IMG Build
Garmin Custom Maps KMZ is a special flavor of standard KMZ that has been understood since 2010 by Garmin portable navigators of the Oregon, Colorado, Dakota, GPSMAP 62/64/65/66, Montana, Etrex 20/30/32 series and senior Fenix watches. Inside — an ordinary ZIP with doc.kml, but instead of POI points and lines, it contains GroundOverlay sections referencing JPEG images, each tied to four geographic corners. The device renders these JPEG tiles directly on top of its base map, as if you had stuck transparent slides onto a physical map. The main value — no need to build a real Garmin IMG: no cgpsmapper, no mkgmap, no signing. Just drop the finished .kmz into the Garmin/CustomMaps/ folder on the device — and in 30 seconds the map appears in the layer list.

History: Custom Maps as the answer to IMG-build complexity
Before 2010 the only way to load your own map onto a Garmin Oregon was to build a real vector Garmin IMG. That's a long pipeline with mkgmap, splitter, routable tags, POI typing, labels. An enthusiast spent a weekend on the first build and a week debugging it — when all they wanted was a scanned topographic map of their home district on the device's screen during a hike.
In August 2010 Garmin released firmware with "Custom Maps" support straight away on Oregon 200/300/400/450/550, Colorado, Dakota, GPSMAP 62. The idea is maximally simple: take standard KMZ (a format already standardized by OGC and understood by Google Earth), pull the GroundOverlay element from the KML 2.2 spec, add limits on JPEG size and overlay count — and the device will render someone else's raster maps over its own vector base.
The solution worked because of the tradeoff. Full vector IMG provides routing, search, text labels — but takes hours to make. Custom Maps KMZ provides a visual layer in 5 minutes — no routing, no search, just "as a picture", but visually it's a full map with any style (topography, satellite, OSM, your own rendering). By 2015 support expanded to Etrex 20/30/32, Montana 600/650/680, GPSMAP 64/65/66, Fenix 5 Plus / 6 / 7 — now almost every Garmin touring device with a color screen can do it.
Limits and internal structure
Custom Maps KMZ is technically the same ZIP with doc.kml described in our standard KMZ article, but Garmin imposes hard limits for the embedded hardware:
- Up to 100 JPEG overlays in one file. Need more — split across multiple KMZs.
- Each image ≤ 1 megapixel. In practice that's ≈ 1024×1024 px or 1280×800 px. The device won't open a 2048×2048 tile — you'll get an "image too large" error.
- Total file size ≤ 500 MB. Hardware ceiling for storage and load speed.
- Longitude span between extreme corners ≤ ~120 km. Wider bbox triggers a "zone span" warning. Not a problem for a hike, but a hard cap for region-scale areas.
- JPEG only. PNG overlays aren't supported — transparency is ignored, flatten onto white first.
Inside doc.kml, each JPEG is described by its own section:
<GroundOverlay>
<name>tile-001</name>
<drawOrder>50</drawOrder>
<Icon>
<href>files/tile-001.jpg</href>
</Icon>
<LatLonBox>
<north>59.9450</north>
<south>59.9300</south>
<east>30.3450</east>
<west>30.3200</west>
</LatLonBox>
</GroundOverlay>
drawOrder controls stacking — higher value draws on top. The device iterates overlays inside the current viewport and lays them onto the base. Tiles are cached on the device's flash; the first view is slow, subsequent ones are instant.

Use cases
Tourist district for a hiking trip. The most common scenario — assemble a 10×10 km KMZ overlay over the future route area, with a style suited to the forest (greenery, trails, streams, contour lines). The device shows the native world base at low zoom and switches to your detailed OSM render on zoom-in. Ideal for hikes in undeveloped regions (Karelia, Altai, Caucasus), where Garmin's stock maps show only rivers and major roads.
Scanned topographic map. You have a paper Soviet 1:50000 topo of the Kodar or Sikhote-Alin region — scan at 600 dpi, georeference in QGIS via the Georeferencer plugin, slice into a JPEG grid. An 80-overlay KMZ pack — and that map travels with you on an Oregon 700 into any mountains.
Satellite imagery. Bing/Maxar/ESRI World Imagery — pull tiles via SAS Planet, repack as KMZ. Useful for geologists and archaeologists who need real landcover, not schematic OSM polygons.
High-detail city map. A tourist is going to Prague — renders a KMZ with a detailed OSM map of the 5×5 km historic center, all POIs (restaurants, museums, pharmacies), pedestrian routes. On the Etrex 32 display — a crisp city map without internet.
Workflow in OSM2CDR
The Custom Maps KMZ packaging pipeline in OSM2CDR builds on our standard rendering + an external tile split:
- OSM render to PNG. Via
/api/render?format=image&bbox=...&style=...&width=4096&height=4096we get a raster render of the area in the chosen style (standard OSM, topographic, contrast, hiking). - Tile split into square pieces. An external script slices the large PNG into a 1024×1024 grid (or 1280×800 for wide bboxes). For a 10×10 km area at zoom 15 this gives roughly 16–25 tiles — comfortably within the 100 limit.
- JPEG conversion at fixed quality. Each tile saves as JPEG quality=85: a balance between size (≈200–400 KB per tile) and readability (no visible compression artifacts on street lines).
- Build
doc.kml. The script writes XML listing<GroundOverlay>sections, computing each tile'sLatLonBoxfrom the source bbox and grid index. - ZIP packaging. Standard ZIP with
doc.kmlat the root and afiles/folder containing JPEG tiles. Extension.kmz.
On the device side: connect the Garmin via USB, copy the .kmz to Garmin/CustomMaps/, disconnect. Within 30 seconds the device discovers the new layers in Setup → Map → Map Information → Select Map. Tick the checkbox — and the overlay appears over the base.
On our platform garmin-kmz is available as an export format on the /formats/garmin-kmz/ landing. Tile split and final assembly happen server-side without user intervention — you receive a ready .kmz in a minute or two.

Custom Maps KMZ vs IMG vs JNX
Three ways to load your own map onto a Garmin:
Garmin IMG — vector. Full routing, address search, text labels, multi-zoom levels. Downsides: complex mkgmap build (hours), needs TYP files for styling, requires signing on some models. When to pick: production multi-country map, routing required.
Garmin JNX — raster pyramid. Raster tiles with multiple zoom levels, BirdsEye Imagery format. High quality but proprietary — officially requires a BirdsEye Select subscription. Unsigned JNX works only on jailbroken firmware. When to pick: production raster maps with many zooms (if subscription available).
Garmin Custom Maps KMZ — flat raster. One zoom level (the one your JPEG tiles were rendered at), no routing, no search. But 5-minute build, open format, no signing. When to pick: a one-off map for a specific hike or trip, home experiments, scanned topography.
Simply put: IMG for serious navigation, JNX for commercial raster, Custom Maps KMZ for everything else. In 80% of cases a tourist actually needs KMZ — the cheapest way to get "your own map in your pocket".
Closing
Garmin Custom Maps KMZ is the ideal compromise between "do nothing and use the stock map" and "spend the weekend assembling IMG". In 5 minutes you get a raster layer over the Garmin base, with any style and any detail level within the 1 MP per tile cap. OSM2CDR automates the entire pipeline — from PostGIS query to final ZIP — and produces a ready file you only need to copy to the device folder.
Ready to grab a KMZ for your next hike? Open the /formats/garmin-kmz/ landing, pick the region on the map, choose a style (standard, topographic, hiking) and the garmin-kmz format — in a minute you'll download a .kmz ready to drop into Garmin/CustomMaps/.
Get a Garmin Custom Maps KMZ in a Minute
Related
- KMZ — zipped KML with resources
- Garmin IMG — vector map for touring navigators
- Garmin JNX — BirdsEye Imagery raster pyramid
- KML — complete format guide
- Garmin Custom Maps KMZ landing
Sources
- Garmin Custom Maps Help — garmin.com/en-US/garmin-technology/custom-maps/
- Garmin Custom Maps support documents — support.garmin.com
- OGC KML 2.2 Specification, GroundOverlay — www.ogc.org/standards/kml/
- Wikipedia, Garmin Custom Maps — en.wikipedia.org/wiki/Keyhole_Markup_Language