JSFiddle - React, Tailwind, and code Playground
by Nick Karnik
HTML
<input type="text" id=lon value=20.12>
<input type="text" id=lat value=-40.222222>
<button id="process">submit</button>
<br>
<div id=result></div>
<br>
<div id=original></div>
JavaScript
enc = function(lon, lat) {
console.log(lon);
//console.log(lat);
var modlon = Number.parseFloat(lon) + 180;
console.log(modlon);
var modlat = Number.parseFloat(lat) + 90;
//console.log(modlat);
modlon = modlon * 1000000;
console.log(modlon);
modlat = modlat * 1000000;
//console.log(modlat);
modlon = Math.trunc(modlon);
console.log(modlon);
modlat = Math.trunc(modlat);
//console.log(modlat);
var num = (modlon * Math.pow(10, 9)) + modlat;
//console.log((shiftedLat * Math.pow(10, 16)) + shiftedLon)
console.log(num);
return num;
};
dec = function(num) {
console.log("========");
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
console.log(lon)
lon = Number.parseFloat(lon / 1000000); // get decimals
console.log(lon)
lon = lon - 180; // shift back
console.log(lon)
lon = Math.trunc(lon * 1000000) / 1000000;
console.log(lon)
return [lon, lat];
}
$("#process").click(function() {
var e = enc($("#lon").val(), $("#lat").val());
$("#result").text(e)
var res = dec(e);
$("#original").text(res[0] + ", " + res[1]);
});