Server script location/database search issues

I'm using a geolocation server script from an example you guys developed several years ago and it always seems to find the coordinates, but when it searches the database for names at the location I get inconsistent error messages "An error occured". (Please see attached server code). What I mean is sometimes it works and sometimes it doesn't. Help please - the server code is below. As I said it is from a past tutorial of yours.

Server Code

// Database Id
var dbId = "5463d26be4b03a87ba7abf34"; //Change this value to your database id

var responseBody = {};

// Get request parameters
var latitude = request.object().latitude;
var longitude = request.object().longitude;
var radius = request.object().radius;

// The function that calculates the distance between two points

function getDistance(lat1, lat2, lon1, lon2) {

var R = 6378137; // Earth’s mean radius in meters

var dLat = (lat2 - lat1)*Math.PI/180;

var dLon = (lon2 - lon1)*Math.PI/180;

var lat1 = lat1*Math.PI/180;

var lat2 = lat2*Math.PI/180;

var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);

var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

var d = R * c;

return d;

}

try {

// Check if all the necessary parameters are present and valid

if (latitude && longitude && radius && !isNaN(latitude) && !isNaN(longitude) && !isNaN(radius)) {

var results = [];

var params = {};

// Sort the results by contact name

params.sort = "contactName";

// Get all customers from the database

var customers = Collection.query(dbId, "customers", params);

for (var i = 0; i < customers.length; i++) {

// Geocode customer's address with Google API

var XHRResponse = XHR.send("GET", "https://maps.googleapis.com/maps/api/...", {

"parameters": {

"address": customers[i].address,

"sensor": "false"

}

});

console.log(XHRResponse);

if (XHRResponse.status == 200) {

// Get coordinates from the response

var lat = JSON.parse(XHRResponse.body).results[0].geometry.location.lat;

var lng = JSON.parse(XHRResponse.body).results[0].geometry.location.lng;

// If the customer's coordinates are within the radius,

// add the customer record to the results array

if (getDistance(lat, latitude, lng, longitude) , 400);

}
1 person has
this problem
+1
Reply