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

oblequie mercator working

parent 76120ca1
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -297,7 +297,10 @@ define(function() {
    "Transverse_Mercator": "tmerc",
    "Transverse Mercator": "tmerc",
    "Lambert Azimuthal Equal Area": "laea",
    "Universal Transverse Mercator System": "utm"
    "Universal Transverse Mercator System": "utm",
    "Hotine_Oblique_Mercator":"omerc",
    "Hotine Oblique Mercator":"omerc",
    "Hotine_Oblique_Mercator_Azimuth_Natural_Origin":"omerc"
  };

  // Based on proj4 CTABLE  structure :
+35 −17
Original line number Diff line number Diff line
@@ -89,6 +89,19 @@ define(['./extend','./constants','./common'],function(extend,constants,common) {
      }
    }
  }
  function rename(obj, params){
    var outName=params[0];
    var inName = params[1];
    if(!(outName in obj)&&(inName in obj)){
      obj[outName]=obj[inName];
      if(params.length===3){
        obj[outName]=params[2](obj[outName]);
      }
    }
  }
  function d2r(input){
    return input*common.D2R;
  }
  function cleanWKT(wkt){
    if(wkt.type === 'GEOGCS'){
      wkt.projName = 'longlat';
@@ -110,23 +123,28 @@ define(['./extend','./constants','./common'],function(extend,constants,common) {
        wkt.rf = wkt.GEOGCS.DATUM.SPHEROID.rf;
      }
    }
    wkt.false_easting=wkt.False_Easting;
    wkt.false_northing=wkt.False_Northing;
    wkt.central_meridian=wkt.Central_Meridian;
    wkt.latitude_of_origin = wkt.Latitude_Of_Origin;
    wkt.scale_factor=wkt.Scale_Factor;
    wkt.x0 = parseFloat(wkt.false_easting,10);
    wkt.y0 = parseFloat(wkt.false_northing,10);
    wkt.lat1=wkt.Standard_Parallel_1 * common.D2R;
    wkt.lat2=wkt.Standard_Parallel_2 * common.D2R;
    wkt.k0=wkt.scale_factor;
    if(wkt.central_meridian){
      wkt.long0 = wkt.central_meridian * common.D2R;
    }
    if(wkt.latitude_of_origin){
      wkt.lat0 = wkt.latitude_of_origin * common.D2R;
    }
    wkt.srsCode = wkt.name;
    var renamer = rename.bind(null,wkt);
    var list = [
      ['false_easting','False_Easting'],
      ['false_northing','False_Northing'],
      ['central_meridian','Central_Meridian'],
      ['latitude_of_origin','Latitude_Of_Origin'],
      ['scale_factor','Scale_Factor'],
      ['k0','scale_factor'],
      ['latitude_of_center','Latitude_of_center'],
      ['lat0','latitude_of_center',d2r],
      ['longitude_of_center','Longitude_Of_Center'],
      ['longc','longitude_of_center',d2r],
      ['x0','false_easting',parseFloat],
      ['y0','false_northing',parseFloat],
      ['long0','central_meridian',d2r],
      ['lat0','latitude_of_origin',d2r],
      ['lat1','Standard_Parallel_1',d2r],
      ['lat2','Standard_Parallel_2',d2r],
      ['alpha','azimuth',d2r],
      ['srsCode','name']
    ];
    list.forEach(renamer);
  }
  return function(wkt, self) {
    var lisp = JSON.parse(("," + wkt).replace(/\,([A-Z_0-9]+?)(\[)/g, ',["$1",').slice(1).replace(/\,([A-Z_0-9]+?)\]/g, ',"$1"]'));
+8 −0
Original line number Diff line number Diff line
@@ -157,5 +157,13 @@ var aWKT = [
	code:'ESRI:102286',
	testPoint:[[-70, 41],[326219.2329381689, 751109.8626785288]],
	wkt:'PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",750000],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41],UNIT["Meter",1]]'
	},
{
	name:"NAD83 / Alaska zone 1",
	units:"Meter",
	proj:'omerc',
	code:'EPSG:26931',
	testPoint:[[-135,56],[4916815.274147286, -5110540.771739297]],
	wkt:'PROJCS["NAD83 / Alaska zone 1",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["latitude_of_center",57],PARAMETER["longitude_of_center",-133.6666666666667],PARAMETER["azimuth",323.1301023611111],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5000000],PARAMETER["false_northing",-5000000],UNIT["Meter",1]]'
	}
];