2014-09-13 4 views
-1

Я реализовал API Карт Google для iOS. Я успешно загрузил карту и сбросил на нее два булавки. Я также реализовал API Google Maps Directions, и я получил ответ Json. Я не знаю, как его декодировать и показывать маршруты на карте.Отображение направлений от JSON Информация

Вот код:

В direction.h

-(void)retrieveDirectionsFromOrigin:(CLLocationCoordinate2D)origin toDestination:(CLLocationCoordinate2D)destination 
{ 
    NSString *directionsURL=[NSString    stringWithFormat:@"http://maps.google.com/maps/api/directions/json? origin=%f,%f&destination=%f,%f&sensor=false",origin.latitude,origin.longitude,destination.longitude,destination.longitude]; 
    _directionsURL=[NSURL URLWithString:directionsURL]; 
    [self retrieveDirections:nil withDelegate:self]; 
} 

-(void)retrieveDirections:(SEL)selector withDelegate:(id)delegate{ 
dispatch_async(dispatch_get_main_queue(), ^{ 
    NSData *data = [NSData dataWithContentsOfURL:_directionsURL]; 
    [self fetchedData:data withDelegate:delegate]; 
}); 
} 

-(void)fetchedData:(NSData *)data withDelegate:(id)delegate{ 
NSError* error; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
NSLog(@"Directions %@",json); 
} 

В MapViewController.h

-(void)viewDidLoad 
{ 

// Creates a marker in the center of the map. 
GMSMarker *marker = [[GMSMarker alloc] init]; 
GMSMarker *marker2 = [[GMSMarker alloc]init]; 
marker.position = CLLocationCoordinate2DMake(21.422492, 39.826169); 
marker2.position = CLLocationCoordinate2DMake(21.413333, 39.893333); 
marker.map = mapView; 
marker2.map = mapView; 
directions=[[Directions alloc]init]; 
[directions retrieveDirectionsFromOrigin:marker.position toDestination:marker2.position]; 
[mapViewView setNeedsDisplay]; 
[mapView setNeedsDisplay]; 

} 

Пожалуйста, дайте мне знать, что делать дальше.

ответ

1

Когда API-интерфейс Directions возвращает результаты, он помещает их в массив маршрутов (JSON). Этот маршрут может состоять из одной или нескольких ножек в зависимости от того, указаны ли какие-либо путевые точки. Каждый маршрут в поле маршрутов может содержать следующие поля:

  • ноги [] содержит массив, который содержит информацию об отрезке маршрута
    , между двумя точками на заданном маршруте. Отдельная нога
    будет присутствовать для каждой указанной точки маршрута или пункта назначения. Каждая нога состоит из ряда этапов.

  • overview_polyline содержит массив закодированных точек, которые представляют приблизительный путь для результирующих направлений.

Ноги: Каждый элемент массива ног определяет один отрезок пути от начала координат до пункта назначения в вычисленном маршруте.

  • шаги [] содержит массив шагов, обозначающих информацию о каждом отдельном шаге этапа поездки.

  • start_location содержит координаты широты/долготы происхождения этой ноги.

  • end_location содержит координаты широты/долготы заданного предназначения этой ноги.

Шаги: Каждый элемент в массиве шагов определяет один шаг расчетных направлений. Шаг - это самая атомная единица маршрута направления, , содержащий один шаг, описывающий конкретную единую инструкцию по путешествию. Например. «Поверните налево на IV улице Св.

Следующего шаг: Теперь, когда вы превратили свой JSON в NSDictionary, используйте ключ выше, чтобы получить каждую ножку длиной/латы и применить объект GMSPolygon на карте, которая Dispaly пользовательского пути каждой ноги.

 Смежные вопросы

  • Нет связанных вопросов^_^