Geolocation closest location(lat, long) from my position Geolocation closest location(lat, long) from my position jquery jquery

Geolocation closest location(lat, long) from my position


Here is a basic code example using HTML5 geolocation to get the user's position. It then calls NearestCity() and calculates the distance (km) from the location to each city. I passed on using the Haversine formulae and instead used the simpler Pythagoras formulae and an equirectangular projection to adjust for the curvature in longitude lines.

// Get User's Coordinate from their Browserwindow.onload = function() {  // HTML5/W3C Geolocation  if (navigator.geolocation) {    navigator.geolocation.getCurrentPosition(UserLocation);  }  // Default to Washington, DC  else    NearestCity(38.8951, -77.0367);}// Callback function for asynchronous call to HTML5 geolocationfunction UserLocation(position) {  NearestCity(position.coords.latitude, position.coords.longitude);}// Convert Degress to Radiansfunction Deg2Rad(deg) {  return deg * Math.PI / 180;}function PythagorasEquirectangular(lat1, lon1, lat2, lon2) {  lat1 = Deg2Rad(lat1);  lat2 = Deg2Rad(lat2);  lon1 = Deg2Rad(lon1);  lon2 = Deg2Rad(lon2);  var R = 6371; // km  var x = (lon2 - lon1) * Math.cos((lat1 + lat2) / 2);  var y = (lat2 - lat1);  var d = Math.sqrt(x * x + y * y) * R;  return d;}var lat = 20; // user's latitudevar lon = 40; // user's longitudevar cities = [  ["city1", 10, 50, "blah"],  ["city2", 40, 60, "blah"],  ["city3", 25, 10, "blah"],  ["city4", 5, 80, "blah"]];function NearestCity(latitude, longitude) {  var minDif = 99999;  var closest;  for (index = 0; index < cities.length; ++index) {    var dif = PythagorasEquirectangular(latitude, longitude, cities[index][1], cities[index][2]);    if (dif < minDif) {      closest = index;      minDif = dif;    }  }  // echo the nearest city  alert(cities[closest]);}


With HTML5, you can pull the location of the user and then compares this example using a Haversine function (function below taken from here):

function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) {  var R = 6371; // Radius of the earth in km  var dLat = deg2rad(lat2-lat1);  // deg2rad below  var dLon = deg2rad(lon2-lon1);   var a =     Math.sin(dLat/2) * Math.sin(dLat/2) +    Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *     Math.sin(dLon/2) * Math.sin(dLon/2)    ;   var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));   var d = R * c; // Distance in km  return d;}function deg2rad(deg) {  return deg * (Math.PI/180)}


You can calculate the distance by latitude with your location and the cities locations. And find the shortest and draw. To calculate you can read more in http://www.movable-type.co.uk/scripts/latlong.html