3

オフラインマップでMapBoxSDKを使用しています。mapViewにRMPathオーバーレイを追加していますが、すべて正常に表示されます。

問題番号 1: マップをスクロールしている間、RMPathオーバーレイもスクロールされますが、オフセット(ほんの少し前の場所)でほんの一瞬だけ描画され、その後は通常の場所に到達します。これはちらつきの感覚を作成します。なぜこれが発生し、どうすればそれを取り除くことができますか?

問題番号 2: マップをスクロールしている間、RMMarkerおよびRMPathオーバーレイは「振動」しますが、マップがスクロールされたときにオーバーレイが通常の位置に「追いつく」ように試みます。ほんの数ピクセルですが、ズームするとかなり見栄えが悪くなります。これはおそらく、マップが1ピクセル以上移動した場合にのみ、-draw()メソッドが呼び出されるために発生します。オーバーレイをスムーズにスクロールするにはどうすればよいですか?

私の検索はまったく何も起こらなかったので、どんな助けも歓迎します。

psはiPhone3GSとiPhone4Sでテストされましたが、どちらも同じ問題です。

4

2 に答える 2

0

あなたの問題n°2については、これはMapBox ios sdkのこの問題に関連している可能性があると思います

問題 n°1 については、同じ動作に気付きましたが、マップのスクロール/ズーム中に注釈が追加された場合のみです。マップが安定すると、注釈は正しい位置に移動します。それについてはまだ調査中です。

于 2012-11-21T17:33:10.787 に答える
0

RMPath は非推奨です。代わりに RMSshape を使用してみてください。また、注釈をマップに追加する前に、注釈の境界ボックスを設定することを忘れないでください (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 に答える