2015-05-12 72 views
1

我有一個帶Google地圖的Rails web應用程序,它顯示來自Mongoid數據庫的標記。根據當前視圖邊界加載地圖的對象

標記的數量真的很高,並且一次加載它們是非常耗費時間和資源的。因此,我根據地圖的當前視圖邊界加載對象,但存在一個問題:

當邊界更改(bounds_changed事件)時需要加載新對象,但我不想添加重複的標記。除了創建所有加載對象的索引,然後將每個加載的對象與該對象進行比較之外,我還沒有找到任何方法。但我認爲可以有一個更有效的方法。

https://github.com/shvelo/pathfinder https://github.com/shvelo/pathfinder/blob/master/app/assets/javascripts/client.js

回答

1

我找不到在你的混帳回購協議的bounds_changed事件,但你幾乎做是正確的,從我可以收集。例如:

var loaded = {"markerID1":true, "markerID2":true, ...}; 

if(!(marker in loaded)){ 
//Do stuff 
} 

截至目前沒有更好的方法。儘管ECMAScript 6即將推出新標準,並且它實現了一個真正的Set對象。

+0

'loaded [marker]'比'marker'中的標記稍快,所以我使用那個 –