是否有一种简单有效的方法来查询Firebase上的地理点?

问题描述 投票:0回答:1

我目前正在基于地理位置开发Flutter应用,我需要基于可变半径进行查询。

数据库中的每个文档都有一个名为“ position”的字段,其中包含geohas和geopoint,问题是我知道的唯一的库是geofire,但这并不是真正有效的方法,因为如果我在一定半径范围内进行查询(10公里),而我需要查询的范围从10公里到20公里,我不能:我只能以固定的20公里半径再次查询,这意味着我已经查询(并付款)前10公里没有任何东西,因为我已经有了它们。

firebase flutter google-cloud-firestore geofire
1个回答
0
投票

问题是我知道的唯一的库是geofire,

据我所知,目前是唯一的一个。

如果我查询特定半径(10公里)

肯定可以。

比我需要查询的范围从10公里到20公里我不能

您无法查询,但是您可以获得10km到20km的位置,我认为这是您想要的。由于您已经拥有10公里之内的位置,因此当您查询0公里至20公里之间的位置时,所获得的每个位置都是新的,这意味着该位置位于10公里至20公里之间。

这意味着我查询(并付款)前10公里之内没有任何东西,因为我已经拥有了它们。

不,您不为10公里以内的位置付款,因为这些位置来自缓存。因此,当您执行第二个查询(从10公里到20公里)时,您只需为该范围内的位置付费。

如果您想直接获取10km到20km的位置而没有0km到10km的位置,则会出现问题。在这种情况下,您将获得0km至20km的所有位置,然后执行另一个查询以获取0km至10km的所有位置。现在,要使所有位置都在10公里到20公里之间,只需删除从第二个查询中获得的所有位置即可。因此,在两种情况下,您都需要执行两个查询。

© www.soinside.com 2019 - 2024. All rights reserved.