无法使用Google Map SDK iOS绘制GMSPolyline

时间:2018-06-10 12:31:01

标签: ios objective-c google-maps-sdk-ios

我使用下面的代码Json"路由"获取3结果但不绘制任何结果 无法理解折线不在地图上绘制的方式,谷歌服务工作正常,并获取所有位置详细信息的结果但相同的问题没有在地图上显示任何东西仍然空地图只显示我的当前位置。检查我的任何一个代码并告诉我我的问题

 NSString *originString = [NSString stringWithFormat:@"%f,%f", origin.coordinate.latitude, origin.coordinate.longitude];
NSString *destinationString = [NSString stringWithFormat:@"%f,%f", destination.coordinate.latitude, destination.coordinate.longitude];
NSString *directionsAPI = @"https://maps.googleapis.com/maps/api/directions/json?";
NSString *directionsUrlString = [NSString stringWithFormat:@"%@&origin=%@&destination=%@&mode=driving", directionsAPI, originString, destinationString];
NSURL *directionsUrl = [NSURL URLWithString:directionsUrlString];


NSURLSessionDataTask *fetchDirectionsTask = [[NSURLSession sharedSession] dataTaskWithURL:directionsUrl completionHandler:
                                             ^(NSData *data, NSURLResponse *response, NSError *error)
                                             {
                                                 NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
                                                 if(error)
                                                 {
                                                     if(completionHandler)
                                                     completionHandler(nil);
                                                     return;
                                                 }

                                                 NSArray *routesArray = [json objectForKey:@"routes"];

                                                 GMSPolyline *polyline = nil;
                                                 if ([routesArray count] > 0)
                                                 {
                                                     NSDictionary *routeDict = [routesArray objectAtIndex:0];
                                                     NSDictionary *routeOverviewPolyline = [routeDict objectForKey:@"overview_polyline"];
                                                     NSString *points = [routeOverviewPolyline objectForKey:@"points"];
                                                     GMSPath *path = [GMSPath pathFromEncodedPath:points];
                                                     polyline = [GMSPolyline polylineWithPath:path];
                                                     polyline.strokeColor = [UIColor blueColor];


                                                     if(polyline)
                                                     polyline.map = self.mapView;

                                                 }

                                                 // run completionHandler on main thread
                                                 dispatch_sync(dispatch_get_main_queue(), ^{
                                                     if(completionHandler)
                                                     completionHandler(polyline);
                                                 });
                                             }];
[fetchDirectionsTask resume];

0 个答案:

没有答案