0

i am creating an app using Titanium Appcelerator Android & ios.

i just having a array of lat lng values , i want to sort the arrays that is nearest to my specified latitude and longitude. How can i get those values.Pleasae help.

GK_
  • 1,212
  • 1
  • 12
  • 26

2 Answers2

0

One way of achieving this could be: 1. Calculate the distance between your specified location (source latitude, source longitude) and item in array (destination latitude, destination longitude) using Haversine formula. 2. Repeat Step 1 for every item in array. 3. Sort the arrays.

Here are few links which may come handy:- Using the Haversine Formula in Javascript

Sorting multiple JavaScript array

Community
  • 1
  • 1
Vipin
  • 31
  • 8
0

you can use this to calculate the distance between two lat long:

function distance(lat1, lon1, lat2, lon2, unit) {
    var radlat1 = Math.PI * lat1/180
    var radlat2 = Math.PI * lat2/180
    var radlon1 = Math.PI * lon1/180
    var radlon2 = Math.PI * lon2/180
    var theta = lon1-lon2
    var radtheta = Math.PI * theta/180
    var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);

    dist = Math.acos(dist)
    dist = dist * 180/Math.PI
    dist = dist * 60 * 1.1515

    if (unit=="K") { dist = dist * 1.609344 }
    if (unit=="N") { dist = dist * 0.8684 }
    return dist
}

//:::  Passed to function:                                                    :::
//:::    lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees)  :::
//:::    lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees)  :::
//:::    unit = the unit you desire for results                               :::
//:::           where: 'M' is statute miles (default)                         :::
//:::                  'K' is kilometers                                      :::
//:::                  'N' is nautical miles

Source

After pushing all the distances in an array you can easily sort the according to your need.

Swanand
  • 1,138
  • 8
  • 21