使地图痕迹轨迹顺畅

时间:2013-12-17 21:58:02

标签: ios objective-c core-graphics mapkit

我有一张根据用户位置和动作绘制路径的地图。它很好,因为它将每个段连接在一起,所以我可以根据它们的速度应用颜色。我想添加每个线段连接时(约10米)线条看起来更平滑的地方,特别是在转弯时。下面是我的代码,我不能为我的生活弄清楚如何在不影响准确性的情况下添加曲线。我还在屏幕上显示了我的屏幕。我没有最终产品的屏幕,但您可以看到它连接的位置并对曲线或平滑线进行成像。

for (int i=0;i<crumbs.pointCount;i++){
            CGMutablePathRef path = CGPathCreateMutable();

            CGPoint point = [self pointForMapPoint:crumbs.points[i]];
            if (i==0){
                CGPathMoveToPoint(path, nil, point.x, point.y);

            } else {
                CGPoint prevPoint = [self pointForMapPoint:crumbs.points[i-1]];
                CGPathMoveToPoint(path, nil, prevPoint.x, prevPoint.y);
                CGPathAddLineToPoint(path, nil, point.x, point.y);
                CGFloat lineWidth = MKRoadWidthAtZoomScale(zoomScale);
                CGContextAddPath(context, path);

                CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:57 / 255 green:172 / 255 blue:255 / 255 alpha:1].CGColor);

                CGContextSetLineJoin(context, kCGLineJoinMiter);
                CGContextSetLineCap(context, kCGLineCapRound);

                CGContextSetLineWidth(context, lineWidth);
                CGContextStrokePath(context);
                CGPathRelease(path);
            }

screen shot

0 个答案:

没有答案