GTL Maps

Descripció

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/routes and gtl/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

[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

[0.0.20](https://github.com/hevelius/gtl-maps/compare/0.0.19…0.0.20) (2025-11-29)

Bug Fixes

[0.0.19](https://github.com/hevelius/gtl-maps/compare/0.0.18…0.0.19) (2025-11-08)

Bug Fixes

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

[0.0.17](https://github.com/hevelius/gtl-maps/compare/0.0.16…0.0.17) (2025-11-06)

Bug Fixes

Miscellaneous Chores

[0.0.16](https://github.com/hevelius/gtl-maps/compare/0.0.15…0.0.16) (2025-10-28)

Miscellaneous Chores

[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.

Captures

  • 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

Instal·lació

  1. Upload the plugin folder to /wp-content/plugins/ or install directly through the WordPress Plugins Add New screen.
  2. Activate the plugin through the Plugins menu in WordPress.
  3. (Optional) Configure Settings:
    • Go to Settings GTL Maps
    • Set the POI-to-route association radius (default: 2km)
    • Configure default map center coordinates if needed
  4. Create Your First Route:
    • Navigate to Routes Add New
    • Enter a route title and optional description
    • Upload a GPX file in the “GPX Data” meta box
    • Add route categories and difficulty level
    • Click Publish
  5. Display the Map:
    • Maps automatically appear on single route posts
    • Use the [gtlmaps] shortcode on any page: [gtlmaps id="123"] for specific route, [gtlmaps category="cycling"] for category
    • Add the Route Details widget to your sidebar via Appearance Widgets

Troubleshooting:
– If maps don’t display, check that JavaScript is enabled
– For GPX upload issues, ensure file is valid GPX format and under your server’s upload limit
– For more help, visit the support forum

For detailed GPX requirements and advanced shortcode options, see the FAQ section.

PMF

How do I adjust the automatic POI-to-route radius?

Go to Settings GTL Maps and change the “Association radius (km)” option. This controls how far a POI can be from the route polyline to be considered related.

Can I customize the map tiles?

Yes. Filter or override the localized GTLMaps.tiles JavaScript property, or dequeue gtl-front and enqueue your own script variant that sets a different tile URL/provider.

Does the plugin work without pretty permalinks?

The REST endpoints rely on the WordPress REST API, which functions with or without pretty permalinks. Ensure your site can serve /wp-json/ routes.

How do I import GPX files?

Navigate to Routes Add New, enter a title for your route, then scroll to the “GPX Data” meta box. Click “Choose File” to upload your GPX file. Once uploaded, the plugin automatically computes distance, elevation gain/loss, and bounding coordinates. Click “Publish” to make the route live.

What GPX formats are supported?

The plugin supports standard GPX 1.0 and 1.1 formats with track points (trkpt), waypoints (wpt), and route data. Files exported from popular GPS apps like Strava, Garmin Connect, Komoot, and Ride with GPS work seamlessly.

Can I display maps without using shortcodes?

Yes! Maps automatically display above single route post content. You can also use the Route Details widget in your sidebar or the [gtlmaps] shortcode for manual placement on any page.

How do I add Points of Interest?

Go to POIs Add New, enter the POI details including coordinates (latitude and longitude), and assign a category. POIs within the configured radius (set in Settings GTL Maps) are automatically associated with nearby routes.

Can I customize map markers and icons?

Yes! Each POI category supports custom icons. When editing a POI category, upload an SVG or PNG icon file via the Media Library. The icon will display on the map for all POIs in that category.

Is the plugin compatible with page builders?

Yes! Use the [gtlmaps] shortcode in any page builder that supports WordPress shortcodes, including Elementor, Beaver Builder, Divi, and Gutenberg blocks.

How do I change the map tile provider?

The default tile provider is configurable via the GTLMaps.tiles JavaScript property. You can filter or override this in your theme by dequeueing the plugin’s script and enqueueing your own with a different tile URL. OpenStreetMap, Mapbox, and other Leaflet-compatible providers are supported.

Ressenyes

No hi ha ressenyes per a aquesta extensió.

Col·laboradors i desenvolupadors

«GTL Maps» és programari de codi obert. La següent gent ha col·laborat en aquesta extensió.

Col·laboradors

Registre de canvis

[0.2.2](https://github.com/hevelius/gtl-maps/compare/0.2.1…0.2.2) (2026-04-12)