CLFloor возвращает ноль в iOS 8

#ios #swift #core-location #ios8

#iOS #swift #расположение ядра #ios8

Вопрос:

Итак, я пытаюсь получить CLFloor в основном местоположении, чтобы предоставить мне данные вместо того, чтобы возвращать ноль в Swift, но мне это не удалось. Я попробовал свой собственный код и следующий из NSHipster:

 import CoreLocation

class LocationManagerDelegate: NSObject, CLLocationManagerDelegate {
    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: AnyObject[]!) {
        let location: CLLocation? = locations[0] as? CLLocation
        if let floor: CLFloor? = location?.floor {
            println("Current Floor: (floor?.level)")
        }
    }
}

let manager = CLLocationManager()
manager.delegate = LocationManagerDelegate()
manager.startUpdatingLocation()
  

Кто-нибудь знает, как заставить это работать на устройстве или в симуляторе, я уверен, что ответ принесет пользу многим людям. Если кто-нибудь знает какие-либо хорошие ресурсы по этому или CLVisit, это также было бы полезно.

Ответ №1:

Насколько я понимаю, что было сказано на сессии WWDC 708 — Принимая основное местоположение в помещении, вам необходимо вручную зарегистрироваться и настроить конкретное место на новой странице Apple Maps Connect, чтобы получить информацию о этаже в iOS.

Таким образом, кажется, что информация о этаже не предоставляется автоматически (например, на основе информации о высоте из GPS) для произвольного места.

Ответ №2:

на основе этих 2 ссылок с веб-сайта Apple

Ссылка на CLFloor

Ссылка на класс CLLoaction

Обсуждение Если информация о этаже недоступна для текущего местоположения, значение этого свойства равно нулю.

Я не эксперт в swift, но я думаю, что возвращает ноль, возможно, означает, что в этом месте нет информации о этаже.

Комментарии:

1. Это имеет смысл. Нужно ли устанавливать информацию о этаже через какой-либо другой источник?

2. Я предполагаю, что это автоматически зависит от местоположения GPS. и, возможно, высота

Ответ №3:

Я не думаю, что iOS волшебным образом сообщит вам уровень пола, насколько я понимаю https://developer.apple.com/videos/wwdc/2014/?id=708 . Вам нужно как-то получить это число другим способом. Например. вы можете захватить некоторый сигнал iBeacon и из него загрузить номер уровня этажа или проведите пальцем по экрану, чтобы найти правильную карту этажа, на которой вы находитесь?