GTL Maps
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.
Bug Fixes
- correct GTLMAPS_VERSION constant name in release workflows and sync gtl-maps.php to 0.2.1 (#55) (971b9f6)
- deploy pipeline (94839e6)
Miscellaneous Chores
- update coverage badge [skip ci] (f9b8d75)
[0.2.2](https://github.com/hevelius/gtl-maps/compare/0.2.1…0.2.2) (2026-04-12)
Bug Fixes
- correct GTLMAPS_VERSION constant name in release workflows and sync gtl-maps.php to 0.2.1 (#55) (971b9f6)
- deploy pipeline (94839e6)
Miscellaneous Chores
- update coverage badge [skip ci] (f9b8d75)
[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.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.
