gpt4 book ai didi

android - Firebase GeoFire,从我当前位置检索具有特定半径的帖子

转载 作者:搜寻专家 更新时间:2023-11-01 09:27:02 26 4
gpt4 key购买 nike

是否可以从我当前位置以特定半径获取存储在 firebase 数据库中的所有 GeoFire 帖子?

示例:如果进入我的数据库的节点,我有 10 个帖子,并且只有 3 个在我当前位置有效,半径为 0.5 公里,我将获得 3 个帖子。

这是我的数据库的结构:

{
"posts" : {
"-L9qTBD1WPgF0h2ungz-" : {
"desc" : "lorem ipsum",
"isActive" : true,
"idGeofire" : "ID1GEOFIRE"
},
"-L9qTDImKE4HHgxH5YDs" : {
"desc" : "lorem ipsum",
"isActive" : true,
"idGeofire" : "ID2GEOFIRE"
}
},
"geofire" : {
"ID1GEOFIRE" : {
"IdPost" : "L9qTBD1WPgF0h2ungz",
"l" : {
"0" : 46.632347,
"1" : 3.6354347
}
},
"ID2GEOFIRE" : {
"IdPost" : "L9qTDImKE4HHgxH5YDs",
"l" : {
"0" : 25.6314647,
"1" : 50.6369447
}
},
}
}

最佳答案

要获取某个位置的特定范围内的节点,您将 use a geoquery如文档所示:

// creates a new query around [37.7832, -122.4056] with a radius of 0.6 kilometers
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(37.7832, -122.4056), 0.6);

然后您将收到范围内节点的 onKey... 事件,例如对于每个帖子,您都会得到一个 onKeyEntered:

geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
System.out.println(String.format("Key %s entered the search area at [%f,%f]", key, location.latitude, location.longitude));
}

关于android - Firebase GeoFire,从我当前位置检索具有特定半径的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49796495/

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