0

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>
Fahd
  • 5
  • 4
  • 1
    If the distance between your current location and the center of the circle is less than the radius of the circle, you're on the inside. If it is greater, you're on the outside. – Ronald Nov 11 '21 at 07:59
  • [This might be helpful.](https://stackoverflow.com/questions/54953691/how-to-check-if-coords-are-within-a-radius-in-km) Thanks. – Ahmed Jun 23 '22 at 13:51

1 Answers1

0

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"; 

}
Fahd
  • 5
  • 4
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Nov 12 '21 at 13:26