Commit ecad9394 authored by Calvin Metcalf's avatar Calvin Metcalf
Browse files

fixes #51 with tests!

parent a8d8ae58
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -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 {
@@ -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;
+2 −2
Original line number Diff line number Diff line
@@ -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) {
@@ -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
+9 −1
Original line number Diff line number Diff line
@@ -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){
+9 −1
Original line number Diff line number Diff line
@@ -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){
+9 −0
Original line number Diff line number Diff line
@@ -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(){