Skip to content

Instantly share code, notes, and snippets.

@numeroSette
Created May 30, 2016 02:23
Show Gist options
  • Save numeroSette/d46c61d0ce3c60ae98330c9d65aa486c to your computer and use it in GitHub Desktop.
Save numeroSette/d46c61d0ce3c60ae98330c9d65aa486c to your computer and use it in GitHub Desktop.
var json = [
{
"id" : '1',
"name" : "Marker 1",
"lat" : '-25.55913',
"lng" : '-49.282099'
},
{
"id" : '2',
"name" : "Marker 2",
"lat" : '-25.56930',
"lng" : '-49.292200'
},
{
"id" : '3',
"name" : "Marker 3",
"lat" : '-25.53930',
"lng" : '-49.292200'
}
];
var arr = [];
json.map(function(value){
if(getDistanceBetweenPoints({"lat":value.lat,"lng":value.lng},{"lat":
-25.5591156,"lng":
-49.28208870000003},'km') <
5.180150806097898){
arr.push(value);
}
});
console.log(arr);
function toRad(x) {
return x * Math.PI / 180;
}
function getDistanceBetweenPoints(pos1, pos2, units) {
var earthRadius = {
miles: 3958.8,
km: 6371
};
var R = earthRadius[units || 'miles'];
var lat1 = pos1.lat;
var lon1 = pos1.lng;
var lat2 = pos2.lat;
var lon2 = pos2.lng;
var dLat = toRad((lat2 - lat1));
var dLon = toRad((lon2 - lon1));
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(toRad(lat1)) * Math.cos(toRad(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;
return d;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment