gpt4 book ai didi

javascript - 解析云查询以获取具有最近 GeoPoint 的对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:07 27 4
gpt4 key购买 nike

我在编写 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 等价物?

最佳答案

你会试试这个吗?如果所有距离都相同,则 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 - 解析云查询以获取具有最近 GeoPoint 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25877320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com