3

私はかなり大きなlat/lngポイント(〜1000)のポリラインを描画しています。 2つのスライダ(開始点と終了点)があり、ユーザーは時間範囲を調整し、Polylineを更新してその2つの間のデータを表示できます。私は最後のスライダーをドラッグすると、予想通り、私はスタートスライダーをドラッグするとGoogle Maps 3ポリラインのちらつきの再描画

var mvcPath = new google.maps.MVCArray(); 

for (var i = 0; i < gpsData.length; i++) { 

    if (gpsData[i]['timestamp'] <= endDate && 
     gpsData[i]['timestamp'] >= startDate) { 
     mvcPath.push(gpsData[i]['location']); 
    } 
} 

this.path.setPath(mvcPath); 

今、奇妙なことは、ラインが、しかし、それは正しく行を再描画再描画されます。

私の更新アルゴリズムは次のようなものが行きます高いズームレベルを除いて、ラインの一部がわずかに動いているように見えます(ズームインしたときにはこれを行いません)。私はそれがポリラインに適用されるアンチエイリアスアルゴリズムとは関係があると思っていましたが、エンドスライダーを動かすとそれは行いません。

誰でもこのちらつきの原因を知っていますか?

答えて

0

私は今のところうまくいくと思われるソリューションをハッキングしました。私は、ポイントの数を一貫して維持しようとしました。なぜなら、APIがポイントをフロントに追加するのが好きではないように見えるからです。

私は1000点のセットを持っていて、私は200から900までしか見せたくないと言います。200点の位置を描き200点を残して残りの点を900点に描画すると、 。 10〜330を表示するには、ポイント10を描画して10回、残りのデータをポイント330に描画します。

これは、Googleがマップのラインを内部的に保存する方法と同じです。行の先頭に配列全体を再索引付けし、最初から行を再描画する必要があるかもしれません。

私は答えを受け入れません。誰かがより良い答えを出してくれます。

関連する問題