我的 (iOS7) 应用程序中有一个 mapView,您可以在其中通过按按钮获取从当前位置到固定目的地的路线。该应用程序在源和目标之间显示一条折线。问题是,我如何缩放地图以显示整条线?
- (IBAction)handleRoutePressed:(id)sender {
self.routeButton.enabled = NO;
self.routeDetailsButton.enabled = NO;
// Make a directions request
MKDirectionsRequest *directionsRequest = [MKDirectionsRequest new];
// Start at our current location
MKMapItem *source = [MKMapItem mapItemForCurrentLocation];
[directionsRequest setSource:source];
// Make the destination
CLLocationCoordinate2D destinationCoords = CLLocationCoordinate2DMake(57.0496683, 9.9220121);
MKPlacemark *destinationPlacemark = [[MKPlacemark alloc] initWithCoordinate:destinationCoords addressDictionary:nil];
MKMapItem *destination = [[MKMapItem alloc] initWithPlacemark:destinationPlacemark];
[directionsRequest setDestination:destination];
MKDirections *directions = [[MKDirections alloc] initWithRequest:directionsRequest];
[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
// We're done
//self.activityIndicator.hidden = YES;
//[self.activityIndicator stopAnimating];
self.routeButton.enabled = YES;
// Now handle the result
if (error) {
NSLog(@"There was an error getting your directions");
return;
}
// So there wasn't an error - let's plot those routes
self.routeDetailsButton.enabled = YES;
//self.routeDetailsButton.hidden = NO;
_currentRoute = [response.routes firstObject];
[self plotRouteOnMap:_currentRoute];
}];
}
我试过了
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(destinationCoords, 150*METERS_PER_MILE, 150*METERS_PER_MILE); //#define METERS_PER_MILE 1609.344
[_mapView setRegion:viewRegion animated:YES];
但自然而然,这每次都给了我一个固定的观点。