diff --git a/lib/OpenLayers/Format/GPX.js b/lib/OpenLayers/Format/GPX.js
index f3f0fce313..8da76193d2 100644
--- a/lib/OpenLayers/Format/GPX.js
+++ b/lib/OpenLayers/Format/GPX.js
@@ -71,6 +71,13 @@ OpenLayers.Format.GPX = OpenLayers.Class(OpenLayers.Format.XML, {
* "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"
*/
schemaLocation: "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd",
+
+ /**
+ * APIProperty: creator
+ * {String} The creator attribute to be added to the written GPX files.
+ * Defaults to "OpenLayers"
+ */
+ creator: "OpenLayers",
/**
* Constructor: OpenLayers.Format.GPX
@@ -218,8 +225,9 @@ OpenLayers.Format.GPX = OpenLayers.Class(OpenLayers.Format.XML, {
write: function(features, metadata) {
features = OpenLayers.Util.isArray(features) ?
features : [features];
- var gpx = this.createElementNSPlus("gpx:gpx");
+ var gpx = this.createElementNS(this.namespaces.gpx, "gpx");
gpx.setAttribute("version", "1.1");
+ gpx.setAttribute("creator", this.creator);
this.setAttributes(gpx, {
"xsi:schemaLocation": this.schemaLocation
});
diff --git a/tests/Format/GPX.html b/tests/Format/GPX.html
index 6a86ca6774..0b0f1d2aca 100644
--- a/tests/Format/GPX.html
+++ b/tests/Format/GPX.html
@@ -46,7 +46,7 @@
new OpenLayers.Feature.Vector(point2, {name: 'foo', description: 'bar'})
];
var data = parser.write(features);
- t.xml_eq(data, 'foobarfoobar', 'GPX serializes points correctly');
+ t.xml_eq(data, 'foobarfoobar', 'GPX serializes points correctly');
}
function test_Format_GPX_serialize_line(t) {
t.plan(1);
@@ -58,7 +58,7 @@
var line = new OpenLayers.Geometry.LineString([point, point2]);
var f = new OpenLayers.Feature.Vector(line, {name: 'foo', description: 'bar'});
var data = parser.write(f);
- t.xml_eq(data, 'foobar', 'GPX serializes line correctly');
+ t.xml_eq(data, 'foobar', 'GPX serializes line correctly');
}
function test_Format_GPX_serialize_lines(t) {
t.plan(1);
@@ -74,7 +74,7 @@
var f = new OpenLayers.Feature.Vector(line, {name: 'foo', description: 'bar'});
var f2 = new OpenLayers.Feature.Vector(line2, {name: 'dude', description: 'truite'});
var data = parser.write([f, f2]);
- t.xml_eq(data, 'foobardudetruite', 'GPX serializes lines correctly');
+ t.xml_eq(data, 'foobardudetruite', 'GPX serializes lines correctly');
}
function test_Format_GPX_serialize_multiline(t) {
t.plan(1);
@@ -90,7 +90,7 @@
var multiline = new OpenLayers.Geometry.MultiLineString([line, line2]);
var f = new OpenLayers.Feature.Vector(multiline, {name: 'foo', description: 'bar'});
var data = parser.write([f]);
- t.xml_eq(data, 'foobar', 'GPX serializes multiline correctly');
+ t.xml_eq(data, 'foobar', 'GPX serializes multiline correctly');
}
function test_Format_GPX_serialize_polygon(t) {
t.plan(1);
@@ -103,7 +103,7 @@
var polygon = new OpenLayers.Geometry.Polygon([linearRing]);
var f = new OpenLayers.Feature.Vector(polygon, {name: 'foo', description: 'bar'});
var data = parser.write([f]);
- t.xml_eq(data, 'foobar', 'GPX serializes polygon correctly');
+ t.xml_eq(data, 'foobar', 'GPX serializes polygon correctly');
}
function test_Format_GPX_serialize_metadata(t) {
t.plan(1);
@@ -111,7 +111,7 @@
var parser = new OpenLayers.Format.GPX();
var data = parser.write([], {name: 'foo', desc: 'bar'});
- t.xml_eq(data, 'foobar', 'GPX serializes metadata correctly');
+ t.xml_eq(data, 'foobar', 'GPX serializes metadata correctly');
}