Commit 7fd98015 authored by Matthew Bloch's avatar Matthew Bloch Committed by Calvin Metcalf
Browse files

Improve proj string parsing

Convert a and b parameters to numbers, fix parseFloat() calls
parent d016612e
Loading
Loading
Loading
Loading
+15 −9
Original line number Diff line number Diff line
var D2R = 0.01745329251994329577;
var PrimeMeridian = require('./constants/PrimeMeridian');

module.exports = function(defData) {
  var self = {};

  var paramObj = {};
  defData.split("+").map(function(v) {
    return v.trim();
@@ -18,7 +18,7 @@ module.exports = function(defData) {
    proj: 'projName',
    datum: 'datumCode',
    rf: function(v) {
      self.rf = parseFloat(v, 10);
      self.rf = parseFloat(v);
    },
    lat_0: function(v) {
      self.lat0 = v * D2R;
@@ -48,16 +48,22 @@ module.exports = function(defData) {
      self.longc = v * D2R;
    },
    x_0: function(v) {
      self.x0 = parseFloat(v, 10);
      self.x0 = parseFloat(v);
    },
    y_0: function(v) {
      self.y0 = parseFloat(v, 10);
      self.y0 = parseFloat(v);
    },
    k_0: function(v) {
      self.k0 = parseFloat(v, 10);
      self.k0 = parseFloat(v);
    },
    k: function(v) {
      self.k0 = parseFloat(v, 10);
      self.k0 = parseFloat(v);
    },
    a: function(v) {
      self.a = parseFloat(v);
    },
    b: function(v) {
      self.b = parseFloat(v);
    },
    r_a: function() {
      self.R_A = true;
@@ -70,17 +76,17 @@ module.exports = function(defData) {
    },
    towgs84: function(v) {
      self.datum_params = v.split(",").map(function(a) {
        return parseFloat(a, 10);
        return parseFloat(a);
      });
    },
    to_meter: function(v) {
      self.to_meter = parseFloat(v, 10);
      self.to_meter = parseFloat(v);
    },
    from_greenwich: function(v) {
      self.from_greenwich = v * D2R;
    },
    pm: function(v) {
      self.from_greenwich = (PrimeMeridian[v] ? PrimeMeridian[v] : parseFloat(v, 10)) * D2R;
      self.from_greenwich = (PrimeMeridian[v] ? PrimeMeridian[v] : parseFloat(v)) * D2R;
    },
    nadgrids: function(v) {
      if (v === '@null') {