Я пытаюсь определить расстояние между двумя почтовыми индексами. Координаты одного почтового индекса являются общими, однако другой почтовый индекс хранится в базе данных, которую мне нужно получить. Этот код ниже не определяет расстояние между общим почтовым индексом и тем, который я ввел.
var x = getDistanceFromLatLonInKm(52.482799000000000, -2.000643000000000, 52.48463500000000, -1.980759000000000);
function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2){
console.log(lat1, lon1, lat2, lon2);
var distanceFromSpecificPoint = getDistanceFromLatLonInKm.bind(null, 52.486637, -1.890952);
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)
}
document.getElementById('result').textContent = x;
console.log(x)
</script>
var distanceFromSpecificPoint = getDistanceFromLatLonInKm.bind(null, 52.486637, -1.890952);
- person ManoDestra   schedule 05.04.2016a
. До сих пор не проверял математическую достоверность этих расчетов, но это одна из возможных областей для ошибки, которая сразу приходит на ум. И вы можете использовать некоторые вызовы Math.pow в этом вычислении, чтобы избежать повторного выполнения двух операций sin. - person ManoDestra   schedule 05.04.2016