我正在使用MapKit显示两个位置之间的方向,并寻找一种类似于Apple地图应用程序中路线注释的方法,其中每条路线都显示旅行时间(如下图所示)。我已经正确地绘制了方向,问题是如何计算沿路线的一对坐标。换句话说,要放置注释的位置。
我考虑过某种方式使用MKDirection(其中包含完整的逐步说明),但我不确定如何生成某些位于路径中间的坐标对。
我在MapKit文档中没有找到任何这方面的支持。有什么想法吗?
这是我生成和显示路线的方法。
我考虑过某种方式使用MKDirection(其中包含完整的逐步说明),但我不确定如何生成某些位于路径中间的坐标对。
我在MapKit文档中没有找到任何这方面的支持。有什么想法吗?
这是我生成和显示路线的方法。
- (void)generateRoute {
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
request.source = [MKMapItem mapItemForCurrentLocation];
request.destination = self.destinationMapItem;
MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
[directions calculateDirectionsWithCompletionHandler:
^(MKDirectionsResponse *response, NSError *error) {
if (error) {
// Handle Error
} else {
[self showRoute:response];
}
}];
}
- (void)showRoute:(MKDirectionsResponse *)response {
[self.mapView removeOverlays:self.mapView.overlays];
for (MKRoute *route in response.routes)
{
[self.mapView addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
}
[self fitRegionToRoute];
}
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay
{
MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
renderer.strokeColor = [UIColor blueColor];
renderer.alpha = 0.7;
renderer.lineWidth = 4.0;
return renderer;
}