Посмотрите, находится ли пользователь рядом с локацией?Swift 4 - PullRequest
0 голосов
/ 16 сентября 2018

Я хотел бы иметь возможность увидеть, находится ли пользователь в радиусе 5 км от другого местоположения в Swift 4.

Например:

User Location: 37.785834, -122.406417
Other Location: -117.564011, 48.302353

Спасибо всемкто помогает!

1 Ответ

0 голосов
/ 16 сентября 2018

Вы можете определить, когда пользователь входит в географический регион или покидает его автоматически, используя функцию Контроль региона , предоставляемую CLLocationManager .

Запуск мониторинга области круга вокругуказанная координата:

let center = CLLocationCoordinate2D(latitude: 37.785834, longitude: -122.406417)
// Make sure the app is authorized.
if CLLocationManager.authorizationStatus() == .authorizedAlways {
    // Make sure region monitoring is supported.
    if CLLocationManager.isMonitoringAvailable(for: CLCircularRegion.self) {
        // Register the region.
        let maxDistance = locationManager.maximumRegionMonitoringDistance
        let region = CLCircularRegion(center: center, 
             radius: 5000.0, identifier: "YourRegionID")
        region.notifyOnEntry = true
        region.notifyOnExit = false

        locationManager.startMonitoring(for: region)
    }
}

Обработка уведомления, связанного с регионом (введите уведомление в этом примере), путем реализации подходящего метода из CLLocationManagerDelegate :

func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
    if let region = region as? CLCircularRegion {
        // your logic to handle region-entered notification
    }
}
...