我正在使用 App Engine Search 将结果限制在定义的圈子内。
distance("points", geopoint(%f,%f)) < %d" % (latitude, longitude, radii)
对于 10、100 和 1,000 米的半径,我得到了正确的结果。但是对于说 400,000(即 400 公里)的半径,则返回定义圆之外的结果。
有谁知道这是这个平台的限制?我很难相信大圆没有被考虑在内。
我正在使用 App Engine Search 将结果限制在定义的圈子内。
distance("points", geopoint(%f,%f)) < %d" % (latitude, longitude, radii)
对于 10、100 和 1,000 米的半径,我得到了正确的结果。但是对于说 400,000(即 400 公里)的半径,则返回定义圆之外的结果。
有谁知道这是这个平台的限制?我很难相信大圆没有被考虑在内。
谷歌有一个错误;于 2013 年 2 月报道,至今仍存在。问题跟踪器将其优先级标记为中等。
一个建议是查看返回的每个结果并检查它是否正确。
如果您在 Google 平台上添加此更正步骤,那么您将为此功能支付两次费用 - 一次用于 Google 的编码执行以产生不正确的结果集,一次用于您的更正代码。
这是一个重要的解决方法,因为总结果的任何计数都可能非常不正确(例如,Google 返回 100 个结果,但实际数字为零)。
如果您出于性能原因必须对结果进行分页,那么此错误会杀死该方法,因为一旦您过滤掉了无效结果,每个页面集可能不包含任何有效结果。
这是答案还是我和其他人错过了一些重要的细节?