我已经为iOS实施了Google Maps API。我已成功加载地图并在其上放下两个引脚。我还实施了Google Maps Directions API,并获得了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];
}
请让我知道接下来该做什么。
答案 0 :(得分:1)
当您的Directions API返回结果时,它会将它们放在(JSON)路由数组中。该路线可能包含一条或多条腿,具体取决于是否指定了任何航路点。路线字段中的每条路线可能包含以下字段:
legs []包含保存有关一条腿的信息的数组
路线,在给定路线内的两个位置之间。单独的腿
将出现在指定的每个航点或目的地。每条腿
由一系列步骤组成。
overview_polyline包含表示的编码点数组 结果路线的近似路径。
<强>腿:强> leg数组中的每个元素指定在计算路线中从起点到目的地的单程旅程。
steps []包含一系列步骤,表示每个步骤的信息 旅途中分开的一步。
start_location包含的纬度/经度坐标 这条腿的起源。
end_location包含给定的纬度/经度坐标 这条腿的目的地。
<强>步骤:强> 步骤数组中的每个元素定义计算方向的单个步骤。步骤是方向路线的最原子单位, 包含描述旅程中特定单一指令的单一步骤。例如。 &#34;在W. 4th St。&#34;左转。
下一步: 现在你已经将你的json转换为NSDictionary,使用上面的关键字来获得每条腿的长/纬,并在地图上应用GMSPolygon对象,该对象显示每条腿的自定义路径。