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...