 <p>You can loop through the latlongs for the user and location off to a function that calculates distance based on the Haversine formula:</p> <p>In your controller, after loading your data:</p> <pre><code>angular.forEach(results, function(s) { store['dist'] = getDistanceInM(user_lat, user_lon, store['store_latitude'], store['store_longitude']); }) </code></pre> <p>These functions can be either in your controller or in a service:</p> <pre><code> var getDistanceInM = function(lat1, lon1, lat2, lon2) { var R = 6371; var dLat = deg2rad(lat2 - lat1); 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 * 1000; return parseInt(d, 10); }; var deg2rad = function(deg) { return deg * (Math.PI / 180); }; </code></pre> <p>In your view:</p> <pre><code>&lt;ion-item ng-repeat="item in data.stores | orderBy:'dist'"&gt; </code></pre>