2013-10-17 152 views
1

我有一个带有很多标记的Openlayers3地图,我想更有效地处理它更多 。Openlayers 3性能标记

我看到有上的OpenLayers和我的最后一个版本的集群方法想 使用第三版本,同样的事情: http://openlayers.org/dev/examples/strategy-cluster.html

我一定要使用向量?

这里是我当前的代码:

$.getJSON("http://localhost/folder/address.json", function(data){ 

    for(var k in data) { 

     var companyCity = data[k].city; 
     var companyName = data[k].company; 
     var companyLocation = data[k].address; 
     var companyLat = data[k].lat; 
     var companyLng = data[k].lng; 
     var companyPosition = transform([companyLng,companyLat]); 

     var elt = $('<p title="'+ companyName +': '+ companyLocation +', '+ companyCity +'"></p>').css({ 

     "width": '5px', 
     "height": '5px', 
     "border-radius": '50%', 
     "background-color": '#E64411', 
     "opacity" : '.5' 

     }); 



     var marker = new ol.Overlay({ 
     map: map, 
     position: companyPosition, 
     element: elt 
     }); 


    } 
    }); 

有人已经做了呢?

回答

1

集群策略确实依赖于将标记添加到图层。有没有强有力的理由不这样做?如果您可以将address.json存储为geoJSON,那么使用图层要更“自动”。

如果没有强烈的理由不使用图层,您可以获取过滤器策略代码并将其自定义为在没有图层的情况下工作。看看OpenLayers.Strategy.Cluster on GitHub,看起来您只需手动将功能设置为您创建的功能阵列,然后在适当的时间调用cluster()。