Calculate Weightage w.r.t Distance

by Diya_Khan

HTML

<div id="ds"></div>
<div id="dv"></div>

JavaScript

var deg2rad = function(deg) {

    return deg * (Math.PI / 180);
};

var rad2deg = function(rad) {

    return rad * (180 / Math.PI);
};
var getDistanceFromLatLonInM = function(lat1, lon1, lat2, lon2) {
  
    var R = 6371000; // Radius of the earth in m
    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 meter
    return Math.floor(d);
};

function getWeightageByDistance(distance){
    document.getElementById("ds").innerHTML = "<span>" + distance + "</span>";
    console.log("distance: " + distance);
    
    var total_weightage = 100;
    
    var distance_change = distance;
    
    var division_unit = 1000;
    var subtraction_unit = 4;
    
    if(distance < 100){ // 0.1 km
        division_unit = 20;
        subtraction_unit = 0.5;
    }
    else if(distance < 1000){ // 1 km
        division_unit = 50;
        subtraction_unit = 1;
    }
    else if(distance < 10000){ // 10 km
        division_unit = 500;
        subtraction_unit = 2;
    }
console.log("dv: " + division_unit + ", su:" + subtraction_unit);
    
    distance_change = parseInt(distance_change - division_unit);
    while(distance_change > 0){
        if(total_weightage === 0){
            break;
        }
        distance_change = parseInt(distance_change - division_unit);
        console.log("dc: " + distance_change);            
        total_weightage -= subtraction_unit;
        console.log("tw: " + total_weightage);
    }        
        
    return total_weightage/10;
}

var popularity = 0;
var lat1 = 37.785834, lon1 = -122.406417;
var lat2 = 37.777119, lon2 = -122.41964;

var d = getDistanceFromLatLonInM(lat1, lon1, lat2, lon2);
popularity += getWeightageByDistance(d);
    
document.getElementById("dv").innerHTML...