通过纬度和经度从特定半径获取用户[重复]

Posted

技术标签:

【中文标题】通过纬度和经度从特定半径获取用户[重复]【英文标题】:Get users from certain radius by latitude and longitude [duplicate] 【发布时间】:2021-05-26 19:28:48 【问题描述】:

我在 Firebase Firestore 中为每个用户的纬度和经度定位坐标。我只想通过用户在特定半径内的坐标来查询用户。比如50公里。如果我只知道每个用户的纬度和经度,如何做到这一点?

【问题讨论】:

请检查:***.com/a/66363250/2781088 如果我的回答对您有所帮助,我们将不胜感激投票或检查它是否正确。 【参考方案1】:
    let userLocation = CLLocation(latitude: 6.0, longitude: 6.0)
    
    let coordinate1 = CLLocation(latitude: 6.1, longitude: 6.1)
    let coordinate2 = CLLocation(latitude: 5.0, longitude: 3.0)
    let coordinate3 = CLLocation(latitude: 7.0, longitude: 3.0)
    
    let coordinatesArray = [coordinate1, coordinate2, coordinate3]
    
    for coordinate in coordinatesArray 
        if userLocation.distance(from: coordinate) < 50000 
            print("Inside 50 km")
        
    

注意distance(from:) 方法以米为单位,这就是为什么我要检查它是否在50000m(50km) 内。应该为坐标1执行打印语句,因为它在15.6 km之外。

【讨论】:

请注意,OP 希望所有用户都在某个范围内,也许您应该为此调整答案。 是的,我已经编辑了

以上是关于通过纬度和经度从特定半径获取用户[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用纬度和经度获取特定地址[重复]

MySQL计算纬度和经度半径[重复]

使用纬度和经度的40公里半径[重复]

使用经度和纬度选择半径内的对象[重复]

地理位置:通过距离获取纬度和经度[重复]

在PHP中获取用户机器的经度和纬度[重复]