Loading proj4/core.js +7 −8 Original line number Diff line number Diff line Loading @@ -3,12 +3,11 @@ define(function(require) { var proj = require('proj4/Proj'); var transform = require('proj4/transform'); var wgs84 = proj('WGS84'); return function(fromProj, toProj, coord) { var transformer = function(f, t, c) { function transformer(from, to, coords) { var transformedArray; if (Array.isArray(c)) { transformedArray = transform(f, t, point(c)); if (c.length === 3) { if (Array.isArray(coords)) { transformedArray = transform(from, to, point(coords)); if (coords.length === 3) { return [transformedArray.x, transformedArray.y, transformedArray.z]; } else { Loading @@ -16,10 +15,10 @@ define(function(require) { } } else { return transform(fromProj, toProj, c); return transform(from, to, coords); } }; } return function(fromProj, toProj, coord) { fromProj = fromProj instanceof proj ? fromProj :proj(fromProj); if (typeof toProj === 'undefined') { toProj = fromProj; Loading proj4/transform.js +2 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ define(function(require) { var datum_transform = require('proj4/datum_transform'); var adjust_axis = require('proj4/adjust_axis'); var proj = require('proj4/Proj'); return function(source, dest, point) { return function transform(source, dest, point) { var wgs84; function checkNotWGS(source, dest) { Loading @@ -13,7 +13,7 @@ define(function(require) { // Workaround for datum shifts towgs84, if either source or destination projection is not wgs84 if (source.datum && dest.datum && (checkNotWGS(source, dest) || checkNotWGS(dest, source))) { wgs84 = new proj('WGS84'); this.transform(source, wgs84, point); transform(source, wgs84, point); source = wgs84; } // DGR, 2010/11/12 Loading test/test.amd.js +9 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,15 @@ function ( chai, proj4) { ]); proj4.defs('esriOnline','PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'); describe('proj2proj',function(){ it('should work transforming from one projection to another',function(){ var sweref99tm = '+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'; var rt90 = '+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +ellps=bessel +units=m +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +no_defs'; var rslt = proj4(sweref99tm,rt90).forward([319180, 6399862]); assert.closeTo(rslt[0],1271137.927154,0.000001); assert.closeTo(rslt[1],6404230.291456,0.000001); }); }) describe('proj4', function () { describe('core',function(){ testPoints.forEach(function(testPoint){ Loading test/test.js +9 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,15 @@ function ( chai, proj4) { ]); proj4.defs('esriOnline','PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'); describe('proj2proj',function(){ it('should work transforming from one projection to another',function(){ var sweref99tm = '+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'; var rt90 = '+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +ellps=bessel +units=m +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +no_defs'; var rslt = proj4(sweref99tm,rt90).forward([319180, 6399862]); assert.closeTo(rslt[0],1271137.927154,0.000001); assert.closeTo(rslt[1],6404230.291456,0.000001); }); }) describe('proj4', function () { describe('core',function(){ testPoints.forEach(function(testPoint){ Loading test/test.opt.js +9 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,15 @@ mocha.setup({ proj4.defs('esriOnline','PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'); describe('proj4', function () { describe('proj2proj',function(){ it('should work transforming from one projection to another',function(){ var sweref99tm = '+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'; var rt90 = '+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +ellps=bessel +units=m +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +no_defs'; var rslt = proj4(sweref99tm,rt90).forward([319180, 6399862]); assert.closeTo(rslt[0],1271137.927154,0.000001); assert.closeTo(rslt[1],6404230.291456,0.000001); }); }) describe('core',function(){ testPoints.forEach(function(testPoint){ describe(testPoint.code,function(){ Loading Loading
proj4/core.js +7 −8 Original line number Diff line number Diff line Loading @@ -3,12 +3,11 @@ define(function(require) { var proj = require('proj4/Proj'); var transform = require('proj4/transform'); var wgs84 = proj('WGS84'); return function(fromProj, toProj, coord) { var transformer = function(f, t, c) { function transformer(from, to, coords) { var transformedArray; if (Array.isArray(c)) { transformedArray = transform(f, t, point(c)); if (c.length === 3) { if (Array.isArray(coords)) { transformedArray = transform(from, to, point(coords)); if (coords.length === 3) { return [transformedArray.x, transformedArray.y, transformedArray.z]; } else { Loading @@ -16,10 +15,10 @@ define(function(require) { } } else { return transform(fromProj, toProj, c); return transform(from, to, coords); } }; } return function(fromProj, toProj, coord) { fromProj = fromProj instanceof proj ? fromProj :proj(fromProj); if (typeof toProj === 'undefined') { toProj = fromProj; Loading
proj4/transform.js +2 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ define(function(require) { var datum_transform = require('proj4/datum_transform'); var adjust_axis = require('proj4/adjust_axis'); var proj = require('proj4/Proj'); return function(source, dest, point) { return function transform(source, dest, point) { var wgs84; function checkNotWGS(source, dest) { Loading @@ -13,7 +13,7 @@ define(function(require) { // Workaround for datum shifts towgs84, if either source or destination projection is not wgs84 if (source.datum && dest.datum && (checkNotWGS(source, dest) || checkNotWGS(dest, source))) { wgs84 = new proj('WGS84'); this.transform(source, wgs84, point); transform(source, wgs84, point); source = wgs84; } // DGR, 2010/11/12 Loading
test/test.amd.js +9 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,15 @@ function ( chai, proj4) { ]); proj4.defs('esriOnline','PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'); describe('proj2proj',function(){ it('should work transforming from one projection to another',function(){ var sweref99tm = '+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'; var rt90 = '+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +ellps=bessel +units=m +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +no_defs'; var rslt = proj4(sweref99tm,rt90).forward([319180, 6399862]); assert.closeTo(rslt[0],1271137.927154,0.000001); assert.closeTo(rslt[1],6404230.291456,0.000001); }); }) describe('proj4', function () { describe('core',function(){ testPoints.forEach(function(testPoint){ Loading
test/test.js +9 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,15 @@ function ( chai, proj4) { ]); proj4.defs('esriOnline','PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'); describe('proj2proj',function(){ it('should work transforming from one projection to another',function(){ var sweref99tm = '+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'; var rt90 = '+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +ellps=bessel +units=m +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +no_defs'; var rslt = proj4(sweref99tm,rt90).forward([319180, 6399862]); assert.closeTo(rslt[0],1271137.927154,0.000001); assert.closeTo(rslt[1],6404230.291456,0.000001); }); }) describe('proj4', function () { describe('core',function(){ testPoints.forEach(function(testPoint){ Loading
test/test.opt.js +9 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,15 @@ mocha.setup({ proj4.defs('esriOnline','PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'); describe('proj4', function () { describe('proj2proj',function(){ it('should work transforming from one projection to another',function(){ var sweref99tm = '+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'; var rt90 = '+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +ellps=bessel +units=m +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +no_defs'; var rslt = proj4(sweref99tm,rt90).forward([319180, 6399862]); assert.closeTo(rslt[0],1271137.927154,0.000001); assert.closeTo(rslt[1],6404230.291456,0.000001); }); }) describe('core',function(){ testPoints.forEach(function(testPoint){ describe(testPoint.code,function(){ Loading