簡體   English   中英

Google Maps 3 Redraw Polyline Flickering

[英]Google Maps 3 Redraw Polyline Flickering

我正在繪制具有相當多的lat / lng點(~1000)的折線。 我有兩個滑塊(開始和結束),允許用戶調整時間范圍,然后更新折線以顯示這兩次之間的數據。

我的更新算法是這樣的:

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);

現在奇怪的是,當我拖動結束滑塊時,線條會按預期重繪,但是當我拖動開始滑塊時,它會正確地重新繪制線條,除非在高縮放級別,線條的某些部分似乎略微移動(它不會這在放大時很近)。 我認為這可能與Google應用於Polyline的反別名算法有關,但是當我移動結束滑塊時它不會這樣做。

有誰知道導致這種閃爍的原因是什么?

我已經破解了一個似乎現在有效的解決方案。 我試圖保持點數一致,因為API似乎不喜歡我在前面添加點數。

假設我有一組1000點,我只想顯示200 - 900.如果我繪制點200的位置200次然后將其余數據繪制到點900,它會停止閃爍。 為了顯示10-330,我將繪制點10,10次然后將剩余的數據繪制到點330。

我猜這有點像谷歌內部存儲地圖線的方式,如果你添加到線的前面,它可能需要重新索引整個數組並從頭開始重新繪制線。

我現在不接受答案,因為有人想出更好的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM