2

Google Maps API v3 のバージョンで作成された Google マップがあります。これは「標準」の Google マップで、マーカーとクラスターで埋め尽くされています。すべてのマーカーとクラスターには独自の InfoWindow があり、エンド ユーザーがクリックすると表示されます。

私が必要とするのは、マップがロードされたときに、マップに表示されたすべてのマーカーとクラスターのすべての InfoWindow を開くことです。

現在、それらはクリックしたときにのみ表示されます。

google.maps.event.addListener(markerGreenCluster, 'clusterclick', function(markerGreenCluster) {

  var content = '';
  var info = new google.maps.MVCObject;
  info.set('position', markerGreenCluster.center_);
  var infowindow = new google.maps.InfoWindow();
  aIWgreen.push(infowindow);
  var center = markerGreenCluster.getCenter();
  var size = markerGreenCluster.getSize();
  var markers = markerGreenCluster.getMarkers();

  // more code goes here...

})

問題はクラスター定義にあることに気付きました。メソッドmarkerGreenCluster.getSize();は、グループ化されたマーカーの数を返し、マップ全体が読み込まれた後にそれを返すことができます。

マップがロードされたときにすべての InfoWindow が開いている (表示されている) ようにする方法を教えてください。

4

2 に答える 2

0

これを行うには、InfoWindows オブジェクトを作成し、それをマーカーに格納します。このようなもの

function CreateMarker(Lat, Lng, Title, Content) {
  var aInfoWin = new google.maps.InfoWindow({
    content: Content,
    position: new google.maps.LatLng(Lat,Lng)
    });

  var aMarker = new StyledMarker({
    title: Title,
    position: new google.maps.LatLng(Lat,Lng),
    MyInfoWin: aInfoWin
    });

  aMarker.MyInfoWin.open();
}

他のプロパティと同様に、好きな場所 (イベント、コードなど) のマーカー InfoWindows にアクセスできます。

テストされていないコード、アイデアを得るためだけ

よろしく

于 2013-01-08T15:11:52.510 に答える
0

クリックイベントリスナーでのみ作成しているため、情報ウィンドウはクリックでのみ開きます。代わりに、情報ウィンドウを作成するコードをクリック ハンドラーからウィンドウ ロード イベント ハンドラーに移動します。

于 2013-01-08T09:09:33.357 に答える