【问题标题】:RMPath flickers and "vibrates" while scrolling RMMapView (MapBox SDK)滚动 RMMapView (MapBox SDK) 时 RMPath 闪烁和“振动”
【发布时间】:2012-07-26 10:08:12
【问题描述】:

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

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

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

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

附言在 iPhone3GS 和 iPhone4S 上测试,两者都出现同样的问题。

【问题讨论】:

  • 我无法回答您的具体问题,但 route-me 库的 Alpstein 分支也存在类似问题,这是 MapBox SDK 的基础。我建议您将您的问题发布到 route-me google 组(因为 MapBox SDK 开发人员正在阅读该列表),或者更好的是,在 MapBox SDK github 站点 (github.com/mapbox/mapbox-ios-sdk/issues) 上打开一个问题。跨度>

标签: ios route-me


【解决方案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;

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 调查成功了吗?
    猜你喜欢
    • 2021-10-12
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多