如何使用 GeoQuery 按位置和特定值进行排序? (Android)
How can I use a GeoQuery to sort by both location and certain value? (Android)
这是 Firestore 的地理查询:https://github.com/imperiumlabs/GeoFirestore-Android
但它不允许进一步排序。
我想按最近和最著名的用户排序,我怎么能这样做呢?还有其他可能的库吗?
Geofire 已经在 Firestore 上做了一些看似不可能的事情:它对两个值(纬度和经度)执行范围查询。它通过创建一个 geohash 值来实现这一点,该值将纬度和经度组合成一个值,可用于 select 一系列彼此接近的文档。
要在另一个字段的范围内额外允许 select,您必须找到一种方法将该其他字段的值合并到 Geohash 值中。它本质上意味着您必须找到一种方法来表达名望的重要性(您的额外 属性)作为位置(距离)的函数,并基于此计算单个字段值。虽然这在技术上可能是可行的,但我怀疑任何人都做到了。
要了解位置过滤的工作原理(以及为什么添加额外的字段并不像看起来那么简单),请查看:
这是 Firestore 的地理查询:https://github.com/imperiumlabs/GeoFirestore-Android 但它不允许进一步排序。 我想按最近和最著名的用户排序,我怎么能这样做呢?还有其他可能的库吗?
Geofire 已经在 Firestore 上做了一些看似不可能的事情:它对两个值(纬度和经度)执行范围查询。它通过创建一个 geohash 值来实现这一点,该值将纬度和经度组合成一个值,可用于 select 一系列彼此接近的文档。
要在另一个字段的范围内额外允许 select,您必须找到一种方法将该其他字段的值合并到 Geohash 值中。它本质上意味着您必须找到一种方法来表达名望的重要性(您的额外 属性)作为位置(距离)的函数,并基于此计算单个字段值。虽然这在技术上可能是可行的,但我怀疑任何人都做到了。
要了解位置过滤的工作原理(以及为什么添加额外的字段并不像看起来那么简单),请查看: