diff --git a/examples/data/gpx/gpx4j.xml b/examples/data/gpx/gpx4j.xml
new file mode 100644
index 0000000000..7c58942267
--- /dev/null
+++ b/examples/data/gpx/gpx4j.xml
@@ -0,0 +1,37 @@
+
+
+
+ 290311
+ (null)
+
+
+ 126.951324
+
+
+
+ 122.974365
+
+
+
+ 122.974365
+
+
+
+ 120.310211
+
+
+
+ 117.177261
+
+
+
+ 116.083771
+
+
+
+ 115.956726
+
+
+
+
+
diff --git a/examples/gpx-trkpt.html b/examples/gpx-trkpt.html
new file mode 100644
index 0000000000..84d45a6a77
--- /dev/null
+++ b/examples/gpx-trkpt.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+ GPX tracks example
+
+
+
+
+
+
+
+
+
+
+
+
+
GPX tracks example
+
Example of using the GPX parser to display tracks.
+
+
GPX trackpoint tracks
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/gpx-trkpt.js b/examples/gpx-trkpt.js
new file mode 100644
index 0000000000..b0b330a57f
--- /dev/null
+++ b/examples/gpx-trkpt.js
@@ -0,0 +1,40 @@
+goog.require('ol.Map');
+goog.require('ol.RendererHint');
+goog.require('ol.View2D');
+goog.require('ol.layer.Tile');
+goog.require('ol.layer.Vector');
+goog.require('ol.parser.GPX');
+goog.require('ol.proj');
+goog.require('ol.source.OSM');
+goog.require('ol.source.Vector');
+goog.require('ol.style.Stroke');
+goog.require('ol.style.Style');
+
+var raster = new ol.layer.Tile({
+ source: new ol.source.OSM()
+});
+
+var vector = new ol.layer.Vector({
+ source: new ol.source.Vector({
+ parser: new ol.parser.GPX(),
+ url: 'data/gpx/gpx4j.xml'
+ }),
+ style: new ol.style.Style({
+ symbolizers: [
+ new ol.style.Stroke({
+ color: 'red',
+ opacity: 1
+ })
+ ]
+ })
+});
+
+var map = new ol.Map({
+ layers: [raster, vector],
+ renderer: ol.RendererHint.CANVAS,
+ target: 'map',
+ view: new ol.View2D({
+ center: ol.proj.transform([-0.425692, 39.114318], 'EPSG:4326', 'EPSG:3857'),
+ zoom: 19
+ })
+});