Я использую API-интерфейс iOS 7 MapKit для создания 3D-движений камеры на карте, которая отображает путь, созданный MKDirectionsRequest. Путь оказывает MKOverlayRenderer следующим образом:MKPolylineRenderer создает зубчатые, неравные пути
-(void)showRoute:(MKDirectionsResponse *)response
{
for (MKRoute *route in response.routes)
{
[self.map
addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
}
}
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
MKPolylineRenderer *renderer =
[[MKPolylineRenderer alloc] initWithOverlay:overlay];
UIColor *mapOverlayColor = [UIColor colorWithRed:((float)22/255.0f) green:((float)126/255.0f) blue:((float)251/255.0f) alpha:0.8];
renderer.strokeColor = mapOverlayColor;
renderer.lineWidth = 13.0;
return renderer;
}
Это хорошо работает для одного вопроса, за исключением. Когда я увеличить или панорамирование по пути с MKMapCameras (и без них, если я просто сделать так, как пользователь), путь неровный, как показано на скриншоте:
Я проверил, чтобы увидеть, если переключение к MKOverlayLevelAboveLabels имеет значение, но, к сожалению, результат был таким же.
Есть ли у кого-нибудь предложения относительно того, как улучшить рендеринг? Переключение на геодезический путь имеет значение, и если да, то как мне это реализовать?
Переключение на MKGeodesicPolyline не отличается но он создается так же, как MKPolyline, за исключением того, что вы вызываете polylineWithXXX на MKGeodesicPolyline, однако рендерингом по-прежнему остается MKPolylineRenderer. – Anna