GTL Maps Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
GTL Maps is built for cycling and outdoor tourism websites that need to publish curated routes with detailed GPX data. The plugin registers a “Route” custom post type, handles GPX upload and parsing, and renders interactive Leaflet maps via shortcode or automatically above single route posts. It also provides a “Point of Interest” post type to highlight attractions around each route and exposes REST API endpoints for custom front-end integrations.
Key features:
- Upload GPX files and automatically compute distance, elevation gain/loss, and bounding boxes.
- Display interactive Leaflet maps with optional elevation profile and POI filtering.
- Maintain POI categories with custom icons and associate POIs with nearby routes.
- Provide REST API endpoints (
gtl/v1/routesandgtl/v1/pois) so modern front-ends can consume the data. - Includes Gutenberg/widget support via shortcodes and dedicated widgets for route details and POI lists.
Features
- add Astra theme for full-width demo page support (fb54a97)
- Add code coverage and fix failing tests (#24) (b281667)
- add CODEOWNERS file for automatic review assignment (#34) (24f782d)
- add custom icons for waypoints and POI categories (cb8d418)
- add specialized OpenCode sub-agents for WordPress development (fe32f6c)
- Add specialized OpenCode sub-agents for WordPress development (7d88493)
- add support for GPX waypoint visualization with default icons (a07e063)
- add wp-env development setup with sample data (638d48c)
- Add wp-env development setup with sample data (61e50ab)
- enhance demo page with comprehensive shortcode examples (bd94581)
- enhance release workflow with security and validation (#21) (6562480)
- replace sample GPX routes with real Rome cycling routes (470ae23)
- replace sample routes with Italian inter-city routes (3634d1b)
Bug Fixes
- add expression syntax to validate-release condition (d2ffa3e)
- add missing period and remove trailing whitespace (e5bbd07)
- add retry mechanism and test instance check in wp-env workflow (1692ea1)
- add timeout to logs step to prevent hanging (f7ba4e3)
- add write permissions for coverage badge commit (04a15aa)
- auto-activate plugin in CI if not already active (5844092)
- auto-create .htaccess file for wp-env permalink support (273eb6c)
- category shows only related poi (3eb51d9)
- configure make-pot workflow for pull requests (cd2583f)
- correct POI JSON structure to match import script (ca4cbdc)
- escape string (368a1fa)
- HEREDOC exit code issue in setup script (6322862)
- improve POI association and shortcode escaping (ee7b388)
- improve route ID extraction with better error handling (dc7ef68)
- linter and test errors (db884d1)
- mobile scroll point (432ba04)
- POI filter panel title and button visibility across themes (d6d9458)
- remove conflicting mappings from wp-env config (9d7c71b)
- remove invalid conditional check in POI relink script (679544e)
- remove waypoints from GPX files to prevent map marker clutter (b638507)
- replace JPEG-as-PNG screenshots with true PNG files (#35) (a5b091b)
- resolve workflow errors (113f45e)
- set failOnWarning=false to prevent CI failure on deprecations (271b88a)
- simplify validate-release workflow condition (8326112)
- skip POT PR creation on pull request events (7fd1d9c)
- specify correct coverage report filename (17b699e)
- update WordPress deploy action to use correct 10up action (5ee6cee)
- use correct meta key for GPX attachment ID (3502e08)
- use correct parameter format for wp-cli command (a0e4aa1)
- use dynamic route IDs in demo page content (78462e7)
- use L.Icon object for waypoint markers instead of icon URLs (a176582)
- use PHP-compatible coverage badge generator (207e2d4)
- use pre-installed wp-cli instead of manual download (d890eaa)
- validate-release workflow condition on line 16 (b0d6249)
- waypoint popup and POI icon assignment in wp-env (6498590)
- workflows: use multiline format for validate-release if condition (18f5d39)
Miscellaneous Chores
- add .wordpress.org to .gitignore to prevent tracking sensitive files (33eb9eb)
- add collapsed poi panel (610afa0)
- add core poi relink function (17bcbec)
- add helper scripts for POI icon testing and debugging (edc0461)
- deps: bump actions/checkout from 4 to 6 (#30) (ace2ced)
- deps: bump actions/upload-artifact from 4 to 6 (#29) (33e00b5)
- deps: bump peter-evans/create-pull-request from 6 to 8 (#28) (a56998c)
- increase words trim (000df0c)
- initial commit (9073aa3)
- main: release 0.0.10 (#10) (2ddcd33)
- main: release 0.0.11 (#11) (aec277d)
- main: release 0.0.12 (#12) (d3ab487)
- main: release 0.0.13 (#13) (429e7dd)
- main: release 0.0.14 (#14) (8ef14d2)
- main: release 0.0.15 (#15) (d1550b0)
- main: release 0.0.16 (#16) (58dcbed)
- main: release 0.0.17 (#17) (6407e26)
- main: release 0.0.18 (#18) (7aa9a44)
- main: release 0.0.19 (#19) (8dfd7f9)
- main: release 0.0.20 (#20) (79e1da1)
- main: release 0.0.4 (#4) (1fec03f)
- main: release 0.0.5 (#5) (f2c7a0b)
- main: release 0.0.6 (#6) (32f9c3f)
- main: release 0.0.7 (#7) (ce7f2c7)
- main: release 0.0.8 (#8) (020b6c2)
- main: release 0.0.9 (#9) (92882a7)
- move footer in body card (440e493)
- new behaviour sidecard (682b120)
- pipeline update (eecc42e)
- prepare plugin for WordPress.org directory submission (#36) (a1d639d)
- remove author metadata from sample GPX files (51852de)
- remove unused comment (dea7ebe)
- trigger new release (74f4de8)
- trigger relase (e193663)
- trigger release please (de8219b)
- update (e4ae6a2)
- update (3becff4)
- update (3138eed)
- update (cd01092)
- update (be31b75)
- update (82f0c1d)
- update (29aec77)
- update (dc820f2)
- update (0b0ba7b)
- update (4d1a116)
- update (14e041f)
- update (5e21407)
- update (324fafb)
- update (35c73c8)
- update ci (e289307)
- update coverage badge [skip ci] (cbd31e1)
- update maps url (7722dbf)
- update readme (29e7562)
- update readme (69614e7)
- update readme.txt (58ce69f)
- update strings (56a3912)
- update strings items (45e7143)
- update sync (c16ea00)
- update sync files (9b2f299)
- update testing info (a91d124)
[0.1.0](https://github.com/hevelius/gtl-maps/compare/0.0.20…0.1.0) (2026-02-19)
Features
- add Astra theme for full-width demo page support (fb54a97)
- Add code coverage and fix failing tests (#24) (b281667)
- add CODEOWNERS file for automatic review assignment (#34) (24f782d)
- add custom icons for waypoints and POI categories (cb8d418)
- add specialized OpenCode sub-agents for WordPress development (fe32f6c)
- Add specialized OpenCode sub-agents for WordPress development (7d88493)
- add support for GPX waypoint visualization with default icons (a07e063)
- add wp-env development setup with sample data (638d48c)
- Add wp-env development setup with sample data (61e50ab)
- enhance demo page with comprehensive shortcode examples (bd94581)
- enhance release workflow with security and validation (#21) (6562480)
- replace sample GPX routes with real Rome cycling routes (470ae23)
- replace sample routes with Italian inter-city routes (3634d1b)
Bug Fixes
- add expression syntax to validate-release condition (d2ffa3e)
- add missing period and remove trailing whitespace (e5bbd07)
- add retry mechanism and test instance check in wp-env workflow (1692ea1)
- add timeout to logs step to prevent hanging (f7ba4e3)
- add write permissions for coverage badge commit (04a15aa)
- auto-activate plugin in CI if not already active (5844092)
- auto-create .htaccess file for wp-env permalink support (273eb6c)
- category shows only related poi (3eb51d9)
- configure make-pot workflow for pull requests (cd2583f)
- correct POI JSON structure to match import script (ca4cbdc)
- escape string (368a1fa)
- HEREDOC exit code issue in setup script (6322862)
- improve POI association and shortcode escaping (ee7b388)
- improve route ID extraction with better error handling (dc7ef68)
- linter and test errors (db884d1)
- mobile scroll point (432ba04)
- POI filter panel title and button visibility across themes (d6d9458)
- remove conflicting mappings from wp-env config (9d7c71b)
- remove invalid conditional check in POI relink script (679544e)
- remove waypoints from GPX files to prevent map marker clutter (b638507)
- replace JPEG-as-PNG screenshots with true PNG files (#35) (a5b091b)
- resolve workflow errors (113f45e)
- set failOnWarning=false to prevent CI failure on deprecations (271b88a)
- simplify validate-release workflow condition (8326112)
- skip POT PR creation on pull request events (7fd1d9c)
- specify correct coverage report filename (17b699e)
- update WordPress deploy action to use correct 10up action (5ee6cee)
- use correct meta key for GPX attachment ID (3502e08)
- use correct parameter format for wp-cli command (a0e4aa1)
- use dynamic route IDs in demo page content (78462e7)
- use L.Icon object for waypoint markers instead of icon URLs (a176582)
- use PHP-compatible coverage badge generator (207e2d4)
- use pre-installed wp-cli instead of manual download (d890eaa)
- validate-release workflow condition on line 16 (b0d6249)
- waypoint popup and POI icon assignment in wp-env (6498590)
- workflows: use multiline format for validate-release if condition (18f5d39)
Miscellaneous Chores
- add .wordpress.org to .gitignore to prevent tracking sensitive files (33eb9eb)
- add collapsed poi panel (610afa0)
- add core poi relink function (17bcbec)
- add helper scripts for POI icon testing and debugging (edc0461)
- deps: bump actions/checkout from 4 to 6 (#30) (ace2ced)
- deps: bump actions/upload-artifact from 4 to 6 (#29) (33e00b5)
- deps: bump peter-evans/create-pull-request from 6 to 8 (#28) (a56998c)
- increase words trim (000df0c)
- initial commit (9073aa3)
- main: release 0.0.10 (#10) (2ddcd33)
- main: release 0.0.11 (#11) (aec277d)
- main: release 0.0.12 (#12) (d3ab487)
- main: release 0.0.13 (#13) (429e7dd)
- main: release 0.0.14 (#14) (8ef14d2)
- main: release 0.0.15 (#15) (d1550b0)
- main: release 0.0.16 (#16) (58dcbed)
- main: release 0.0.17 (#17) (6407e26)
- main: release 0.0.18 (#18) (7aa9a44)
- main: release 0.0.19 (#19) (8dfd7f9)
- main: release 0.0.20 (#20) (79e1da1)
- main: release 0.0.4 (#4) (1fec03f)
- main: release 0.0.5 (#5) (f2c7a0b)
- main: release 0.0.6 (#6) (32f9c3f)
- main: release 0.0.7 (#7) (ce7f2c7)
- main: release 0.0.8 (#8) (020b6c2)
- main: release 0.0.9 (#9) (92882a7)
- move footer in body card (440e493)
- new behaviour sidecard (682b120)
- pipeline update (eecc42e)
- prepare plugin for WordPress.org directory submission (#36) (a1d639d)
- remove author metadata from sample GPX files (51852de)
- remove unused comment (dea7ebe)
- trigger new release (74f4de8)
- trigger relase (e193663)
- trigger release please (de8219b)
- update (e4ae6a2)
- update (3becff4)
- update (3138eed)
- update (cd01092)
- update (be31b75)
- update (82f0c1d)
- update (29aec77)
- update (dc820f2)
- update (0b0ba7b)
- update (4d1a116)
- update (14e041f)
- update (5e21407)
- update (324fafb)
- update (35c73c8)
- update ci (e289307)
- update coverage badge [skip ci] (cbd31e1)
- update maps url (7722dbf)
- update readme (29e7562)
- update readme (69614e7)
- update readme.txt (58ce69f)
- update strings (56a3912)
- update strings items (45e7143)
- update sync (c16ea00)
- update sync files (9b2f299)
- update testing info (a91d124)
[0.0.20](https://github.com/hevelius/gtl-maps/compare/0.0.19…0.0.20) (2025-11-29)
Bug Fixes
- mobile scroll point (af7a31c)
[0.0.19](https://github.com/hevelius/gtl-maps/compare/0.0.18…0.0.19) (2025-11-08)
Bug Fixes
- linter and test errors (76199de)
Miscellaneous Chores
- add core poi relink function (62b0807)
[0.0.18](https://github.com/hevelius/gtl-maps/compare/0.0.17…0.0.18) (2025-11-08)
Miscellaneous Chores
- add collapsed poi panel (7223174)
- increase words trim (c494b41)
- move footer in body card (c580774)
- new behaviour sidecard (7023e38)
- remove unused comment (61b9ac0)
- update strings (0fb3e10)
[0.0.17](https://github.com/hevelius/gtl-maps/compare/0.0.16…0.0.17) (2025-11-06)
Bug Fixes
- escape string (6a1a764)
Miscellaneous Chores
[0.0.16](https://github.com/hevelius/gtl-maps/compare/0.0.15…0.0.16) (2025-10-28)
Miscellaneous Chores
- pipeline update (becbfeb)
[0.0.15](https://github.com/hevelius/gtl-maps/compare/0.0.14…0.0.15) (2025-10-28)
Miscellaneous Chores
[0.0.14](https://github.com/hevelius/gtl-maps/compare/0.0.13…0.0.14) (2025-10-28)
Miscellaneous Chores
Third-Party Libraries
This plugin includes the following open-source libraries:
-
Leaflet.js – BSD-2-Clause License – https://leafletjs.com/
Interactive mapping library for displaying GPX routes and points of interest on dynamic, tile-based maps. -
Chart.js – MIT License – https://www.chartjs.org/
JavaScript charting library for rendering elevation profile visualizations with interactive tooltips. -
leaflet-gpx – BSD-2-Clause License – https://github.com/mpetazzoni/leaflet-gpx
Leaflet plugin for parsing and displaying GPX track files with waypoint markers.
All included libraries are GPL-compatible and bundled locally for optimal performance and reliability.
Screenshots
Backend route editor showing GPX upload meta box with automatically computed distance, elevation gain/loss, and route statistics
Frontend interactive Leaflet map with elevation profile chart and POI category filters for enhanced user experience
POI management screen with custom category icons and automatic route association based on configurable radius settings
Settings page for configuring map tile provider, POI association radius, and display options

