dpp lat long test

by brian428

JavaScript

require(["dojo/number"], 
  function(number) {
      
      todms = function (input) {
        // returns an integer value
        var negative = input < 0,
            val = Math.abs(input),
            deg = Math.floor(val),
            min = Math.floor((val - deg) * 60.0),
            sec = number.round(((val - deg) * 60.0 - min) * 60.0, 0),
            retval;
        
          if( sec == 60 ) {
              sec = 00;
              min = min + 1;
          }
          
        retval = deg + number.format(min, {
                pattern: '00'
            }) + number.format(sec, {
                pattern: '00'
            });  
        if (negative) {
            return retval * -1;
        }
        return parseInt(retval, 10);
      };
      todeg = function (dms) {
          var re = /(\d{1,3})(\d{2})(\d{2})([NSEW])/,
              res = re.exec(dms),
              deg = parseInt(res[1], 10),
              min = parseInt(res[2], 10),
              sec = parseInt(res[3], 10),
              sign = res[4],
              num = deg + min / 60.0 + sec / 3600.0;
          if (sign === 'S' || sign === 'W') {
              num = num * -1;
          }
          return number.round(num, 4);
      };
      
      buildObj = function(georef) {      
          var obj = {};
          var parts = georef.split(' ');
          var lat = todms(parseFloat(parts[0]));
          var lon = todms(parseFloat(parts[1]));
          if (lat > 0) {
            obj.lat = lat + 'N';
          } else {
            obj.lat = lat * -1 + 'S';
          }
          obj.lat = String('0000000' + obj.lat).slice(-7);
          if (lon > 0) {
            obj.lon = lon + 'E';
          } else {
            obj.lon = lon * -1 + 'W';
          }
          obj.lon = String('00000000' + obj.lon).slice(-8);
          return obj;
      }
      
      debugIt = function( georef, obj, expectedLat, expectedLon ) {
          console.log( "Input georef is: " + georef );
          console.log( "Converted...