1

クラスターを含むマップを作成しており、その下にクラスターのリストを表示したいと考えています。

クラスターを取得するために、オブジェクトからそれらを取得しようとしました。しかし、期待どおりに機能しません。

    // Initialize clusterer
    markerCluster = new MarkerClusterer(map, markers, clusterOptions);

    // this logs an empty array
    var clusters = markerCluster.clusters_;
    console.log(clusters);

    // This logs array of clusters 
    setTimeout(function(){
        var clusters = markerCluster.clusters_;
        console.log(clusters);
    }, 500)

だから私は onload イベントまたはコールバック関数があるかどうかを把握しようとしています..

4

1 に答える 1

2

お使いのクラスタリングライブラリにもよりますが、基本的に MarkerClusterer クラスは OverlayView の拡張です。

OverlayView が実際に追加されると、クラスタリングが行われます (OverlayView.onAdd メソッド)。

最初に得られる空のログは、オーバーレイがまだ追加されていないことを意味します。私の知る限り、オーバーレイを追加するイベントはありません。

最善の解決策は、MarkerCluster クラスを拡張し、onAdd メソッドをオーバーロードし、イベントを送信してから、対応するリスナーにマーカーを追加することです。

于 2013-10-09T14:51:11.013 に答える