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]);
});