Fix a Format.WKT test that failed due to rounding / precision of values.

This commit is contained in:
Marc Jansen
2012-02-15 09:38:57 +01:00
parent 52931daf32
commit 48a47b993a

View File

@@ -254,21 +254,39 @@
t.plan(1);
var projections = {
src: new OpenLayers.Projection("EPSG:4326"),
dest: new OpenLayers.Projection("EPSG:900913")
};
src: new OpenLayers.Projection("EPSG:4326"),
dest: new OpenLayers.Projection("EPSG:900913")
},
points = {
src: new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(-87.9, 41.9)
),
dest: new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(-9784983.2393667, 5146011.6785665)
)
},
format = new OpenLayers.Format.WKT({
externalProjection: projections["src"],
internalProjection: projections["dest"]
}),
gc_wkt_parts = [
"GEOMETRYCOLLECTION(",
"POINT(",
points["src"].geometry.x,
" ",
points["src"].geometry.y,
")",
")"
],
feature = format.read( gc_wkt_parts.join("") )[0],
gotGeom = feature.geometry,
expectGeom = points["dest"].geometry,
// we don't use geometry::toString because we might run into
// precision issues
got = gotGeom.x.toFixed(7) + ' ' + gotGeom.y.toFixed(7),
expected = expectGeom.x.toFixed(7) + ' ' + expectGeom.y.toFixed(7);
var points = {
src: new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-87.9, 41.9)),
dest: new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-9784983.2393667, 5146011.6785665))
};
var format = new OpenLayers.Format.WKT({
externalProjection: projections["src"],
internalProjection: projections["dest"]
});
var feature = format.read("GEOMETRYCOLLECTION(POINT(" + points["src"].geometry.x + " " + points["src"].geometry.y + "))")[0];
t.eq(feature.geometry.toString(), points["dest"].geometry.toString(),
t.eq(got, expected,
"Geometry collections aren't transformed twice when reprojection.");
}
</script>