滚动RMMapView(MapBox SDK)时RMPath闪烁并“振动”

时间:2012-07-26 10:08:12

标签: ios route-me

我正在使用带有离线地图的MapBox SDK。我正在向mapView添加一个RMPath覆盖,所有内容都显示正常。

问题没有。 1:  在滚动地图时,RMPath叠加层也会滚动,但有时它会以一个偏移(刚刚刚刚出现的位置)绘制,只需几分之一秒,之后它会到达正常位置,这会创建一种闪烁的感觉。为什么会这样,我怎么能摆脱它?

问题没有。 2:  在滚动地图时,RMMarker和RMPath叠加层“振动”,就像覆盖图试图在滚动地图时“赶上”它的正常位置。它只是几个像素,但在缩放时它看起来很糟糕。这种情况很可能发生,因为只有当地图移动的位置超过一个像素时才会调用-draw()方法。如何使叠加滚动更平滑?

我的搜索完全没有任何结果,所以欢迎任何帮助。

P.S。在iPhone3GS和iPhone4S上进行了测试,两者都存在同样的问题。

2 个答案:

答案 0 :(得分:1)

不推荐使用RMPath,请尝试使用RMShape。 另外,在将注释添加到地图之前,不要忘记设置注释的边界框(setBoundingBoxFromLocations可能很有用)。

示例:

pathAnnotation = [[RMAnnotation alloc]initWithMapView:mapView    coordinate:CLLocationCoordinate2DMake(long,lat) andTitle:@"path"];
[pathAnnotation setBoundingBoxFromLocations:pathLocations];

然后在你的layerForAnnotation()中:

RMShape *path = [[RMShape alloc] initWithView:mapView] ;
[path setLineColor:[UIColor colorWithRed:0.2 green:0.7 blue:1 alpha:0.7]];
[path setLineWidth:4];

// Create real coordinates from data
for(int idx = 0; idx < pathPoints.count; idx++)
{

    CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(pathPoints[idx].latitude,pathPoints[idx].longitude);

    // First point
    if( idx == 0){
        [path moveToCoordinate:coord];
    }else{
        [path addLineToCoordinate:coord];
    }
}
return path;

答案 1 :(得分:0)

对于你的问题n°2,我认为这可能与this issue on MapBox ios sdk

相关

对于问题n°1,我注意到了相同的行为,但只有在地图滚动/缩放时添加了注释。地图稳定后,注释会转到正确的位置。我还在调查。