我对iO场景比较陌生,所以这可能是一个愚蠢的问题,但无论如何......
我一直在做一个项目,我想在地图上突出显示一条特定的路线。例如:公共汽车的行程总是一样的,所以我想突出公共汽车在到达最终目的地之前经过的街道。
事情是,我只能从一个点到另一个点获得指示,但它不遵循公交车的行程,所以它对我不起作用。
请帮助!!
答案 0 :(得分:1)
首先,如果您需要特定路线,则需要一些坐标。假设您有一些路线坐标作为NSDictionary
个对象,如下例所示
{
Lat = 53.3478;
Lon = -6.2597;
}
存储在名为NSArray
的{{1}}中,您可以执行以下操作:
routeLocations
如果您需要在叠加层上进行自定义,则可以执行以下操作 适用于iOS> = 7
CLLocationCoordinate2D routeCoord[routeLocations.count];
for (int i = 0; i < routeLocations.count; i++ )
{
id location =[routeLocations objectAtIndex:i];
routeCoord[i] = CLLocationCoordine2DMake([[location objectForKey:@"Lat"]floatValue], [[location objectForKey:@"Lon"]floatValue]);
}
// create your route Polyline
MKPolyline *poly = [MKPolyline polylineWithCoordinates:routeCoord count:routeLocations.count];
// first remove previously added overlays if any then add your newly created route polyline
[self.mapView addOverlay:poly];
否则使用弃用的方法
-(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolyline class]])
{
MKPolyline *route = overlay;
MKPolylineRenderer *routeRenderer = [[MKPolylineRenderer alloc]initWithPolyline:route];
routeRenderer.strokeColor = [UIColor blueColor];
return routeRenderer;
}
}