JSFiddle - React, Tailwind, and code Playground
HTML
<input type="text" id=lon value=160.3456789012>
<input type="text" id=lat value=30.3456789012>
<button id="process">submit</button>
<br>
<div id=result></div>
<br>
<div id=original></div>
<input type="text" id=num2>
<button id="process2">submit</button>
JavaScript
enc = function(lon, lat) {
var shiftedLon = Number.parseFloat(lon) + 180;
var shiftedLat = Number.parseFloat(lat) + 90;
//var shiftedLon = lon + 180;
//var shiftedLat = lat + 90;
var expandedLon = shiftedLon * 1000000;
var expandedLat = shiftedLat * 1000000;
var truncatedLon = Math.trunc(expandedLon);
var truncatedLat = Math.trunc(expandedLat);
//console.log((shiftedLat * Math.pow(10, 16)));
console.log(truncatedLon);
console.log(truncatedLat);
var num = (truncatedLon * Math.pow(10, 9)) + truncatedLat;
//console.log((shiftedLat * Math.pow(10, 16)) + shiftedLon)
return num;
};
dec = function(num) {
debugger;
var lat = num % 1000000000; // extract latitude int
lat = Number.parseFloat(lat) / 1000000; // get decimals
lat = lat - 90; // shift back
lat = Math.trunc(lat * 1000000) / 1000000;
console.log(lat)
var lon = (num - (num % 1000000000)) / Math.pow(10,9); // extract longitude int
lon = Number.parseFloat(lon / 1000000); // get decimals
lon = lon - 180; // shift back
lon = lon.toFixed(6);
//lon = Math.trunc(lon * 1000000) / 1000000;
console.log(lon)
return [lon, lat];
}
$("#process").click(function() {
var e = enc($("#lon").val(), $("#lat").val());
$("#num2").val(e)
var res = dec(e);
$("#original").text(res[0] + ", " + res[1]);
});
$("#process2").click(function() {
var res = dec($('#num2').val());
$("#original").text(res[0] + ", " + res[1]);
});