标签:javascript parse-com cloud-code
我在编写Parse查询以获取具有对输入的GeoPoint的CLOSEST的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()查询返回具有中心点键中的CLOSEST GeoPoint的对象.
我尝试添加query.near(“centerPoint”,geoPoint)和query.limit(1)也无济于事.
我见过iOS PFQueries调用whereKey:nearGeoPoint:withinMiles:可以根据最近的GeoPoints返回排序.是否有像这样工作的JavaScript等价物?
解决方法:
你会试试吗?如果所有距离都相同,则Parse不会按您所需的精度排序.
// check Parse for infections around passed GeoPoint
Parse.Cloud.define("InfectionCheck_BETA", function(request, response) {
var geoPoint = request.params.geoPoint;
var query = new Parse.Query("InfectedArea");
query.near("centerPoint", geoPoint);
query.limit(10);
query.find({
success: function(results) {
var distances = [];
for (var i = 0; i < results.length; ++i){
distances.push(results[i].kilometersTo(geoPoint));
}
response.success(distances);
},
error: function(error) {
response.error("Error");
}
});
});
这导致十个最近距离.
聊天之后,似乎距离没有被分类的原因是Parse只能以几厘米的精度进行排序.用户看到的差异小于此.
标签:javascript,parse-com,cloud-code 来源: https://codeday.me/bug/20190528/1172784.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。