GPX Route Map

Àpèjúwe

GPX Route Map turns a GPX file into an interactive map on the front end of your site. Drop the block into any post or page, pick a .gpx file, and visitors get:

  • An interactive OpenStreetMap map powered by MapLibre GL.
  • The track drawn as a route line with start and end markers.
  • Support for both GPX tracks (<trk>) and GPX routes (<rte>), e.g. Garmin Connect course exports.
  • Waypoint markers with popups for any <wpt> points in the file.
  • A stats bar: distance, elevation gain, elevation loss and max elevation.
  • A hand-drawn elevation profile you can scrub with mouse or touch, the position syncs onto the map.

The map loads lazily (only when it scrolls into view) so it never slows down your page, and multiple maps can live on the same page.

You can author tracks in any GPX tool, for example the free gpx.studio editor, then upload the resulting file to your Media Library.

OpenStreetMap tile usage

By default the map uses OpenStreetMapÌtumọ̀ Yorùbá: ’s public tile server, an external service. When a page with a map is viewed, the visitorÌtumọ̀ Yorùbá: ’s browser loads map tiles directly from tile.openstreetmap.org, which means that server receives the visitorÌtumọ̀ Yorùbá: ’s IP address, browser User-Agent and the coordinates of the map area viewed. See the OpenStreetMap Tile Usage Policy and the OSMF Privacy Policy. The same data is sent to any custom tile provider you configure instead.

The public OSM tile server is rate-limited and is not intended for high-traffic sites. For busy sites, set a custom tile provider in the blockÌtumọ̀ Yorùbá: ’s Map tiles panel (or via the gpxrm_tile_url filter). Attribution to OpenStreetMap is always shown, as the license requires.

Source code

The front-end JavaScript in build/ is minified (the block editor script is not, so that its strings stay translatable). The human-readable source lives in the pluginÌtumọ̀ Yorùbá: ’s src/ directory, which is included in this plugin, and is also available with full build instructions at the public repository: https://github.com/SirLouen/gpx-route-map. The plugin is built with Vite (pnpm install && pnpm run build).

Usage

Block: search for “GPX Route Map” in the block inserter, then choose a GPX file.

Shortcode: [gpx_route_map]

Examples:

[gpx_route_map id="123"] - render the GPX attachment with ID 123.
[gpx_route_map gpx="https://example.com/route.gpx" height="520" elevation="false"]

Shortcode attributes:

  • id Ìtumọ̀ Yorùbá: – Attachment ID of a .gpx file uploaded to the Media Library.
  • gpx Ìtumọ̀ Yorùbá: – Attachment ID, or an absolute URL to a .gpx file (alternative to id).
  • height Ìtumọ̀ Yorùbá: – Map height in pixels, from 200 to 1200. Default: 480.
  • stats Ìtumọ̀ Yorùbá: – Show the stats bar (distance, elevation, waypoints). true or false. Default: true.
  • elevation Ìtumọ̀ Yorùbá: – Show the interactive elevation profile. true or false. Default: true.
  • maxzoom Ìtumọ̀ Yorùbá: – Maximum zoom level, from 1 to 22. Default: 17.
  • tile Ìtumọ̀ Yorùbá: – Custom raster tile URL template using {z}/{x}/{y}. Default: OpenStreetMap.

Provide either id or gpx. The block exposes the same options in its sidebar (Source, Display and Map tiles panels).

Filters (for developers):

  • gpxrm_tile_url Ìtumọ̀ Yorùbá: – change the default raster tile URL template.
  • gpxrm_tile_attribution Ìtumọ̀ Yorùbá: – change the attribution HTML.

Àwọn àwòrán ìbòjú

Àwọn ìdí

Plugin yìí pèsè 1 ìdí.

  • GPX Route Map Render a GPX track as an interactive OpenStreetMap map with waypoints, distance and an elevation profile.

Ìgbéwọlẹ̀

  1. Upload the gpx-route-map folder to /wp-content/plugins/, or install through the Plugins screen.
  2. Activate the plugin.
  3. Add the GPX Route Map block to a post or page and select a GPX file, or use the shortcode.

FAQ

Does it require Advanced Custom Fields or any other plugin?

No. It has no plugin dependencies and works with core WordPress.

Where do the maps and elevation come from?

Map rendering uses MapLibre GL JS (BSD-3-Clause) with OpenStreetMap raster tiles. The track, elevation profile and the distance/elevation stats are all computed from your GPX file in the browser. When you add the block, those stats are saved with it so the summary still shows without JavaScript.

Can I use my own map tiles?

Yes, set a custom tile URL in the blockÌtumọ̀ Yorùbá: ’s Map tiles panel or with the gpxrm_tile_url filter.

Can I link a GPX file hosted on another site?

Only if that host allows cross-origin (CORS) requests, because the visitorÌtumọ̀ Yorùbá: ’s browser fetches the file directly, and most external sites donÌtumọ̀ Yorùbá: ’t send the required header. The front end then shows “Could not load GPX file.” even though the link opens fine in a browser tab. Uploading the file to your Media Library is the reliable option.

Why donÌtumọ̀ Yorùbá: ’t my existing GPX files appear in the media picker?

GPX files uploaded before this plugin was activated may be stored with a generic XML type or no type at all. The picker shows GPX and XML types; files stored with an empty or unrelated type wonÌtumọ̀ Yorùbá: ’t appear. Re-upload them to fix the stored type. On multisite, the networkÌtumọ̀ Yorùbá: ’s “Upload file types” setting must also include gpx.

The front end says “Map failed to load.” WhatÌtumọ̀ Yorùbá: ’s wrong?

The map library could not be downloaded. The plugin loads its map code as a native JavaScript module, which optimization plugins normally leave alone. But if yours is configured to combine, inline or relocate module scripts, exclude this pluginÌtumọ̀ Yorùbá: ’s view script from it. Visitors on a flaky connection can simply click the message to retry.

Àwọn àgbéyẹ̀wò

Kò sí àwọn àgbéyẹ̀wò fún plugin yìí.

Àwọn Olùkópa & Olùgbéejáde

“GPX Route Map” jẹ́ ètò ìṣàmúlò orísun ṣíṣí sílẹ̀. Àwọn ènìyàn wọ̀nyí ti ṣe ìkópa sí plugin yìí.

Àwọn Olùkópa

Túmọ̀ “GPX Route Map” sí èdè rẹ.

Ṣe o nífẹ̀ẹ́ sí ìdàgbàsókè?

Ṣàwárí koodu, ṣàyẹ̀wò ibi ìpamọ́ SVN, tàbí ṣe àgbékalẹ̀ sí àkọsílẹ̀ ìdàgbàsókè nípasẹ̀ RSS.

Àkọsílẹ̀ àwọn àyípadà

1.2.0

  • Full Spanish (es_ES) translation.
  • The plugin is now fully translatable: every string in the block editor, the stats bar and the front-end messages can be translated, and a .pot template is bundled for translators.

1.1.0

  • Route statistics (distance, elevation gain/loss, max elevation and waypoint count) are now computed in your browser when the block is added and saved with it — a single source of truth that removes a duplicate server-side parser. The stats bar shown without JavaScript now also includes the waypoint count.
  • The [gpx_route_map] shortcode now fills its stats bar with JavaScript; the block continues to show statistics without JavaScript.

1.0.0

  • Initial release: GPX Route Map block and [gpx_route_map] shortcode with MapLibre map, waypoints, stats and an interactive elevation profile.