我在编写 Parse 查询以获取带有与输入的 GeoPoint 最接近的 GeoPoint 的 Parse 对象时遇到问题。目前,代码似乎正在返回最近创建的对象。
代码:
// check Parse for infections around passed GeoPoint
Parse.Cloud.define("InfectionCheck_BETA", function(request, response) {
var returnCount;
var geoPoint = request.params.geoPoint;
var query = new Parse.Query("InfectedArea");
query.withinMiles("centerPoint", geoPoint, 1); // check for infections within one mile
Parse.Promise.as().then(function() {
// query for count of infection in area, this is how we get severity
return query.count().then(null, function(error) {
console.log('Error getting InfectedArea. Error: ' + error);
return Parse.Promise.error(error);
});
}).then(function(count) {
if (count <= 0) {
// no infected areas, return 0
response.success(0);
}
returnCount = count;
return query.first().then(null, function(error) {
console.log('Error getting InfectedArea. Error: ' + error);
return Parse.Promise.error(error);
});
}).then(function(result) {
// we have the InfectedArea in question, return an array with both
response.success([returnCount, result]);
}, function(error) {
response.error(error);
});
});
我想要的是 first() 查询返回centerPoint
键中包含 CLOSEST GeoPoint 的对象。
我试过添加query.near("centerPoint", geoPoint)
,query.limit(1)
也无济于事。
我已经看到 iOS PFQueries 调用whereKey:nearGeoPoint:withinMiles:
它可能返回基于最近的 GeoPoints 排序。是否有类似这样工作的 JavaScript 等价物?