firebase - 如何根据与当前 GeoPoint 的给定距离在 Firestore 中获取文档?
问题描述
我将GeoPoint存储为用户集合中的 firestore 中的位置。
使用我当前的 GeoPoint,我需要根据给定的距离获取我周围的文档/用户。举个例子,我需要让我周围的用户在 100 公里以内。
我在 stackoverflow 上搜索并意识到只有几个基于 GeoPoint 的 Firestore 问题。根据那些我构建了一个类似于下面的查询,
function getUsers(lower, upper) {
let db = admin.firestore();
var usersRef = db.collection('users')
.where('location', isGreaterThan, lower)
.where('location', isLessThan, upper);
var users = usersRef.get();
return users;
}
但我的问题是,
如何根据给定距离构造“下”和“上”地理点?
我在这里有点困惑,因为 GeoPoints 由经度和纬度组成,它们代表地图中的一个点。在地图上有两个点(下、上),是否可以得到一个半径为 100 公里的边界圆?
如果您有更好的解决方案来使用 Firestore 中的 GeoPoint 实现此目的,也请提出您的建议。我们不能传递我当前的 GeoPoint 和一个半径值,最终在那个圆圈周围提供文档吗?
解决方案
推荐阅读
- java - openapi-generator /maven 插件生成带有 «, » 字符的无效 java 代码
- amazon-redshift - Redshift:每天更改表的名称
- css - 如何在 WKWebView 中使用 URL 加载 CSS 文件
- tmux - 哦,我的 zsh 在 tmux 上显示奇怪的空白区域
- c - fgets 总是在文件的第一行读取 3 个垃圾字符
- vb.net - vb.net 中的进度条
- ios - 显示 tableView 时,如何将 tableView 单元格排列为不同的顺序?
- java - Docker 无法连接到主机,端口:smtp-mail.outlook.com,587
- html - 如何在 CSS 中悬停/单击时为宽度大小设置动画?
- bash - 可以在bash中按给定日期对进程进行排序吗?