我正在创建一个 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 英里半径范围内,所以我使用了 500000 的 maxDistance 来测试问题的程度)。
问题是我需要能够限制到一个特定的半径,这就是我认为“withinMiles”正在做的事情。有什么想法我可能做错了吗?