Я создаю приложение Parse и хочу иметь возможность получать все объекты на определенном расстоянии от одного объекта с помощью GeoPoints. Кажется простым, но следующий код возвращает [] (нет совпадений):
app.get('/photos', function(req, res) {
var Photo = Parse.Object.extend("Photo");
var query = new Parse.Query(Photo);
query.equalTo("owner", Parse.User.current());
query.find({
success: function(results) {
// Do something with the returned Parse.Object values
//res.send(results);
var photo = results[0];
// Create a query for places
var Photo = Parse.Object.extend("Photo");
var query = new Parse.Query(Photo);
// Interested in photos taken near this photo.
query.withinMiles("coordinates", photo.coordinates, 500000);
// Final list of objects
query.find({
success: function(photoObjects) {
res.send(photoObjects);
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
});
Как ни странно, если я изменю строку query.withinMiles("coordinates", photo.coordinates, 500000);
на query.near("coordinates", photo.coordinates);
, то она будет работать без сучка и задоринки и вернет все фотографии (каждая из них имеет GeoPoint в радиусе примерно 5 миль от всех остальных в наборе данных примера, поэтому я использовал maxDistance 500000). чтобы проверить масштаб проблемы).
Проблема в том, что мне нужно иметь возможность ограничиться определенным радиусом, что, как я и думал, делает «внутри миль». Любые идеи, что я могу делать неправильно?