ILocationProvider
Интерфейс источника геопозиции, который реализуется на платформе.
func setCallbacks(
locationCallback: LocationCallback?,
availabilityCallback: AvailabilityCallback?
)
Устанавливает функции обратного вызова на обновление текущей гепозиции и изменение доступности источника геопозиции. Повторный вызов данного метода перезаписывает предыдущие заданные функции обратного вызова. Если оба параметра равны nil
, то слежение за обновлением геопозиции нужно отключить.
locationCallback
LocationCallback?
Функция обратного вызова на обновление текущей гепозиции. Если провайдер доступен (вызов availabilityCallback
со значением true), то данный источник всегда доставляет достоверную геопозицию. Достоверная геопозиция - это геопозиция, в которой все поля имеют актуальное значение на момент ее отправки в этот канал (т.е. если точность геопозиции >= половине длины экватора Земли, то геопозиция является достоверной для любых от указанных в ней корректных координат). Если значение точности <= 0, то позиция считается недостоверной даже если isAvailable
== true. См. метод CLLocationManagerDelegate.locationManager(didUpdateLocations:)
.
availabilityCallback
AvailabilityCallback?
Функция обратного вызова на изменение доступности источника геопозиции. Если вызвана эта функция со значением true, то все последующие вызовы locationCallback
будут содержать достоверную (актуальную) геопозицию. Даже если слежение за изменением геопозиции недоступно, реализация ILocationProvider
может присылать новую геопозицию, но она будет считаться недостоверной. См. метод CLLocationManagerDelegate.locationManager(didFailWithError:)
.
func setDesiredAccuracy(_ accuracy: DesiredAccuracy)
Задает желаемую точность определения местоположения. Если устройство не может вернуть местоположение с желаемой точностью, то оно может вернуть местоположение с меньшей точностью. Если платфора не предоставляет аналогичный по функциональности метод, то данный метод должен иметь пустую реализацию.
См. метод CLLocationManager.desiredAccuracy
и \ .
accuracy