0

MarkerClusterer を実装する前に、最初に次のようにマーカー配列をロードすることで、特定のマーカーのクリック イベントをトリガーすることができました (そのマーカーに固有のパネルが表示されます)。

markers[marker.id] = marker;

(ここで、marker.id は、JSON からマーカーを描画するときに設定されるプロパティであり、データベースのユーザー レコードに対応します)

次に呼び出します:

google.maps.event.trigger(markers[id], 'click');

(「id」は、マーカーをクリックしたいユーザーのIDです)

MarkerClusterer を使用したいのですが、上記で使用した配列の読み込み方法を使用してクラスター化されません。すべてのユーザーのマーカーを描画しないため、マーカー配列に「ギャップ」があるためだと思います。

...MarkerClusterer は、次のようにマーカー配列をロードすると機能します。

markers.push(marker);

これにより、MarkerClusterer が読み取れるギャップのない連続配列が得られると思いますが、配列内のインデックスによって正しいマーカーのクリックをトリガーできません。

したがって、marker.idに基づいて、連続マーカー配列内の.indexOfマーカーを見つける方法が必要なようです...

どんな助けでも大歓迎です。

4

1 に答える 1

1

少なくとも 2 つのオプションがあります。

  1. マーカーの「連続した」配列を反復処理して、正しい ID を持つマーカーを探し (非効率的で、多数のマーカーで追加の処理が必要です)、その上でクリック イベントをトリガーします。
  2. 連想配列も作成し、クリックイベントのトリガーに使用します(非効率的で、追加の配列用のメモリが必要です)
于 2012-09-26T18:09:44.777 に答える