Найти количество маршрутов между двумя местами

#objective-c #cocoa-touch #ios #google-maps #core-location

#задача-c #cocoa-touch #iOS #google-карты #ядро-местоположение

Вопрос:

Мне нужно выяснить количество маршрутов от источника до пункта назначения с помощью Google Maps API, а затем найти среди них кратчайший маршрут.

Я могу получить один маршрут, используя этот код

 -(NSArray*) calculateRoutesFrom:(CLLocationCoordinate2D) f to: (CLLocationCoordinate2D) t {
    NSString* saddr = [NSString stringWithFormat:@"%f,%f", f.latitude, f.longitude];
    NSString* daddr = [NSString stringWithFormat:@"%f,%f", t.latitude, t.longitude];

    NSString* apiUrlStr = [NSString stringWithFormat:@"http://maps.google.com/maps?output=dragdiramp;saddr=%@amp;daddr=%@", saddr, daddr];
    NSURL* apiUrl = [NSURL URLWithString:apiUrlStr];
    NSLog(@"api url: %@", apiUrl);
    NSString *apiResponse = [NSString stringWithContentsOfURL:apiUrl];
    NSString* encodedPoints = [apiResponse stringByMatching:@"points:\"([^\"]*)\"" capture:1L];

    return [self decodePolyLine:[encodedPoints mutableCopy]];
}
  

но я не могу получить несколько маршрутов.

Я новичок в использовании Google Maps API; Я следовал этому руководству.

Как я могу это сделать? Может кто-нибудь, пожалуйста, опубликовать какой-нибудь пример кода или учебное пособие?

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

1. если я могу найти ответ в Google, то я не размещаю вопросы на этом форуме, я не нашел его в Google, тогда только я размещаю вопрос на этом форуме. Я не понял, почему эти люди проголосовали против моего вопроса.

Ответ №1:

альтернативы (необязательно), если установлено значение true, указывает, что служба маршрутов может предоставить в ответе более одной альтернативы маршрута. Обратите внимание, что предоставление альтернативных маршрутов может увеличить время отклика от сервера.

Из API Google Directions

Вам нужно добавить в свой запрос альтернативные ссылки = true

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

1. Большое вам спасибо, Теренте лонут Александру, Но я нашел в нем какие-либо изменения. Где я могу получить несколько маршрутов. Как я могу их отобразить.

Ответ №2:

Для получения нескольких маршрутов вы должны использовать стандартный Google direction api. С помощью этого API вы можете получать различные маршруты в зависимости от выбранного вами в api режима передвижения, то есть вождения, ходьбы или езды на велосипеде (маршрут для езды на велосипеде доступен только в США) Например: http://maps.googleapis.com/maps/api/directions/xml?origin=srcLatitude,srcLongitudeamp;destination=destLatitude,destLongitudeamp; режим=вождениеидатчик=false
Здесь вы можете указать широту и долготу источника и пункта назначения и изменить значение параметра mode на вождение, ходьбу пешком или на велосипеде, чтобы получить несколько маршрутов.