3

我正在使用带有离线地图的 MapBox SDK。我正在向 mapView 添加一个 RMPath 叠加层,一切都显示正常。

问题号 1: 在滚动地图时,RMPath 叠加层也会滚动,但有时它会在几分之一秒内以偏移量(刚刚出现的位置)绘制,之后它会到达正常位置,并且这会产生闪烁的感觉。为什么会发生这种情况,我该如何摆脱它?

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

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

ps 在 iPhone3GS 和 iPhone4S 上测试过,同样的问题。

4

2 回答 2

0

不推荐使用 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;
于 2012-10-10T10:03:51.353 回答
0

对于您的问题 n°2,我认为这可能与MapBox ios sdk 上的这个问题有关

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

于 2012-11-21T17:33:10.787 回答