我有一個網站使用谷歌地圖工具庫的組合; markerWithLabel和markerClusterPlus。DocumentFragment和谷歌地圖
markerWithLabel操縱DOM將標籤放在地圖上。我的問題是,這是非常昂貴的時間和CPU明智的。
我想知道是否有緩存寫入DOM的方法,並一次沖洗它們,以減少重繪並希望提高性能。
我在下面添加了下面的代碼來展示我目前的工作情況。新標記是似乎爲添加到地圖上的每個項目重新繪製的部分。可能是最糟糕的做法,一次一個。
$.rMap.ready(function() {
per.mapRM = JSONH.unpack(per.mapRM);
var markers = [];
for (var i = 0, mlen = per.mapRM.length; i < mlen; ++i) {
bubble_color = colorArray[parseInt(per.mapRM[i].b, 10)];
var marker = new MarkerWithLabel({
position: new google.maps.LatLng(parseFloat(per.mapRM[i].lt),parseFloat(per.mapRM[i].ln)),
map: $.rMap.map,
draggable: false,
raiseOnDrag: false,
icon: {},
labelContent: '<div id="rental-marker-'+ per.mapRM[i].id+'" class="marker-for-rent">'+
'<span class="point_border"></span><span class="point point_'+ bubble_color +
'"></span><span class="bubble bubble_'+ bubble_color +
'">$'+ per.mapRM[i].r+'</span>'
});
markers.push(marker);
}
var markerClusterer = new MarkerClusterer($.rMap.map, markers, {
averageCenter: true,
ignoreHidden: true,
printable: true,
maxZoom: 14
});
});
我正在考慮使用documentFragments爲例,或者我在這裏吠叫錯誤的樹?
感謝
你或許應該向我們展示你是如何產生這些標記,如果我們應該幫助你使它更有效率? – adeneo
我想到的第一件事是繪製更少的標籤,使用縮放值來決定標籤是否必須寫入。 – Mangiucugna
MarkerClusterer的用途是在一個位置表示許多標籤。不幸的是,它需要將標記添加到地圖中才能計算羣集的成員。 – Greg