2013-06-24 4 views
1

Для моего приложения мне нужно получить доступ к координатам широты и долготы GPS, когда в устройстве нет подключения к Интернету. Для этого я использовал CLLocation. Но когда я выключить Wi-Fi и интернет в устройстве locationmanager показываетместоположение пользователя GPS-координаты, когда нет Интернета

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error 
{ 
    NSLog(@"didFailWithError %@", error); 

} 

ошибка я получил ошибка домена = kCLErrorDomain Code = 0 «Операция could't быть завершена»

После того, как я получаю правильное местоположение пользователя, как обновить приложение, когда пользователь переместится из текущего местоположения?

Я загрузил код этого урока http://www.vellios.com/2010/08/16/core-location-gps-tutorial/, но у меня такая же ошибка.

Любой, пожалуйста, дайте мне знать, как достичь GPS в автономном режиме, без Интернета. Благодаря

+0

Информации о GPS не нужна сети, убедитесь, что вы включили GPS для вашего приложения и иногда вы не можете получить GPS в комнате, попробуйте где-то дикий – adali

+0

Но я видел, что GPS в некоторых других приложениях его working.How включить GPS для моего приложения? – Cintu

+0

появилось предупреждение, которое запрашивает разрешение службы определения местоположения при первом использовании GPS-сервиса? или вы можете перейти на страницу настроек, чтобы проверить – adali

ответ

1

Основы Как Location Services определяет ваше местоположение компании Apple IOS использует алгоритм три этапа для того, чтобы определить ваше местоположение:

  1. Assisted глобальная система позиционирования (A-GPS)

  2. Crowdsourced Wi-Fi

  3. поиск Сотовая сеть

Эти три этапа используются в порядке убывания приоритета. Другими словами, iOS сначала пытается исправить ваше местоположение с помощью спутниковой связи GPS. Если он не может приобрести спутник, iOS перестает работать с Wi-Fi. Если вы не подключены к локальной сети Wi-Fi (WLAN), iOS использует данные ячейки памяти. Если все вышеперечисленное не выполнено, вы получите сообщение об ошибке, например, то, что вы видите на следующем рисунке.

Assisted GPS (A-GPS) сокращает время, которое обычно требуется, чтобы устройство-клиент GPS получало соединение со спутником. Например, мои утренние прогоны иногда откладываются на несколько минут, пока я жду, чтобы мои обучающие часы GPS Garmin соединились со спутником. Представьте себе, как было бы больно ждать несколько минут, чтобы ваш iPhone смог подключиться к GPS!

По сути, ваш iDevice кэширует периодические снимки спутниковых данных, чтобы ускорить время соединения. Очевидно, что вы будете наблюдать самые быстрые характеристики GPS, когда находитесь вне и от источников помех, таких как высокие здания или даже интерьер вашего автомобиля.

Crowdsourced Wi-Fi означает, что iDevice снова кэширует информацию не только о WLAN, к которой вы подключены в данный момент, но также и о любых других беспроводных локальных сетях в пределах вашего устройства. Сохраняя локальные идентификаторы набора услуг WLAN (SSID) и информацию о доступе к управлению доступом к среде (MAC), это позволяет службам определения местоположения iOS быстрее определять ваше местоположение посредством триангуляции.

Идея состоит в том, что если iOS обнаруживает, что вы подключены к домашней WLAN, и у нее уже есть глобальные координаты местоположения этого местоположения, службы определения местоположения могут отображать ваше местоположение без необходимости работать через GPS-соединение или триангуляцию Wi-Fi.

Поиск сотовой сети включает понятие «триангуляции» снова, на этот раз с iOS, используя кешированную информацию о соседних сотовых башнях.Кстати, триангуляция - это принцип геометрии, который определяет местоположение точки путем измерения ее углов от известных точек на обоих концах фиксированной базовой линии. Например, iOS может аппроксимировать ваше местоположение, измеряя расстояния между вашим iDevice и рядом сотовых вышек, которые находятся поблизости.

+0

это за теорию, но практически, какие изменения мне нужно, чтобы получить пользовательскую локацию? Я тестировал в свободном диком пространстве, но получил ошибку locationdidfail. – Cintu

+0

убедитесь, что у вас действительно есть действительное соединение WiFi и 3G, и перейдите в настройки и сбросьте свои сервисы местоположения. 3) сбросьте настройки сети. –

+0

В wifi работает нормально. Но когда я выключаю Wi-Fi, он не работает. – Cintu

0

Вы пробовали это?

[locationManager setDistanceFilter:kCLDistanceFilterNone]; 
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
+0

Работает ли он в автономном режиме? – AtWork

+0

он должен работать, gps не нужен никакой gsm или интернет. – AlexWien

+0

зависит от того, что вы имеете в виду в автономном режиме. в режиме полета он не работает. в пустыне без gsm это работает. в цивилизованных регионах трудно увидеть сателлит, пока у вас нет доступа к gprs. – AlexWien