如何获得基于地图上某些LatLng按距离排序的最近驾驶员

时间:2019-02-12 20:04:48

标签: firebase spring-boot geolocation geofirestore

我正在使用spring-boot框架开发服务器应用程序。我的系统具有以下应用程序: -客户应用 -分支应用 -驱动程序应用

客户可以从特定分支下订单,该分支在数据库中保存了某个LatLng。

但是。驱动程序直接在firebase-realtime-database上更新其位置。

当客户从特定分支机构下订单时,我会检索分支机构的位置,并从firebase数据库中调用所有驱动程序。

我的问题是,假设我们在实时数据库上有20多个驱动程序。我想使用GeoFire库从分支中检索按照最近的驱动程序排序的前10个最近的驱动程序。

我该怎么办?

请在下面查看我的代码:

# Starting stuff
log("---Logs from the " + time.strftime('%d/%m/%Y %H:%M:%S') + "(Computer 
time)---")

# Choose language
while True:
    try:
        print("\nPlease choose your language.")
        print("Bitte wähle deine Sprache.")
        print("Deutsch(1)")
        print("English(2)")
        language = input("Eingabe/Input:")
        int(language)

        if int(language) == 1 or int(language) == 2:
            break
        else:
             print("\nPlease put the number of your language in.")
             print("Bitte gib die Nummer deiner Sprache ein.")

    except ValueError:
        print("\nPlease put the number of your language in.")
        print("Bitte gib die Nummer deiner Sprache ein.")

# Trys to interger 'number' number.
# Returns 'True' when done without exception
# Returns 'False' when done with exception and prints 'errormessage'
def inter(number=0, errormessage=lam("Etwas lief schief. \nBitte gib den 
    Devs bescheid. Error Code inter/1", "Something went wrong. \nPlease 
    report 
    this messages to the devs. Error Code: inter/1")):
    try:
        int(number)
        return True
    except ValueError:
        print(errormessage)
        return False

# Returns a message in the right language
# If 'general' is not '' it will only print general
def lam(deutsch='', english='', general=''):
    if general != '':
        return general
    elif int(language) == 1:
        return deutsch
    elif int(language) == 2:
        return english
    else:
        log("[ERROR] Could not define language.")
        lan("Etwas lief schief. \nBitte gib den Devs bescheid. Error Code 
           lan/1", "Something went wrong. \nPlease report this messages to 
           the devs. 
           Error Code: 1an/1")

0 个答案:

没有答案