Shortest Distance From An Array

Posted by notyou61 on Stack Overflow See other posts from Stack Overflow or by notyou61
Published on 2014-08-21T15:07:41Z Indexed on 2014/08/22 4:20 UTC
Read the original article Hit count: 181

Filed under:
|

I have an ajax function which returns the latitudes and longitudes of locations stored in a database. These are returned and placed in an array. A calculation is performed to return their distance from the users current location based on the latitude/longitude. I would like to return only the record with the shortest calculated distance. My code is as follows:

Ajax Success

// Success
success: function (data) {
    // Obtain Log/Lat
    navigator.geolocation.getCurrentPosition(function(position) {
        // Obtain Current Position Lat/Lon
        glbVar.latitude = position.coords.latitude;
        glbVar.longitude = position.coords.longitude;
        // Console Log
        //console.log('Lat: ' + glbVar.latitude + ' Lon: ' + glbVar.longitude);
        // Obtain Location Distances
        for ( var i = 0; i < data.length; i++ ) {
            // Location Instances
            var varLocation = data[i];
            // Location Distance
            varLocation.distance = calculateDistance(glbVar.longitude, glbVar.latitude, varLocation.locationLongitude, varLocation.locationLatitude);
        }
        // Sort Locations By Distance
        var sortedData = data.sort(function(a, b) {
            // Return Locations
            return a.distance - b.distance;
        });
        // Output Results
        $.map(sortedData, function(item) {
            // Obtain Location Distance
            varLocationsDistance = calculateDistance(glbVar.longitude, glbVar.latitude, item.locationLongitude, item.locationLatitude);
            // Obtain Location Radius Assignment
            if (varLocationsDistance <= varLocationRadius) {
                // Function Return
                functionReturn = $({locationID : item.locationID + ', Distance : ' + varLocationsDistance + ' m'});
                // Return
                // Function to get the Min value in Array
                Array.min = function( sortedData ){
                    functionReturn = Math.min.apply( Math, sortedData );
                    //
                    console.log(functionReturn);
                };
            }
        });
    });
}

The calculateDistance function returns the distance from the users current location and those from the database. The varLocationsDistance <= varLocationRadius "If" statement returns records within a certain distance radius (100 meters), within that statement I would like to return the shortest distance.

I am a self taught amateur web developer and as a result may not have provide enough information for an answer, please let me know.

Thanks,

© Stack Overflow or respective owner

Related posts about jQuery

Related posts about arrays