Add support to Format.OSM to reproject on writing. Initial suggestion from

Arnd Wipperman, turned into a patch by me, r=bartvde (Closes #2988)


git-svn-id: http://svn.openlayers.org/trunk/openlayers@11647 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2011-03-07 11:21:32 +00:00
parent c27af60153
commit d3f5100327
2 changed files with 19 additions and 0 deletions

View File

@@ -347,6 +347,13 @@ OpenLayers.Format.OSM = OpenLayers.Class(OpenLayers.Format.XML, {
'point': function(point) {
var id = null;
var geometry = point.geometry ? point.geometry : point;
if (this.internalProjection && this.externalProjection) {
geometry = geometry.clone();
geometry.transform(this.internalProjection,
this.externalProjection);
}
var already_exists = false; // We don't return anything if the node
// has already been created
if (point.osm_id) {

View File

@@ -95,6 +95,18 @@
output = output.replace(/<\?[^>]*\?>/, '');
t.eq(output, osm_serialized_data[key], key + " serialized correctly");
}
}
function test_Format_OSM_write_reproject(t) {
t.plan(1);
var f = new OpenLayers.Format.OSM({'internalProjection': new OpenLayers.Projection("EPSG:900913")});
var feat = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(100000, 100000)
);
var data = f.write([feat]);
var f = new OpenLayers.Format.OSM();
var features = f.read(data);
t.eq(OpenLayers.Util.toFloat(features[0].geometry.x, 3), .898, "exported to lonlat and re-read as lonlat correctly")
}
</script>
</head>