jQuery addClass, removeClass, toggleClass

by Dörnesz Tamás

HTML

<form name="form">
  <input type="text" name="lat1" value="47.2093071" placeholder="lat 1">
  <input type="text" name="lon1" value="17.8464604" placeholder="lon 1">
  <br>
  <input type="text" name="lat2" value="47.2093071" placeholder="lat 2">
  <input type="text" name="lon2" value="17.8463943" placeholder="lon 2">
  <br>
  <br>
  <input type="text" name="tav" placeholder="meter">
  <br>
  <input type="button" value="gps > m" onClick="javascript:tv()">
  <br>
  <br>
  <input type="text" name="tavx" placeholder="dx">
  <br>
  <input type="text" name="tavy" placeholder="dy">
  <br>
  <input type="button" value="táv > gps" onClick="javascript:tv2()">
  <br>
</form>

JavaScript

var lat1, lon1, lat2, lon2;

function measure() {
  var R = 6378.137; // Radius of earth in KM
  var dLat = lat2 * Math.PI / 180 - lat1 * Math.PI / 180;
  var dLon = lon2 * Math.PI / 180 - lon1 * Math.PI / 180;
  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
    Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
    Math.sin(dLon / 2) * Math.sin(dLon / 2);
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  var d = R * c;
  return d * 1000; // meters
}

function tv() {
  lat1 = Number(form.lat1.value);
  lon1 = Number(form.lon1.value);
  lat2 = Number(form.lat2.value);
  lon2 = Number(form.lon2.value);
  form.tav.value = measure();
}

function tv2() {
  lat1 = Number(form.lat1.value);
  lon1 = Number(form.lon1.value);
  lat2 = lat1 + (180 / Math.PI) * (form.tavy.value / 6378137);
  lon2 = lon1 + (180 / Math.PI) * (form.tavx.value / 6378137) / Math.cos(lat1);
  form.lat2.value = lat2;
  form.lon2.value = lon2;
}