xcode 如何在 MKMapView 上绘制我当前位置到所需位置之间的路线?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13489756/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to draw a route between my current location to desired location on MKMapView?
提问by Saurabh
I want to show a route between my current location and desired location. I am able to do this but when the source point and destination point so far then it will not show a route and gave the memory warning. Can you suggest any sample code or any way to do this?
我想显示我当前位置和所需位置之间的路线。我能够做到这一点,但是当源点和目标点到目前为止时,它不会显示路线并给出内存警告。你能建议任何示例代码或任何方法来做到这一点吗?
回答by Nimit Parekh
Following Code for the draw path between the current location to desire location
以下代码用于当前位置到所需位置之间的绘制路径
- (void)viewDidLoad {
[super viewDidLoad];
mapView = [[[MapView alloc] initWithFrame:
CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)] autorelease];
[self.view addSubview:mapView];
[self performSelector:@selector(LoadMaps) withObject:self afterDelay:1.0];
}
-(void)LoadMaps{
MapWithRoutesAppDelegate *app = (MapWithRoutesAppDelegate *)[[UIApplication sharedApplication]delegate];
CLLocation *location = app.userlocation;
// Configure the new event with information from the location
CLLocationCoordinate2D coordinate = [location coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"dLatitude : %@", latitude);
NSLog(@"dLongitude : %@",longitude);
Place* home = [[[Place alloc] init] autorelease];
home.name = @"Home";
home.description = @"Sweet home";
home.latitude = coordinate.latitude;
home.longitude = coordinate.longitude;
Place* office = [[[Place alloc] init] autorelease];
office.name = @"Office";
office.description = @"Bad office";
office.latitude = 23.329404;
office.longitude = 72.0039299;
[mapView showRouteFrom:home to:office];
NSLog(@"latitide:%.7f, longitude: %.7f ", coordinate.latitude, coordinate.longitude);
}
In Appdelegate Method contain
在 Appdelegate 方法中包含
#pragma mark- CLLocationManager delegate
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation{
MapWithRoutesAppDelegate *app = (MapWithRoutesAppDelegate*)[[UIApplication sharedApplication] delegate];
app.userlocation = newLocation;
NSLog(@"latitide:%.7f, longitude: %.7f ", app.userlocation.coordinate.latitude, app.userlocation.coordinate.longitude);
}
You can download the complete source code from here.
May this help lot.
可能这有很大帮助。

