Files
openlayers/src/ol/projection_test.js
2012-07-11 17:20:06 +02:00

88 lines
2.5 KiB
JavaScript

goog.require('goog.array');
goog.require('goog.math.Coordinate');
goog.require('goog.testing.jsunit');
goog.require('ol.Projection');
function _testAllEquivalent(codes) {
var projections = goog.array.map(codes, ol.Projection.createFromCode);
goog.array.forEach(projections, function(source) {
goog.array.forEach(projections, function(destination) {
assertTrue(ol.Projection.equivalent(source, destination));
});
});
}
function testEpsg3857Equivalence() {
_testAllEquivalent([
'EPSG:3857',
'EPSG:102100',
'EPSG:102113',
'EPSG:900913'
]);
}
function testEpsg4326Equivalence() {
_testAllEquivalent([
'CRS:84',
'urn:ogc:def:crs:EPSG:6.6:4326',
'EPSG:4326'
]);
}
function testIdentityTransform() {
var epsg4326 = ol.Projection.createFromCode('EPSG:4326');
var uniqueObject = {};
var sourcePoint = new goog.math.Coordinate(uniqueObject, uniqueObject);
var destinationPoint = ol.Projection.transform(
sourcePoint, epsg4326, epsg4326);
assertFalse(sourcePoint === destinationPoint);
assertTrue(destinationPoint.x === sourcePoint.x);
assertTrue(destinationPoint.y === sourcePoint.y);
}
function testForwardSphericalMercatorOrigin() {
var point = ol.Projection.transformWithCodes(
new goog.math.Coordinate(0, 0), 'EPSG:4326', 'EPSG:3857');
assertNotNullNorUndefined(point);
assertEquals(0, point.x);
assertRoughlyEquals(0, point.y, 1e-9);
}
function testInverseSphericalMercatorOrigin() {
var point = ol.Projection.transformWithCodes(
new goog.math.Coordinate(0, 0), 'EPSG:3857', 'EPSG:4326');
assertNotNullNorUndefined(point);
assertEquals(0, point.x);
assertEquals(0, point.y);
}
function testForwardSphericalMercatorAlastaira() {
// http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/
var point = ol.Projection.transformWithCodes(
new goog.math.Coordinate(-5.625, 52.4827802220782),
'EPSG:4326',
'EPSG:900913');
assertNotNullNorUndefined(point);
assertRoughlyEquals(-626172.13571216376, point.x, 1e-9);
assertRoughlyEquals(6887893.4928337997, point.y, 1e-9);
}
function testInverseSphericalMercatorAlastaira() {
// http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/
var point = ol.Projection.transformWithCodes(
new goog.math.Coordinate(-626172.13571216376, 6887893.4928337997),
'EPSG:900913',
'EPSG:4326');
assertNotNullNorUndefined(point);
assertRoughlyEquals(-5.625, point.x, 1e-9);
assertRoughlyEquals(52.4827802220782, point.y, 1e-9);
}