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'); }