An opinionated, multi-language, WordPress trip summary plugin to help travel bloggers manage and display structured information about their train rides and biking or hiking trips.
Difficulty Level
, Open During Seasons
etc.);Total distance
, Total climb
etc.);WP-Trip-Summary supports the following file formats when importing GPS track data that should be attached to a post:
An uploaded file is processed as a GPX file (and validated as such) if it has any of the following mime types:
application/gpx
;application/x-gpx+xml
;application/xml-gpx
;application/xml
;application/gpx+xml
;text/xml
.GPX documents are expected to comply with the GPX 1.1 schema and are parsed as follows:
<wpt>
or <trkpt>
), besides latitude and longitude:
<ele>
element);<name>
element).<trk>
element), besides the list of track segments;
<name>
element).<trkseg>
elements), only its points are read.For the more technically inclined, the parser can be consulted here.
An uploaded file is processed as a GeoJSON file (and validated as such) if it has any of the following mime types:
application/json
;application/geo+json
;application/vnd.geo+json
. GeoJson documents are assumed to comply with RFC 7946 and are parsed as follows:
Document metadata is only searched for is the root object is a FeatureCollection
and the first Feature
of that collection:
properties
property;geometry
property is null
.A LineString
is read as a track part with a single track segment;
If a LineString
geometry is contained within a Feature
object, then the resulting track part's name is searched for in the feature object's properties
property.
A MultiLineString
is read as a track part, and each comprising line string is added to the track part as a track segment;
If a MultiLineString
geometry is contained within a Feature
object, then the resulting track part's name is searched for in the feature object's properties
property.
A Point
is read as a document-level waypoint, regardless of where it is found in the geoJSON file;
If a Point
geometry is contained within a Feature
object, then the waypoint's name is searched for in the feature object's properties
property.
All the points in a MultiPoint
are each added as a document-level waypoint, regardless of where it is found in the geoJSON file;
If a MultiPoint
geometry is contained within a Feature
object, then a name is searched for in the feature object's properties
property and assigned to each of the resulting waypoints;
A Polygon
is read as a track part with a track segment for each of the polygon's contour lines;
If a Polygon
geometry is contained within a Feature
object, then the resulting track part's name is searched for in the feature object's properties
property.
A MultiPolygon
is read as multiple track parts, one for each comprising polygon; each track part is then comprised of the corresponding polygon's contour lines;
If a MultiPolygon
geometry is contained within a Feature
object, then a name is searched for in the feature object's properties
property and assigned to each of the resulting track parts.
For the more technically inclined, the parser can be consulted here.
An uploaded file is processed as a KML file (and validated as such) if it has any of the following mime types:
application/vnd.google-earth.kml+xml
.The KML parse is based on Stepan Daleky's KML parser on GitLab, which I further built upon in two areas:
It might worth your while (to take a loot at it here)[https://github.com/alexboia/WP-Trip-Summary/tree/master/lib/3rdParty/kml-parser/KmlParser].
KML documents are parsed as follows:
Either root KML folder or root KML document is considered, not both (first it checks for a root folder and, if not found for a root document);
A KML container is searched, in this order, for: folders, documents and placemarks;
For a placemark, Point
, Linestring
, LinearRing
, Polygon
and MultiGeometry
geometries are supported;
Neither folder, nor document metadata is stored;
A Point
geometry is read as a document-level waypoint, regardless of where it is found in the KML file;
For a Point
geometry, the name and description metadata are stored;
A LineString
is read as a track part with a single track segment;
For a LineString
geometry, only the name metadata is stored;
A LinearRing
is read as a track part with a single track segment;
For a LinearRing
geometry, only the name metadata is stored;
A Polygon
is read as two track parts: one for the outer boundary LinearRing
, the other for the inner boundary LinearRing
;
For a Polygon
geometry, only the name metadata is stored, for each of the resulting track parts;
A MultiGeometry
is processed by reading its individual parts, not as a whole, obeying the above-mentioned rules.
For the more technically inclined, the parser can be consulted here.
You can get the plug-in:
So I figured it would be nice to list here what other WordPress plugins can be used, if WP Trip Summary does not cover all your needs or its philosophy just isn't for you. These certainly are not the only ones, but these are the ones I consider the most relevant.
Waymark allows you to create maps as you would create posts, add various shapes to them. These can then be embedded to any post using shortcodes.
It also knows how to import data (markers and lines) from GPX/KML/GeoJSON files, to be displyed on a map.
It's still constantly updated and I recommend it if all you want to define and organize general purpose maps, possibly a lot of them, and use them in any post.
Find out more and get it here: https://wordpress.org/plugins/waymark/.
WP GPX Maps allows you to upload a GPX track and display it on a map, along with a couple of graphs: altitude, speed, heart rate, temperature, cadence, grade.
It also looks up the media gallery for picture files that would match the coordinates on the track and display those on the map as well.
You get central management of these tracks and you can embed them anywhere using shortcodes.
It's a bit behind with the updates, but I recommed it for a similar reason I recommended Waymark - if you'd like to manage your stuff centrally and use it anywhere - as well as for the wealth of graphs it provides out of the box.
Find out more and get it here: https://wordpress.org/plugins/wp-gpx-maps/.
Lf Hiker is somwehat closer to WP Trip Summary's philosophy: it's a plugin that allows you to quickly display your gpx tracks with their profile elevation on an interactive map.
It's also linked to a post; not directly, but through the media gallery, through which you upload your GPX files. Ultimately, you can embed those anywhere using shortcodes and also provide some custom information for each post, to be displayed alongside the core track data.
It's a bit behind with the updates as well, but I recommend it for a simpler, more track-centered approach.
Find out more and get it here: https://wordpress.org/plugins/lf-hiker/.
The milestones area usually paints a good outlook on the workload for the current release, as well as the past and planned releases.
You might also be interested in the issues area, for the gruesome details about what's currently on the table.
This plug-in provides three basic features:
Structured technical information is supported for the following types of trips:
The following fields are available:
The following fields are available:
The following fields are available:
I really wanted to host the GPS tracks myself for various reasons:
Thus, I developed a module to do just that: upload a GPS track (currently only GPX and GeoJSON files can be uploaded), parse it and display it.
For each post you can add unlimited log entries, each corresponding to someone travelling that route, specifying the following details:
The plug-in, as of version 0.2.8
inserts structured JSON-LD data in the post and page details page,
if there is track data attached to that post or page.
This behaviour is configurable and can be disabled or enabled in the plug-in's configuration page. By default, it is disabled.
Here is a sample JSON-LD data set inserted by this plug-in:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Place",
"geo": {
"@type": "GeoShape",
"box": "45.69152 23.72547 46.01246 25.27592"
},
"name": "Towards Eagle's lake"
}
</script>
As of version 0.2.8
, there is a new Maintenance
section, which allows you to carry out various maintenance tasks:
The box is described by the south-west and north-east points, in lat-lng format: Lat1 Lng1 Lat2 Lng2
.
Menu: Trip Summary
-> Maintenance
.
As of version 0.3.2
, there is a new System logs
section, which allows you to manage the log files to which WP Trip Summary writes its debug and error messages.
There are two sections for each of the log types (debug and error, respectively, as mentioned), BUT debug logs are only produced if:
ABP01_ENABLE_DEBUG_LOGGING
is defined (in wp-config.php
) and set to true
(if defined, it will supersede WP_DEBUG
) or;WP_DEBUG
is defined and set to true
.Menu: Trip Summary
-> System logs
.
The following languages are supported:
Language | Code | Notes |
---|---|---|
English | en_US | Also serves as default language |
French | fr_FR | - |
Romanian | ro_RO | - |
German | de_DE | Partly contribured by Nico, partly translated using Google Translate. |
Trip Summary
-> System logs
);Moving forward to 0.4, the focus is on extensibility, a slightly improved UI and, as a nice to have, a broader language support:
Also, use the Issues area to submit your idea.
All of the above, with the following amendments:
Despite my best intentions, it would be really hard to come up with a stellar product without any help from those who would either be really interested in using it or would like to work on such a product.
See here how one can contribute.
The source code is published under the terms of the BSD New License licence.
I put some of my free time into developing and maintaining this plugin. If helped you in your projects and you are happy with it, you can...