I am testing to find out if my current location is inside the location radius (300m). if it is yes return true. otherwise return false
please find below the code that currently using
<body>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
//below returant location
var resturantLat = 47.55522178620101;
var resturantLon = -122.34152897937625;
var radius = 300
//show my current location in page
var myLocation = document.getElementById("demo");
//get my current location
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
myLocation.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
myLocation.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
var myLocationLat = position.coords.latitude;
var myLocationLon = position.coords.longitude;
/*
if (my location inside radius){return true} else { return false}
*/
</script>
</body>
I found answer
var validDistance = 500;
function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
if (unit=="M") { dist = dist * 1000 }
return dist
}
check = distance(24.80184269562203,46.85365721077833,50.80047136281515,46.8539082886313,"M");
if(check <validDistance){
document.getElementById("demo").innerHTML = "true";
}
else {
document.getElementById("demo").innerHTML = "false";
}