Loading src/constants.js +48 −6 Original line number Diff line number Diff line Loading @@ -231,22 +231,22 @@ define(function() { }; proj4.Datum = { "WGS84": { "wgs84": { towgs84: "0,0,0", ellipse: "WGS84", datumName: "WGS84" }, "GGRS87": { "ggrs87": { towgs84: "-199.87,74.79,246.62", ellipse: "GRS80", datumName: "Greek_Geodetic_Reference_System_1987" }, "NAD83": { "nad83": { towgs84: "0,0,0", ellipse: "GRS80", datumName: "North_American_Datum_1983" }, "NAD27": { "nad27": { nadgrids: "@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat", ellipse: "clrk66", datumName: "North_American_Datum_1927" Loading @@ -271,15 +271,35 @@ define(function() { ellipse: "mod_airy", datumName: "Ireland 1965" }, "rassadiran": { towgs84: "-133.63,-157.5,-158.62", ellipse: "intl", datumName: "Rassadiran" }, "nzgd49": { towgs84: "59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993", ellipse: "intl", datumName: "New Zealand Geodetic Datum 1949" }, "OSGB36": { "osgb36": { towgs84: "446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894", ellipse: "airy", datumName: "Airy 1830" }, "s_jtsk":{ towgs84:"589,76,480", ellipse:'bessel', datumName:'S-JTSK (Ferro)' }, 'beduaram':{ towgs84:'-106,-87,188', ellipse:'clrk80', datumName:'Beduaram' }, 'gunung_segara':{ towgs84:'-403,684,41', ellipse:'bessel', datumName:'Gunung Segara Jakarta' } }; Loading @@ -291,6 +311,7 @@ define(function() { proj4.wktProjections = { "Lambert Tangential Conformal Conic Projection": "lcc", "Lambert_Conformal_Conic": "lcc", "Lambert_Conformal_Conic_2SP":"lcc", "Mercator": "merc", "Popular Visualisation Pseudo Mercator": "merc", "Mercator_1SP": "merc", Loading @@ -300,7 +321,28 @@ define(function() { "Universal Transverse Mercator System": "utm", "Hotine_Oblique_Mercator":"omerc", "Hotine Oblique Mercator":"omerc", "Hotine_Oblique_Mercator_Azimuth_Natural_Origin":"omerc" "Hotine_Oblique_Mercator_Azimuth_Natural_Origin":"omerc", 'Hotine_Oblique_Mercator_Azimuth_Center':'omerc', "Van_der_Grinten_I":"vandg", "VanDerGrinten":"vandg", "Stereographic_North_Pole":"sterea", "Oblique_Stereographic":"sterea", 'Polar_Stereographic':"sterea", "Polyconic":"poly", 'New_Zealand_Map_Grid':'nzmg', 'Miller_Cylindrical':'mill', 'Krovak':'krovak', 'Equirectangular':'eqc', 'Equidistant_Cylindrical':'eqc', 'Cassini':'cass', 'Cassini_Soldner':'cass', 'Azimuthal_Equidistant':'aeqd', 'Albers_Conic_Equal_Area':'aea', 'Albers':'aea', 'Mollweide':'moll', 'Lambert_Azimuthal_Equal_Area':'laea', 'Sinusoidal':"sinu", "Equidistant_Conic":'eqdc' }; // Based on proj4 CTABLE structure : Loading src/wkt2.js +41 −6 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ define(['./extend','./constants','./common'],function(extend,constants,common) { obj[key] = {}; if (['UNIT', 'PRIMEM', 'VERT_DATUM'].indexOf(key) > -1) { obj[key] = { name: v[0], name: v[0].toLowerCase(), convert: v[1] }; if (v.length === 3) { Loading Loading @@ -112,19 +112,50 @@ define(['./extend','./constants','./common'],function(extend,constants,common) { wkt.projName = constants.wktProjections[wkt.PROJECTION]; } if(wkt.UNIT){ wkt.units=wkt.UNIT.name; wkt.units=wkt.UNIT.name.toLowerCase(); if(wkt.units === 'metre'){ wkt.units = 'meter'; } wkt.unitsPerMeter=wkt.UNIT.convert; } if(wkt.GEOGCS){ wkt.datumName=wkt.GEOGCS.name; //if(wkt.GEOGCS.PRIMEM&&wkt.GEOGCS.PRIMEM.convert){ // wkt.from_greenwich=wkt.GEOGCS.PRIMEM.convert*common.D2R; //} if(wkt.GEOGCS.DATUM){ wkt.datumCode=wkt.GEOGCS.DATUM.name.toLowerCase(); }else{ wkt.datumCode=wkt.GEOGCS.name.toLowerCase(); } if(wkt.datumCode.slice(0,2)==='d_'){ wkt.datumCode=wkt.datumCode.slice(2); } if(wkt.datumCode==='new_zealand_geodetic_datum_1949' || wkt.datumCode === 'new_zealand_1949'){ wkt.datumCode='nzgd49'; } if(wkt.datumCode.slice(-6)==='_ferro'){ wkt.datumCode=wkt.datumCode.slice(0,-6); } if(wkt.datumCode.slice(-8)==='_jakarta'){ wkt.datumCode=wkt.datumCode.slice(0,-8); } if(wkt.GEOGCS.DATUM && wkt.GEOGCS.DATUM.SPHEROID){ wkt.ellps=wkt.GEOGCS.DATUM.SPHEROID.name.replace('_19',''); if(wkt.ellps.toLowerCase().slice(0,13)==="international"){ wkt.ellps='intl'; } wkt.a = wkt.GEOGCS.DATUM.SPHEROID.a; wkt.rf = wkt.GEOGCS.DATUM.SPHEROID.rf; wkt.rf = parseFloat(wkt.GEOGCS.DATUM.SPHEROID.rf,10); } } if(wkt.b && !isFinite(wkt.b)){ wkt.b=wkt.a; } var renamer = rename.bind(null,wkt); var list = [ ['standard_parallel_1','Standard_Parallel_1'], ['standard_parallel_2','Standard_Parallel_2'], ['false_easting','False_Easting'], ['false_northing','False_Northing'], ['central_meridian','Central_Meridian'], Loading @@ -139,12 +170,16 @@ define(['./extend','./constants','./common'],function(extend,constants,common) { ['y0','false_northing',parseFloat], ['long0','central_meridian',d2r], ['lat0','latitude_of_origin',d2r], ['lat1','Standard_Parallel_1',d2r], ['lat2','Standard_Parallel_2',d2r], ['lat0','standard_parallel_1',d2r], ['lat1','standard_parallel_1',d2r], ['lat2','standard_parallel_2',d2r], ['alpha','azimuth',d2r], ['srsCode','name'] ]; list.forEach(renamer); if(!wkt.long0&&wkt.longc&&wkt.PROJECTION==='Albers_Conic_Equal_Area'){ wkt.long0=wkt.longc; } } 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"]')); Loading test/testData.js +162 −36 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
src/constants.js +48 −6 Original line number Diff line number Diff line Loading @@ -231,22 +231,22 @@ define(function() { }; proj4.Datum = { "WGS84": { "wgs84": { towgs84: "0,0,0", ellipse: "WGS84", datumName: "WGS84" }, "GGRS87": { "ggrs87": { towgs84: "-199.87,74.79,246.62", ellipse: "GRS80", datumName: "Greek_Geodetic_Reference_System_1987" }, "NAD83": { "nad83": { towgs84: "0,0,0", ellipse: "GRS80", datumName: "North_American_Datum_1983" }, "NAD27": { "nad27": { nadgrids: "@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat", ellipse: "clrk66", datumName: "North_American_Datum_1927" Loading @@ -271,15 +271,35 @@ define(function() { ellipse: "mod_airy", datumName: "Ireland 1965" }, "rassadiran": { towgs84: "-133.63,-157.5,-158.62", ellipse: "intl", datumName: "Rassadiran" }, "nzgd49": { towgs84: "59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993", ellipse: "intl", datumName: "New Zealand Geodetic Datum 1949" }, "OSGB36": { "osgb36": { towgs84: "446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894", ellipse: "airy", datumName: "Airy 1830" }, "s_jtsk":{ towgs84:"589,76,480", ellipse:'bessel', datumName:'S-JTSK (Ferro)' }, 'beduaram':{ towgs84:'-106,-87,188', ellipse:'clrk80', datumName:'Beduaram' }, 'gunung_segara':{ towgs84:'-403,684,41', ellipse:'bessel', datumName:'Gunung Segara Jakarta' } }; Loading @@ -291,6 +311,7 @@ define(function() { proj4.wktProjections = { "Lambert Tangential Conformal Conic Projection": "lcc", "Lambert_Conformal_Conic": "lcc", "Lambert_Conformal_Conic_2SP":"lcc", "Mercator": "merc", "Popular Visualisation Pseudo Mercator": "merc", "Mercator_1SP": "merc", Loading @@ -300,7 +321,28 @@ define(function() { "Universal Transverse Mercator System": "utm", "Hotine_Oblique_Mercator":"omerc", "Hotine Oblique Mercator":"omerc", "Hotine_Oblique_Mercator_Azimuth_Natural_Origin":"omerc" "Hotine_Oblique_Mercator_Azimuth_Natural_Origin":"omerc", 'Hotine_Oblique_Mercator_Azimuth_Center':'omerc', "Van_der_Grinten_I":"vandg", "VanDerGrinten":"vandg", "Stereographic_North_Pole":"sterea", "Oblique_Stereographic":"sterea", 'Polar_Stereographic':"sterea", "Polyconic":"poly", 'New_Zealand_Map_Grid':'nzmg', 'Miller_Cylindrical':'mill', 'Krovak':'krovak', 'Equirectangular':'eqc', 'Equidistant_Cylindrical':'eqc', 'Cassini':'cass', 'Cassini_Soldner':'cass', 'Azimuthal_Equidistant':'aeqd', 'Albers_Conic_Equal_Area':'aea', 'Albers':'aea', 'Mollweide':'moll', 'Lambert_Azimuthal_Equal_Area':'laea', 'Sinusoidal':"sinu", "Equidistant_Conic":'eqdc' }; // Based on proj4 CTABLE structure : Loading
src/wkt2.js +41 −6 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ define(['./extend','./constants','./common'],function(extend,constants,common) { obj[key] = {}; if (['UNIT', 'PRIMEM', 'VERT_DATUM'].indexOf(key) > -1) { obj[key] = { name: v[0], name: v[0].toLowerCase(), convert: v[1] }; if (v.length === 3) { Loading Loading @@ -112,19 +112,50 @@ define(['./extend','./constants','./common'],function(extend,constants,common) { wkt.projName = constants.wktProjections[wkt.PROJECTION]; } if(wkt.UNIT){ wkt.units=wkt.UNIT.name; wkt.units=wkt.UNIT.name.toLowerCase(); if(wkt.units === 'metre'){ wkt.units = 'meter'; } wkt.unitsPerMeter=wkt.UNIT.convert; } if(wkt.GEOGCS){ wkt.datumName=wkt.GEOGCS.name; //if(wkt.GEOGCS.PRIMEM&&wkt.GEOGCS.PRIMEM.convert){ // wkt.from_greenwich=wkt.GEOGCS.PRIMEM.convert*common.D2R; //} if(wkt.GEOGCS.DATUM){ wkt.datumCode=wkt.GEOGCS.DATUM.name.toLowerCase(); }else{ wkt.datumCode=wkt.GEOGCS.name.toLowerCase(); } if(wkt.datumCode.slice(0,2)==='d_'){ wkt.datumCode=wkt.datumCode.slice(2); } if(wkt.datumCode==='new_zealand_geodetic_datum_1949' || wkt.datumCode === 'new_zealand_1949'){ wkt.datumCode='nzgd49'; } if(wkt.datumCode.slice(-6)==='_ferro'){ wkt.datumCode=wkt.datumCode.slice(0,-6); } if(wkt.datumCode.slice(-8)==='_jakarta'){ wkt.datumCode=wkt.datumCode.slice(0,-8); } if(wkt.GEOGCS.DATUM && wkt.GEOGCS.DATUM.SPHEROID){ wkt.ellps=wkt.GEOGCS.DATUM.SPHEROID.name.replace('_19',''); if(wkt.ellps.toLowerCase().slice(0,13)==="international"){ wkt.ellps='intl'; } wkt.a = wkt.GEOGCS.DATUM.SPHEROID.a; wkt.rf = wkt.GEOGCS.DATUM.SPHEROID.rf; wkt.rf = parseFloat(wkt.GEOGCS.DATUM.SPHEROID.rf,10); } } if(wkt.b && !isFinite(wkt.b)){ wkt.b=wkt.a; } var renamer = rename.bind(null,wkt); var list = [ ['standard_parallel_1','Standard_Parallel_1'], ['standard_parallel_2','Standard_Parallel_2'], ['false_easting','False_Easting'], ['false_northing','False_Northing'], ['central_meridian','Central_Meridian'], Loading @@ -139,12 +170,16 @@ define(['./extend','./constants','./common'],function(extend,constants,common) { ['y0','false_northing',parseFloat], ['long0','central_meridian',d2r], ['lat0','latitude_of_origin',d2r], ['lat1','Standard_Parallel_1',d2r], ['lat2','Standard_Parallel_2',d2r], ['lat0','standard_parallel_1',d2r], ['lat1','standard_parallel_1',d2r], ['lat2','standard_parallel_2',d2r], ['alpha','azimuth',d2r], ['srsCode','name'] ]; list.forEach(renamer); if(!wkt.long0&&wkt.longc&&wkt.PROJECTION==='Albers_Conic_Equal_Area'){ wkt.long0=wkt.longc; } } 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"]')); Loading