This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch master in repository proj4js.
commit f55a1be97db9a34dc0ba93c68140ea7b8848ce50 Author: Bas Couwenberg <sebas...@xs4all.nl> Date: Sat Oct 10 11:44:11 2015 +0200 Imported Upstream version 2.3.11+ds --- bower.json | 2 +- component.json | 2 +- dist/proj4-src.js | 175 +++++++++++++++++++++--------------------------------- lib/datum.js | 21 ++++--- lib/wkt.js | 8 ++- package.json | 2 +- test/test.js | 10 ++++ 7 files changed, 98 insertions(+), 122 deletions(-) diff --git a/bower.json b/bower.json index 2c7d8b9..d21e9ed 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "proj4", - "version": "2.3.10-alpha", + "version": "2.3.11-alpha", "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.", "homepage": "https://github.com/proj4js/proj4js", "main": "dist/proj4.js", diff --git a/component.json b/component.json index 325c045..36a6ce6 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "proj4", - "version": "2.3.10-alpha", + "version": "2.3.11-alpha", "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.", "repo": "proj4js/proj4js", "keywords": [ diff --git a/dist/proj4-src.js b/dist/proj4-src.js index 4916da3..2e8aec8 100644 --- a/dist/proj4-src.js +++ b/dist/proj4-src.js @@ -34,7 +34,7 @@ Point.prototype.toMGRS = function(accuracy) { return mgrs.forward([this.x, this.y], accuracy); }; module.exports = Point; -},{"mgrs":67}],2:[function(_dereq_,module,exports){ +},{"mgrs":66}],2:[function(_dereq_,module,exports){ var parseCode = _dereq_("./parseCode"); var extend = _dereq_('./extend'); var projections = _dereq_('./projections'); @@ -69,7 +69,7 @@ Projection.projections = projections; Projection.projections.start(); module.exports = Projection; -},{"./deriveConstants":33,"./extend":34,"./parseCode":37,"./projections":39}],3:[function(_dereq_,module,exports){ +},{"./deriveConstants":32,"./extend":33,"./parseCode":36,"./projections":38}],3:[function(_dereq_,module,exports){ module.exports = function(crs, denorm, point) { var xin = point.x, yin = point.y, @@ -131,15 +131,10 @@ module.exports = function(x) { }; },{"./sign":21}],5:[function(_dereq_,module,exports){ var TWO_PI = Math.PI * 2; -// SPI is slightly greater than Math.PI, so values that exceed the -180..180 -// degree range by a tiny amount don't get wrapped. This prevents points that -// have drifted from their original location along the 180th meridian (due to -// floating point error) from changing their sign. -var SPI = 3.14159265359; var sign = _dereq_('./sign'); module.exports = function(x) { - return (Math.abs(x) <= SPI) ? x : (x - (sign(x) * TWO_PI)); + return (Math.abs(x) < Math.PI) ? x : (x - (sign(x) * TWO_PI)); }; },{"./sign":21}],6:[function(_dereq_,module,exports){ module.exports = function(x) { @@ -651,10 +646,6 @@ exports.stockholm = 18.058277777778; //"18d3'29.8\"E", exports.athens = 23.7163375; //"23d42'58.815\"E", exports.oslo = 10.722916666667; //"10d43'22.5\"E" },{}],28:[function(_dereq_,module,exports){ -exports.ft = {to_meter: 0.3048}; -exports['us-ft'] = {to_meter: 1200 / 3937}; - -},{}],29:[function(_dereq_,module,exports){ var proj = _dereq_('./Proj'); var transform = _dereq_('./transform'); var wgs84 = proj('WGS84'); @@ -719,7 +710,7 @@ function proj4(fromProj, toProj, coord) { } } module.exports = proj4; -},{"./Proj":2,"./transform":65}],30:[function(_dereq_,module,exports){ +},{"./Proj":2,"./transform":64}],29:[function(_dereq_,module,exports){ var HALF_PI = Math.PI/2; var PJD_3PARAM = 1; var PJD_7PARAM = 2; @@ -1125,7 +1116,7 @@ datum.prototype = { */ module.exports = datum; -},{}],31:[function(_dereq_,module,exports){ +},{}],30:[function(_dereq_,module,exports){ var PJD_3PARAM = 1; var PJD_7PARAM = 2; var PJD_GRIDSHIFT = 3; @@ -1226,7 +1217,7 @@ module.exports = function(source, dest, point) { }; -},{}],32:[function(_dereq_,module,exports){ +},{}],31:[function(_dereq_,module,exports){ var globals = _dereq_('./global'); var parseProj = _dereq_('./projString'); var wkt = _dereq_('./wkt'); @@ -1237,7 +1228,7 @@ function defs(name) { if (arguments.length === 2) { var def = arguments[1]; if (typeof def === 'string') { - if (def.charAt(0) === '+') { + if (def[0] === '+') { defs[name] = parseProj(arguments[1]); } else { @@ -1283,7 +1274,7 @@ function defs(name) { globals(defs); module.exports = defs; -},{"./global":35,"./projString":38,"./wkt":66}],33:[function(_dereq_,module,exports){ +},{"./global":34,"./projString":37,"./wkt":65}],32:[function(_dereq_,module,exports){ var Datum = _dereq_('./constants/Datum'); var Ellipsoid = _dereq_('./constants/Ellipsoid'); var extend = _dereq_('./extend'); @@ -1335,13 +1326,10 @@ module.exports = function(json) { json.axis = "enu"; } - if (!json.datum) { - json.datum = datum(json); - } + json.datum = datum(json); return json; }; - -},{"./constants/Datum":25,"./constants/Ellipsoid":26,"./datum":30,"./extend":34}],34:[function(_dereq_,module,exports){ +},{"./constants/Datum":25,"./constants/Ellipsoid":26,"./datum":29,"./extend":33}],33:[function(_dereq_,module,exports){ module.exports = function(destination, source) { destination = destination || {}; var value, property; @@ -1357,7 +1345,7 @@ module.exports = function(destination, source) { return destination; }; -},{}],35:[function(_dereq_,module,exports){ +},{}],34:[function(_dereq_,module,exports){ module.exports = function(defs) { defs('EPSG:4326', "+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"); defs('EPSG:4269', "+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"); @@ -1370,7 +1358,7 @@ module.exports = function(defs) { defs['EPSG:102113'] = defs['EPSG:3857']; }; -},{}],36:[function(_dereq_,module,exports){ +},{}],35:[function(_dereq_,module,exports){ var proj4 = _dereq_('./core'); proj4.defaultDatum = 'WGS84'; //default datum proj4.Proj = _dereq_('./Proj'); @@ -1383,7 +1371,7 @@ proj4.mgrs = _dereq_('mgrs'); proj4.version = _dereq_('../package.json').version; _dereq_('./includedProjections')(proj4); module.exports = proj4; -},{"../package.json":68,"./Point":1,"./Proj":2,"./common/toPoint":23,"./core":29,"./defs":32,"./includedProjections":"hTEDpn","./transform":65,"mgrs":67}],37:[function(_dereq_,module,exports){ +},{"../package.json":67,"./Point":1,"./Proj":2,"./common/toPoint":23,"./core":28,"./defs":31,"./includedProjections":"gWUPNW","./transform":64,"mgrs":66}],36:[function(_dereq_,module,exports){ var defs = _dereq_('./defs'); var wkt = _dereq_('./wkt'); var projStr = _dereq_('./projString'); @@ -1420,13 +1408,12 @@ function parse(code){ } module.exports = parse; -},{"./defs":32,"./projString":38,"./wkt":66}],38:[function(_dereq_,module,exports){ +},{"./defs":31,"./projString":37,"./wkt":65}],37:[function(_dereq_,module,exports){ var D2R = 0.01745329251994329577; var PrimeMeridian = _dereq_('./constants/PrimeMeridian'); -var units = _dereq_('./constants/units'); - module.exports = function(defData) { var self = {}; + var paramObj = {}; defData.split("+").map(function(v) { return v.trim(); @@ -1442,7 +1429,7 @@ module.exports = function(defData) { proj: 'projName', datum: 'datumCode', rf: function(v) { - self.rf = parseFloat(v); + self.rf = parseFloat(v, 10); }, lat_0: function(v) { self.lat0 = v * D2R; @@ -1472,22 +1459,16 @@ module.exports = function(defData) { self.longc = v * D2R; }, x_0: function(v) { - self.x0 = parseFloat(v); + self.x0 = parseFloat(v, 10); }, y_0: function(v) { - self.y0 = parseFloat(v); + self.y0 = parseFloat(v, 10); }, k_0: function(v) { - self.k0 = parseFloat(v); + self.k0 = parseFloat(v, 10); }, k: function(v) { - self.k0 = parseFloat(v); - }, - a: function(v) { - self.a = parseFloat(v); - }, - b: function(v) { - self.b = parseFloat(v); + self.k0 = parseFloat(v, 10); }, r_a: function() { self.R_A = true; @@ -1500,23 +1481,17 @@ module.exports = function(defData) { }, towgs84: function(v) { self.datum_params = v.split(",").map(function(a) { - return parseFloat(a); + return parseFloat(a, 10); }); }, to_meter: function(v) { - self.to_meter = parseFloat(v); - }, - units: function(v) { - self.units = v; - if (units[v]) { - self.to_meter = units[v].to_meter; - } + self.to_meter = parseFloat(v, 10); }, from_greenwich: function(v) { self.from_greenwich = v * D2R; }, pm: function(v) { - self.from_greenwich = (PrimeMeridian[v] ? PrimeMeridian[v] : parseFloat(v)) * D2R; + self.from_greenwich = (PrimeMeridian[v] ? PrimeMeridian[v] : parseFloat(v, 10)) * D2R; }, nadgrids: function(v) { if (v === '@null') { @@ -1554,7 +1529,7 @@ module.exports = function(defData) { return self; }; -},{"./constants/PrimeMeridian":27,"./constants/units":28}],39:[function(_dereq_,module,exports){ +},{"./constants/PrimeMeridian":27}],38:[function(_dereq_,module,exports){ var projs = [ _dereq_('./projections/merc'), _dereq_('./projections/longlat') @@ -1590,7 +1565,7 @@ exports.start = function() { projs.forEach(add); }; -},{"./projections/longlat":51,"./projections/merc":52}],40:[function(_dereq_,module,exports){ +},{"./projections/longlat":50,"./projections/merc":51}],39:[function(_dereq_,module,exports){ var EPSLN = 1.0e-10; var msfnz = _dereq_('../common/msfnz'); var qsfnz = _dereq_('../common/qsfnz'); @@ -1713,7 +1688,7 @@ exports.phi1z = function(eccent, qs) { }; exports.names = ["Albers_Conic_Equal_Area", "Albers", "aea"]; -},{"../common/adjust_lon":5,"../common/asinz":6,"../common/msfnz":15,"../common/qsfnz":20}],41:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/asinz":6,"../common/msfnz":15,"../common/qsfnz":20}],40:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); var HALF_PI = Math.PI/2; var EPSLN = 1.0e-10; @@ -1912,7 +1887,7 @@ exports.inverse = function(p) { }; exports.names = ["Azimuthal_Equidistant", "aeqd"]; -},{"../common/adjust_lon":5,"../common/asinz":6,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/imlfn":12,"../common/mlfn":14}],42:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/asinz":6,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/imlfn":12,"../common/mlfn":14}],41:[function(_dereq_,module,exports){ var mlfn = _dereq_('../common/mlfn'); var e0fn = _dereq_('../common/e0fn'); var e1fn = _dereq_('../common/e1fn'); @@ -2016,7 +1991,7 @@ exports.inverse = function(p) { }; exports.names = ["Cassini", "Cassini_Soldner", "cass"]; -},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/imlfn":12,"../common/mlfn":14}],43:[function(_dereq_,module,exports){ +},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/imlfn":12,"../common/mlfn":14}],42:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); var qsfnz = _dereq_('../common/qsfnz'); var msfnz = _dereq_('../common/msfnz'); @@ -2081,7 +2056,7 @@ exports.inverse = function(p) { }; exports.names = ["cea"]; -},{"../common/adjust_lon":5,"../common/iqsfnz":13,"../common/msfnz":15,"../common/qsfnz":20}],44:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/iqsfnz":13,"../common/msfnz":15,"../common/qsfnz":20}],43:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); var adjust_lat = _dereq_('../common/adjust_lat'); exports.init = function() { @@ -2124,7 +2099,7 @@ exports.inverse = function(p) { }; exports.names = ["Equirectangular", "Equidistant_Cylindrical", "eqc"]; -},{"../common/adjust_lat":4,"../common/adjust_lon":5}],45:[function(_dereq_,module,exports){ +},{"../common/adjust_lat":4,"../common/adjust_lon":5}],44:[function(_dereq_,module,exports){ var e0fn = _dereq_('../common/e0fn'); var e1fn = _dereq_('../common/e1fn'); var e2fn = _dereq_('../common/e2fn'); @@ -2236,7 +2211,7 @@ exports.inverse = function(p) { }; exports.names = ["Equidistant_Conic", "eqdc"]; -},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/imlfn":12,"../common/mlfn":14,"../common/msfnz":15}],46:[function(_dereq_,module,exports){ +},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/imlfn":12,"../common/mlfn":14,"../common/msfnz":15}],45:[function(_dereq_,module,exports){ var FORTPI = Math.PI/4; var srat = _dereq_('../common/srat'); var HALF_PI = Math.PI/2; @@ -2283,7 +2258,7 @@ exports.inverse = function(p) { }; exports.names = ["gauss"]; -},{"../common/srat":22}],47:[function(_dereq_,module,exports){ +},{"../common/srat":22}],46:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); var EPSLN = 1.0e-10; var asinz = _dereq_('../common/asinz'); @@ -2384,7 +2359,7 @@ exports.inverse = function(p) { }; exports.names = ["gnom"]; -},{"../common/adjust_lon":5,"../common/asinz":6}],48:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/asinz":6}],47:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); exports.init = function() { this.a = 6377397.155; @@ -2484,7 +2459,7 @@ exports.inverse = function(p) { }; exports.names = ["Krovak", "krovak"]; -},{"../common/adjust_lon":5}],49:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5}],48:[function(_dereq_,module,exports){ var HALF_PI = Math.PI/2; var FORTPI = Math.PI/4; var EPSLN = 1.0e-10; @@ -2774,7 +2749,7 @@ exports.authlat = function(beta, APA) { }; exports.names = ["Lambert Azimuthal Equal Area", "Lambert_Azimuthal_Equal_Area", "laea"]; -},{"../common/adjust_lon":5,"../common/qsfnz":20}],50:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/qsfnz":20}],49:[function(_dereq_,module,exports){ var EPSLN = 1.0e-10; var msfnz = _dereq_('../common/msfnz'); var tsfnz = _dereq_('../common/tsfnz'); @@ -2911,7 +2886,7 @@ exports.inverse = function(p) { exports.names = ["Lambert Tangential Conformal Conic Projection", "Lambert_Conformal_Conic", "Lambert_Conformal_Conic_2SP", "lcc"]; -},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/sign":21,"../common/tsfnz":24}],51:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/sign":21,"../common/tsfnz":24}],50:[function(_dereq_,module,exports){ exports.init = function() { //no-op for longlat }; @@ -2923,7 +2898,7 @@ exports.forward = identity; exports.inverse = identity; exports.names = ["longlat", "identity"]; -},{}],52:[function(_dereq_,module,exports){ +},{}],51:[function(_dereq_,module,exports){ var msfnz = _dereq_('../common/msfnz'); var HALF_PI = Math.PI/2; var EPSLN = 1.0e-10; @@ -3022,7 +2997,7 @@ exports.inverse = function(p) { exports.names = ["Mercator", "Popular Visualisation Pseudo Mercator", "Mercator_1SP", "Mercator_Auxiliary_Sphere", "merc"]; -},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/tsfnz":24}],53:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/tsfnz":24}],52:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); /* reference @@ -3069,7 +3044,7 @@ exports.inverse = function(p) { }; exports.names = ["Miller_Cylindrical", "mill"]; -},{"../common/adjust_lon":5}],54:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5}],53:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); var EPSLN = 1.0e-10; exports.init = function() {}; @@ -3148,7 +3123,7 @@ exports.inverse = function(p) { }; exports.names = ["Mollweide", "moll"]; -},{"../common/adjust_lon":5}],55:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5}],54:[function(_dereq_,module,exports){ var SEC_TO_RAD = 4.84813681109535993589914102357e-6; /* reference @@ -3368,7 +3343,7 @@ exports.inverse = function(p) { return p; }; exports.names = ["New_Zealand_Map_Grid", "nzmg"]; -},{}],56:[function(_dereq_,module,exports){ +},{}],55:[function(_dereq_,module,exports){ var tsfnz = _dereq_('../common/tsfnz'); var adjust_lon = _dereq_('../common/adjust_lon'); var phi2z = _dereq_('../common/phi2z'); @@ -3537,7 +3512,7 @@ exports.inverse = function(p) { }; exports.names = ["Hotine_Oblique_Mercator", "Hotine Oblique Mercator", "Hotine_Oblique_Mercator_Azimuth_Natural_Origin", "Hotine_Oblique_Mercator_Azimuth_Center", "omerc"]; -},{"../common/adjust_lon":5,"../common/phi2z":16,"../common/tsfnz":24}],57:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/phi2z":16,"../common/tsfnz":24}],56:[function(_dereq_,module,exports){ var e0fn = _dereq_('../common/e0fn'); var e1fn = _dereq_('../common/e1fn'); var e2fn = _dereq_('../common/e2fn'); @@ -3666,7 +3641,7 @@ exports.inverse = function(p) { return p; }; exports.names = ["Polyconic", "poly"]; -},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/mlfn":14}],58:[function(_dereq_,module,exports){ +},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/mlfn":14}],57:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); var adjust_lat = _dereq_('../common/adjust_lat'); var pj_enfn = _dereq_('../common/pj_enfn'); @@ -3773,7 +3748,7 @@ exports.inverse = function(p) { return p; }; exports.names = ["Sinusoidal", "sinu"]; -},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/asinz":6,"../common/pj_enfn":17,"../common/pj_inv_mlfn":18,"../common/pj_mlfn":19}],59:[function(_dereq_,module,exports){ +},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/asinz":6,"../common/pj_enfn":17,"../common/pj_inv_mlfn":18,"../common/pj_mlfn":19}],58:[function(_dereq_,module,exports){ /* references: Formules et constantes pour le Calcul pour la @@ -3855,7 +3830,7 @@ exports.inverse = function(p) { exports.names = ["somerc"]; -},{}],60:[function(_dereq_,module,exports){ +},{}],59:[function(_dereq_,module,exports){ var HALF_PI = Math.PI/2; var EPSLN = 1.0e-10; var sign = _dereq_('../common/sign'); @@ -4021,9 +3996,8 @@ exports.inverse = function(p) { return p; }; -exports.names = ["stere", "Stereographic_South_Pole", "Polar Stereographic (variant B)"]; - -},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/sign":21,"../common/tsfnz":24}],61:[function(_dereq_,module,exports){ +exports.names = ["stere"]; +},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/sign":21,"../common/tsfnz":24}],60:[function(_dereq_,module,exports){ var gauss = _dereq_('./gauss'); var adjust_lon = _dereq_('../common/adjust_lon'); exports.init = function() { @@ -4082,7 +4056,7 @@ exports.inverse = function(p) { exports.names = ["Stereographic_North_Pole", "Oblique_Stereographic", "Polar_Stereographic", "sterea","Oblique Stereographic Alternative"]; -},{"../common/adjust_lon":5,"./gauss":46}],62:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"./gauss":45}],61:[function(_dereq_,module,exports){ var e0fn = _dereq_('../common/e0fn'); var e1fn = _dereq_('../common/e1fn'); var e2fn = _dereq_('../common/e2fn'); @@ -4219,7 +4193,7 @@ exports.inverse = function(p) { }; exports.names = ["Transverse_Mercator", "Transverse Mercator", "tmerc"]; -},{"../common/adjust_lon":5,"../common/asinz":6,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/mlfn":14,"../common/sign":21}],63:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/asinz":6,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/mlfn":14,"../common/sign":21}],62:[function(_dereq_,module,exports){ var D2R = 0.01745329251994329577; var tmerc = _dereq_('./tmerc'); exports.dependsOn = 'tmerc'; @@ -4239,7 +4213,7 @@ exports.init = function() { }; exports.names = ["Universal Transverse Mercator System", "utm"]; -},{"./tmerc":62}],64:[function(_dereq_,module,exports){ +},{"./tmerc":61}],63:[function(_dereq_,module,exports){ var adjust_lon = _dereq_('../common/adjust_lon'); var HALF_PI = Math.PI/2; var EPSLN = 1.0e-10; @@ -4360,7 +4334,7 @@ exports.inverse = function(p) { return p; }; exports.names = ["Van_der_Grinten_I", "VanDerGrinten", "vandg"]; -},{"../common/adjust_lon":5,"../common/asinz":6}],65:[function(_dereq_,module,exports){ +},{"../common/adjust_lon":5,"../common/asinz":6}],64:[function(_dereq_,module,exports){ var D2R = 0.01745329251994329577; var R2D = 57.29577951308232088; var PJD_3PARAM = 1; @@ -4433,7 +4407,7 @@ module.exports = function transform(source, dest, point) { return point; }; -},{"./Proj":2,"./adjust_axis":3,"./common/toPoint":23,"./datum_transform":31}],66:[function(_dereq_,module,exports){ +},{"./Proj":2,"./adjust_axis":3,"./common/toPoint":23,"./datum_transform":30}],65:[function(_dereq_,module,exports){ var D2R = 0.01745329251994329577; var extend = _dereq_('./extend'); @@ -4613,7 +4587,6 @@ function cleanWKT(wkt) { ['false_northing', 'False_Northing'], ['central_meridian', 'Central_Meridian'], ['latitude_of_origin', 'Latitude_Of_Origin'], - ['latitude_of_origin', 'Central_Parallel'], ['scale_factor', 'Scale_Factor'], ['k0', 'scale_factor'], ['latitude_of_center', 'Latitude_of_center'], @@ -4631,16 +4604,12 @@ function cleanWKT(wkt) { ['srsCode', 'name'] ]; list.forEach(renamer); - if (!wkt.long0 && wkt.longc && (wkt.projName === 'Albers_Conic_Equal_Area' || wkt.projName === "Lambert_Azimuthal_Equal_Area")) { + if (!wkt.long0 && wkt.longc && (wkt.PROJECTION === 'Albers_Conic_Equal_Area' || wkt.PROJECTION === "Lambert_Azimuthal_Equal_Area")) { wkt.long0 = wkt.longc; } - if (!wkt.lat_ts && wkt.lat1 && (wkt.projName === 'Stereographic_South_Pole' || wkt.projName === 'Polar Stereographic (variant B)')) { - wkt.lat0 = d2r(wkt.lat1 > 0 ? 90 : -90); - wkt.lat_ts = wkt.lat1; - } } module.exports = function(wkt, self) { - var lisp = JSON.parse(("," + wkt).replace(/\s*\,\s*([A-Z_0-9]+?)(\[)/g, ',["$1",').slice(1).replace(/\s*\,\s*([A-Z_0-9]+?)\]/g, ',"$1"]').replace(/,\["VERTCS".+/,'')); + var lisp = JSON.parse(("," + wkt).replace(/\s*\,\s*([A-Z_0-9]+?)(\[)/g, ',["$1",').slice(1).replace(/\s*\,\s*([A-Z_0-9]+?)\]/g, ',"$1"]')); var type = lisp.shift(); var name = lisp.shift(); lisp.unshift(['name', name]); @@ -4652,7 +4621,7 @@ module.exports = function(wkt, self) { return extend(self, obj.output); }; -},{"./extend":34}],67:[function(_dereq_,module,exports){ +},{"./extend":33}],66:[function(_dereq_,module,exports){ @@ -4692,7 +4661,7 @@ var Z = 90; // Z * @param {object} ll Object literal with lat and lon properties on a * WGS84 ellipsoid. * @param {int} accuracy Accuracy in digits (5 for 1 m, 4 for 10 m, 3 for - * 100 m, 2 for 1000 m or 1 for 10000 m). Optional, default is 5. + * 100 m, 4 for 1000 m or 5 for 10000 m). Optional, default is 5. * @return {string} the MGRS string for the given location and accuracy. */ exports.forward = function(ll, accuracy) { @@ -4713,18 +4682,12 @@ exports.forward = function(ll, accuracy) { */ exports.inverse = function(mgrs) { var bbox = UTMtoLL(decode(mgrs.toUpperCase())); - if (bbox.lat && bbox.lon) { - return [bbox.lon, bbox.lat, bbox.lon, bbox.lat]; - } return [bbox.left, bbox.bottom, bbox.right, bbox.top]; }; -exports.toPoint = function(mgrs) { - var bbox = UTMtoLL(decode(mgrs.toUpperCase())); - if (bbox.lat && bbox.lon) { - return [bbox.lon, bbox.lat]; - } - return [(bbox.left + bbox.right) / 2, (bbox.top + bbox.bottom) / 2]; +exports.toPoint = function(mgrsStr) { + var llbbox = exports.inverse(mgrsStr); + return [(llbbox[2] + llbbox[0]) / 2, (llbbox[3] + llbbox[1]) / 2]; }; /** * Conversion from degrees to radians. @@ -5014,9 +4977,8 @@ function getLetterDesignator(lat) { * @return {string} MGRS string for the given UTM location. */ function encode(utm, accuracy) { - // prepend with leading zeroes - var seasting = "00000" + utm.easting, - snorthing = "00000" + utm.northing; + var seasting = "" + utm.easting, + snorthing = "" + utm.northing; return utm.zoneNumber + utm.zoneLetter + get100kID(utm.easting, utm.northing, utm.zoneNumber) + seasting.substr(seasting.length - 5, accuracy) + snorthing.substr(snorthing.length - 5, accuracy); } @@ -5396,10 +5358,10 @@ function getMinNorthing(zoneLetter) { } -},{}],68:[function(_dereq_,module,exports){ +},{}],67:[function(_dereq_,module,exports){ module.exports={ "name": "proj4", - "version": "2.3.10", + "version": "2.2.1", "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.", "main": "lib/index.js", "directories": { @@ -5440,13 +5402,12 @@ module.exports={ "tin": "~0.4.0" }, "dependencies": { - "mgrs": "~0.0.2" + "mgrs": "0.0.0" } } - },{}],"./includedProjections":[function(_dereq_,module,exports){ -module.exports=_dereq_('hTEDpn'); -},{}],"hTEDpn":[function(_dereq_,module,exports){ +module.exports=_dereq_('gWUPNW'); +},{}],"gWUPNW":[function(_dereq_,module,exports){ var projs = [ _dereq_('./lib/projections/tmerc'), _dereq_('./lib/projections/utm'), @@ -5476,6 +5437,6 @@ module.exports = function(proj4){ proj4.Proj.projections.add(proj); }); } -},{"./lib/projections/aea":40,"./lib/projections/aeqd":41,"./lib/projections/cass":42,"./lib/projections/cea":43,"./lib/projections/eqc":44,"./lib/projections/eqdc":45,"./lib/projections/gnom":47,"./lib/projections/krovak":48,"./lib/projections/laea":49,"./lib/projections/lcc":50,"./lib/projections/mill":53,"./lib/projections/moll":54,"./lib/projections/nzmg":55,"./lib/projections/omerc":56,"./lib/projections/poly":57,"./lib/projections/sinu":58,"./lib/projections/somerc":59,"./lib/proje [...] -(36) +},{"./lib/projections/aea":39,"./lib/projections/aeqd":40,"./lib/projections/cass":41,"./lib/projections/cea":42,"./lib/projections/eqc":43,"./lib/projections/eqdc":44,"./lib/projections/gnom":46,"./lib/projections/krovak":47,"./lib/projections/laea":48,"./lib/projections/lcc":49,"./lib/projections/mill":52,"./lib/projections/moll":53,"./lib/projections/nzmg":54,"./lib/projections/omerc":55,"./lib/projections/poly":56,"./lib/projections/sinu":57,"./lib/projections/somerc":58,"./lib/proje [...] +(35) }); \ No newline at end of file diff --git a/lib/datum.js b/lib/datum.js index 916e7c5..e7c6fbc 100644 --- a/lib/datum.js +++ b/lib/datum.js @@ -18,23 +18,23 @@ var datum = function(proj) { if (proj.datumCode && proj.datumCode === 'none') { this.datum_type = PJD_NODATUM; } + if (proj.datum_params) { - for (var i = 0; i < proj.datum_params.length; i++) { - proj.datum_params[i] = parseFloat(proj.datum_params[i]); - } - if (proj.datum_params[0] !== 0 || proj.datum_params[1] !== 0 || proj.datum_params[2] !== 0) { + this.datum_params = proj.datum_params.map(parseFloat); + if (this.datum_params[0] !== 0 || this.datum_params[1] !== 0 || this.datum_params[2] !== 0) { this.datum_type = PJD_3PARAM; } - if (proj.datum_params.length > 3) { - if (proj.datum_params[3] !== 0 || proj.datum_params[4] !== 0 || proj.datum_params[5] !== 0 || proj.datum_params[6] !== 0) { + if (this.datum_params.length > 3) { + if (this.datum_params[3] !== 0 || this.datum_params[4] !== 0 || this.datum_params[5] !== 0 || this.datum_params[6] !== 0) { this.datum_type = PJD_7PARAM; - proj.datum_params[3] *= SEC_TO_RAD; - proj.datum_params[4] *= SEC_TO_RAD; - proj.datum_params[5] *= SEC_TO_RAD; - proj.datum_params[6] = (proj.datum_params[6] / 1000000.0) + 1.0; + this.datum_params[3] *= SEC_TO_RAD; + this.datum_params[4] *= SEC_TO_RAD; + this.datum_params[5] *= SEC_TO_RAD; + this.datum_params[6] = (this.datum_params[6] / 1000000.0) + 1.0; } } } + // DGR 2011-03-21 : nadgrids support this.datum_type = proj.grids ? PJD_GRIDSHIFT : this.datum_type; @@ -42,7 +42,6 @@ var datum = function(proj) { this.b = proj.b; this.es = proj.es; this.ep2 = proj.ep2; - this.datum_params = proj.datum_params; if (this.datum_type === PJD_GRIDSHIFT) { this.grids = proj.grids; } diff --git a/lib/wkt.js b/lib/wkt.js index f759770..8e8803b 100644 --- a/lib/wkt.js +++ b/lib/wkt.js @@ -111,7 +111,13 @@ function cleanWKT(wkt) { wkt.units = 'meter'; } if (wkt.UNIT.convert) { - wkt.to_meter = parseFloat(wkt.UNIT.convert, 10); + if (wkt.type === 'GEOGCS') { + if (wkt.DATUM && wkt.DATUM.SPHEROID) { + wkt.to_meter = parseFloat(wkt.UNIT.convert, 10)*wkt.DATUM.SPHEROID.a; + } + } else { + wkt.to_meter = parseFloat(wkt.UNIT.convert, 10); + } } } diff --git a/package.json b/package.json index 8fc17d2..3ee40c4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "proj4", - "version": "2.3.10-alpha", + "version": "2.3.11-alpha", "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.", "main": "lib/index.js", "directories": { diff --git a/test/test.js b/test/test.js index c9c8653..45bfc32 100644 --- a/test/test.js +++ b/test/test.js @@ -171,6 +171,16 @@ function startTests(chai, proj4, testPoints) { assert.typeOf(proj4.defs['foo'], 'object'); proj4.defs('urn:x-ogc:def:crs:EPSG:4326', proj4.defs('EPSG:4326')); assert.strictEqual(proj4.defs['urn:x-ogc:def:crs:EPSG:4326'], proj4.defs['EPSG:4326']); + + describe('wkt', function() { + it('should provide the correct conversion factor for WKT GEOGCS projections', function() { + proj4.defs('EPSG:4269', 'GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]]'); + assert.equal(proj4.defs['EPSG:4269'].to_meter, 6378137*0.01745329251994328); + + proj4.defs('EPSG:4279', 'GEOGCS["OS(SN)80",DATUM["OS_SN_1980",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6279"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4279"]]'); + assert.equal(proj4.defs['EPSG:4279'].to_meter, 6377563.396*0.01745329251994328); + }); + }); }); describe('errors', function() { it('should throw an error for an unknown ref', function() { -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/proj4js.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel