DocumentFragment和Google Maps

格雷格

我有一个结合使用Google Maps实用程序库的网站;markerWithLabel和markerClusterPlus。

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,还是在这里树错了树?

谢谢

262

在创建MarkerWithLabel对象时,是否尝试过删除参数“ map:$ .rMap.map”?

我认为markerClusterer应该可以解决这个问题,并且看起来您在要求地图渲染所有地图(在markerClusterer简化工作之前)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章