Turn your list of summits, trails, and viewpoints into a beautiful, interactive map — no coding required.
PeakMaps is a WordPress plugin built for hiking blogs, outdoor clubs, tourism sites, and anyone who wants to showcase peaks, trails, and points of interest on a real, interactive map. Add a searchable database of locations, complete with GPX tracks and elevation profiles — then drop it into any page or post with a Gutenberg block or shortcode.
PeakMaps is completely free, with no peak-count cap, no expiring features, and no upgrade popups. PeakMaps Pro is a separate, optional add-on for sites that want Norwegian topographic maps (Kartverket), custom marker styles, extra data fields, on-map tools, GPX downloads, and bulk CSV import/export.
See it in action: demo table | demo map
Add peaks to your own dedicated database, attach GPX tracks, and PeakMaps takes care of the rest: rendering them on interactive Leaflet maps, generating a sortable and filterable table, calculating elevation profiles — all without a single line of code. Place as many maps and tables as you like, anywhere on your site, each with its own filters and settings.
[peakmaps] and [peakmaps_item]).PeakMaps Pro is a separate, optional add-on that extends the free plugin without removing anything from it. Pro adds:
🇳🇴 Norwegian Kartverket maps
Norway’s official topographic map, raster map, and nautical chart as additional background layers. When a Kartverket layer is active, Pro also refines elevation profiles against Kartverket’s own terrain model for extra accuracy.
🎨 Custom marker styles
Choose from circular, square, triangular, diamond, or star markers in any colour — or upload your own custom marker image.
📝 Five custom extra fields
Add up to five fields with labels you choose — difficulty, parking notes, permit info, or anything your project needs. Supports wildcards (*, ?), exclusion (!), and numeric comparisons (>, <, >=, <=) in filters.
🛠️ On-map tools
A distance-measuring tool and a «find my position» GPS button for visitors browsing on mobile.
⬇️ GPX download
Let visitors download GPX files, with an optional terms/consent dialog.
📥 CSV import and export
Bulk-load or update peaks from a spreadsheet, with insert mode (add new entries) and update mode (fill in missing fields on existing ones). Export your full peak database to CSV at any time — perfect for backups or editing in Excel.
Find out more about PeakMaps Pro
This plugin connects to external services to display maps, elevation profiles, and GPX tracks. Details for each service are below.
Map tiles (loaded directly by the visitor’s browser)
When a map is shown, the visitor’s browser requests map tile images (small square map images) directly from one or more of the following providers, depending on which background map is selected. Only standard tile-image requests are sent (map coordinates, zoom level, and the browser’s normal request headers such as IP address and user agent) — no personal data, peak data, or site content is transmitted beyond what a normal image request contains.
GPX file proxy (server-side request)
The server also fetches GPX track files, via a proxy, from the URLs stored on each peak (so the file can be shown on a map without cross-origin browser restrictions). The proxy only fetches URLs that exactly match a gpx_url already saved on a peak in this site’s own database; no other URL can be requested through it. Where a GPX file is hosted determines which third party (if any) receives that request — this is set by the site owner when adding a peak, not by this plugin’s own servers.
This plugin’s own frontend script, assets/js/nu_script.js, is shipped as a whitespace-minified build for faster loading. Its full human-readable source — same code, same behavior, just formatted — is included in this plugin at assets/src/nu_script.js. No bundler, transpiler, or other build step is used beyond whitespace minification; regenerating the minified file from the source is a single pass through any standard JS minifier.
All other JavaScript and CSS files written for this plugin (everything under assets/js/ and assets/css/ not listed below) are already shipped in their normal, unminified, human-readable form — no separate source is needed for those.
Bundled third-party libraries (Leaflet, Leaflet.markercluster, Leaflet.fullscreen, Leaflet.UTM, GPXParser.js) are minified as distributed upstream; each file includes a header comment with its name, license, and source repository URL.
This plugin’s map displays background map tiles from a small set of publicly available tile providers, selectable per-site under PeakMaps Settings Background maps. Each provider’s tiles are only loaded when the site owner has selected that specific layer to be shown on the map — no data is sent to any of them unless a map using that layer is actually displayed to a visitor. The data sent in every case is limited to what any map-tile request needs: the visitor’s browser requests image tiles for the map area currently in view (an approximate geographic tile coordinate, not the visitor’s precise location), the same as loading any other embedded map.
tile.openstreetmap.org. Terms of use · Privacy policytile.opentopomap.org. Usage policy · OpenStreetMap privacy policy (OpenTopoMap does not publish a separate one)server.arcgisonline.com. Terms of use · Privacy policybasemaps.cartocdn.com. Terms of use · Privacy policy