CLGeocoder *geo = [[CLGeocoder alloc] init];
[geo geocodeAddressString:self.destinationField.text completionHandler:^(NSArray *placemarks, NSError *error) {
if (placemarks == 0 || error) {
NSLog(@"地理编码失败");
return ;
}
//1.创建一个线路请求
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
CLPlacemark *clp = [placemarks firstObject];
MKPlacemark *mkp = [[MKPlacemark alloc] initWithPlacemark:clp];
MKMapItem *destinationItem = [[MKMapItem alloc] initWithPlacemark:mkp];
//2.设置源点和目的地点
MKMapItem *currentItem = [MKMapItem mapItemForCurrentLocation];
request.source = currentItem;
request.destination = destinationItem;
//3.创建一个线路管理器
MKDirections *direction = [[MKDirections alloc] initWithRequest:request];
//4.算路
[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
if (response.routes.count == 0) {
NSLog(@"没有请求到路");
return ;
}
for (MKRoute *route in response.routes) {
NSLog(@"%@",route.name);
//获取能画在地图上的线段
MKPolyline *line = route.polyline;
//将线段添加在地图上
[self.mapView addOverlay:line];
}
}];
}];
[geo geocodeAddressString:self.destinationField.text completionHandler:^(NSArray *placemarks, NSError *error) {
if (placemarks == 0 || error) {
NSLog(@"地理编码失败");
return ;
}
//1.创建一个线路请求
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
CLPlacemark *clp = [placemarks firstObject];
MKPlacemark *mkp = [[MKPlacemark alloc] initWithPlacemark:clp];
MKMapItem *destinationItem = [[MKMapItem alloc] initWithPlacemark:mkp];
//2.设置源点和目的地点
MKMapItem *currentItem = [MKMapItem mapItemForCurrentLocation];
request.source = currentItem;
request.destination = destinationItem;
//3.创建一个线路管理器
MKDirections *direction = [[MKDirections alloc] initWithRequest:request];
//4.算路
[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
if (response.routes.count == 0) {
NSLog(@"没有请求到路");
return ;
}
for (MKRoute *route in response.routes) {
NSLog(@"%@",route.name);
//获取能画在地图上的线段
MKPolyline *line = route.polyline;
//将线段添加在地图上
[self.mapView addOverlay:line];
}
}];
}];