Arhn - архитектура программирования

MKDirectionsResponse всегда возвращает nil

Я прошу прощения, если этот вопрос повторяется, но мне было трудно отобразить маршрут между двумя местами с помощью MKDirectionsRequest.

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
    request.source = [MKMapItem mapItemForCurrentLocation];
    request.transportType = MKDirectionsTransportTypeAny;
    request.destination = _dstItem;
    request.requestsAlternateRoutes = YES;


    MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
   // __block typeof(self) weakSelf = self;
    [directions calculateDirectionsWithCompletionHandler:
     ^(MKDirectionsResponse *response, NSError *error) {

         //stop loading animation here

         if (error) {
             NSLog(@"Error is %@",error);
         } else {
             //do something about the response, like draw it on map
             MKRoute *route = [response.routes firstObject];
             [self.mapView addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
         }
     }];

MKDirectionsResponse всегда возвращает nil с описанием ошибки

Error Domain=MKErrorDomain Code=5 "Directions Not Available" 
UserInfo=0x1700f1c80 {NSLocalizedFailureReason=A route to the nearest road cannot be determined., 
MKErrorGEOError=-403, MKDirectionsErrorCode=6, NSLocalizedDescription=Directions Not Available}

Ответы:


1

MKDirectionsRequest — правильный API для поиска маршрута между двумя точками. Кажется, Apple еще не добавила функцию маршрута для Индии.

06.10.2015

2
Error Domain=MKErrorDomain Code=5 "Directions Not Available"

Скорее всего, вы получите эту ошибку, если местоположение не принадлежит ни к одной из стран в этом списке: http://www.apple.com/ios/feature-availability/#maps-directions

В симуляторе iOS вы можете легко настроить свое текущее местоположение. Два способа сделать это:

  • Симулятор iOS -> вкладка «Отладка» -> Местоположение -> {Выбрать}
  • Xcode -> вкладка «Отладка» -> Имитация местоположения -> {Выбрать}
13.10.2014

3

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

09.10.2014

4

Я получал ту же ошибку. Я до сих пор не знаю лучшего решения. Но я создал одну кнопку на карте с обновлением и вызвал метод, который я вызывал из viewDidLoad(), как я понял, мой метод сразу возвращается с ошибкой, даже не вычислив адрес из viewDidLoad(). Я предполагаю, что viewDidLoad() должен завершиться в определенное заранее определенное время.

So,

<hr/> `-(IBAction)refreshRoute:(id)sender {
         [self routeCalculate];
    }`
<hr/>

вместо

<hr/>

    -(void)viewDidLoad {
    [super viewDidLoad];

    _manager = [[CLLocationManager alloc]init];
    [_manager requestWhenInUseAuthorization];
    [_manager requestAlwaysAuthorization];

    _manager.desiredAccuracy = kCLLocationAccuracyBest;
    _manager.distanceFilter =kCLDistanceFilterNone;

    [_manager requestWhenInUseAuthorization];
    [_manager requestAlwaysAuthorization];
    [_manager startUpdatingLocation];

    [_manager delegate];
    self.pinMap.delegate = self;
    //   [self routeCalculate]; ***** This Call ****
    }

<hr/>
22.11.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..