2014-02-21 125 views
1

我使用this教程来制作示例应用程序。它使用填充了包含位置的JSon文件的表格视图。 在详细视图中,它使用一个Map并为在表列表视图中选定的位置放置一个针。MKdirections在两个给定点之间绘制路线

我的问题是如何绘制当前用户位置作为起点和“位置”位置之间的路线作为目的地?

我现在在我的地图上有2个引脚:1)当前位置和2)目的地,但我不知道如何将它们与路线连接起来。用这两个参数打开默认地图应用程序不是一个选项。

在此先感谢您的每一个答案。

回答

9

使用下面的代码:

 MKPlacemark *source = [[MKPlacemark alloc]initWithCoordinate:CLLocationCoordinate2DMake(sourceLatitude, sourceLongitude) addressDictionary:[NSDictionary dictionaryWithObjectsAndKeys:@"",@"", nil] ]; 
    MKMapItem *srcMapItem = [[MKMapItem alloc]initWithPlacemark:source]; 
    [srcMapItem setName:@""]; 

    MKPlacemark *destination = [[MKPlacemark alloc]initWithCoordinate:CLLocationCoordinate2DMake(destinationLatitude, destinationLongitude) addressDictionary:[NSDictionary dictionaryWithObjectsAndKeys:@"",@"", nil] ]; 

    MKMapItem *distMapItem = [[MKMapItem alloc]initWithPlacemark:destination]; 
    [distMapItem setName:@""]; 

    MKDirectionsRequest *request = [[MKDirectionsRequest alloc]init]; 
    [request setSource:srcMapItem]; 
    [request setDestination:distMapItem]; 
    [request setTransportType:MKDirectionsTransportTypeWalking]; 

    MKDirections *direction = [[MKDirections alloc]initWithRequest:request]; 

    [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) { 

     NSLog(@"response = %@",response); 
     NSArray *arrRoutes = [response routes]; 
     [arrRoutes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 

      MKRoute *rout = obj; 

      MKPolyline *line = [rout polyline]; 
      [self.mkMapView addOverlay:line]; 
      NSLog(@"Rout Name : %@",rout.name); 
      NSLog(@"Total Distance (in Meters) :%f",rout.distance); 

      NSArray *steps = [rout steps]; 

      NSLog(@"Total Steps : %d",[steps count]); 

      [steps enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
       NSLog(@"Rout Instruction : %@",[obj instructions]); 
       NSLog(@"Rout Distance : %f",[obj distance]); 
      }]; 
     }]; 
    }]; 

欲了解更多信息,您可以检查apple's documentation

+0

谢谢,完美的作品! – Lito

+0

@ SujithPt ..我上面试过..Response越来越(null)..!任何想法为什么它变得(空)..! – Vidhyanand

+0

是的,可以在这里使用一点帮助 – Jargen89

相关问题