1

多くのマーカーを含む Openlayers3 マップがあり、それをより効率的に処理したいと考えています。

Openlayers の最後のバージョンにクラスター メソッドがあることを確認しました。3 番目のバージョンでも同じものを使用したいと思います: 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
       });


    }
  });

誰かがすでにそれをやっていますか?

4

3 に答える 3

1

この投稿が古いことは知っていますが、現在、クラスタリングの例があります。

于 2014-09-08T09:22:45.327 に答える
1

クラスター戦略は、マーカーをレイヤーに追加することに依存しています。これをしない強い理由はありますか?address.json を geoJSON として保存できた場合、レイヤーを使用する方がはるかに「自動」です。

レイヤーを使用しない強い理由がある場合は、フィルター戦略コードを取得して、レイヤーなしで機能するようにカスタマイズできます。GitHub の OpenLayers.Strategy.Cluster を見ると、作成したフィーチャーの配列にフィーチャーを手動で設定し、適切なタイミングで cluster() を呼び出すだけでよいようです。

于 2013-10-17T19:09:57.080 に答える