2016-06-27 3 views
-2

Я пытаюсь рисовать линию линии на карте между двумя location.it не показывает на дороге, это как кратчайшее расстояние между двумя метками места на дороге.Путь линии рисунка на iPhone

Я пробовал с привязкой по дороге. I MKDirectionsRequest, а также (дает ошибку, я искал то, что показывает, что это не работает в Индии.)

Любой другой способ нарисовать дорожную линию.

+0

Можете ли вы показать мне, что ты сделал? Я имею в виду код? –

+0

Вы используете Google MAP? –

+0

http://stackoverflow.com/questions/10598322/iphone-how-to-draw-line-between-two-points-on-mapkit –

ответ

0

Спутник, направление, навигационные услуги Apple не присутствуют в нескольких странах, поэтому вы не получаете соответствующих результатов.

Пожалуйста, проверьте эту ссылку от Apple: http://www.apple.com/in/ios/feature-availability/

Лучше использовать Google Maps в вашем приложении, чтобы получить координаты вашего местоположения.

https://developers.google.com/maps/documentation/ios-sdk/start эта ссылка будет полезна для вас

+1

Вопрос отмечен картами google. –

0

Для этого вы можете использовать API googleMAP.

- (void)drawRoute :(CLLocationCoordinate2D)myOrigin destination:(CLLocationCoordinate2D)myDestination 
{ 
     [self fetchPolylineWithOrigin:myOrigin destination:myDestination completionHandler:^(GMSPolyline *polyline1) 
     { 
     if(polyline1) 
      polyline1.map = mapView_; 
     }]; 
    } 


- (void)fetchPolylineWithOrigin:(CLLocationCoordinate2D)origin destination:(CLLocationCoordinate2D)destination completionHandler:(void (^)(GMSPolyline *))completionHandler 
{ 
NSString *originString = [NSString stringWithFormat:@"%f,%f", origin.latitude, origin.longitude]; 
NSString *destinationString = [NSString stringWithFormat:@"%f,%f", destination.latitude, destination.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) 
              { 
               dispatch_async(dispatch_get_main_queue(), ^{ 
                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 redColor]; 
                polyline.strokeWidth = 5.0; 
               } 

               if(completionHandler) 
                completionHandler(polyline); 
              }); 
              }]; 
[fetchDirectionsTask resume]; 
} 
Смежные вопросы