2

チェックボックスを使用して Google Map API V3 に読み込まれる複数の kml レイヤーがあります。2 つ以上のレイヤーが選択されている場合、1 つのレイヤーの情報ウィンドウは、他のレイヤーのマーカーをクリックしても自動的に折りたたまれません。情報ウィンドウが異なる KML レイヤー上にある場合でも、情報ウィンドウが自動的に閉じられるようにしたい - 正しい方向へのポインタが役に立ちます。

ありがとう

ダレン・ウィルソン

4

1 に答える 1

4

デフォルトの情報ウィンドウの作成を無効にして、情報ウィンドウを自分でコードで処理する必要があります。次に例を示します。

var CommonInfoWindow = new google.maps.InfoWindow({"maxWidth": 500});

/** @param {...*} KmlMouseEvent */
function KmlLayerClicked(KmlMouseEvent) {
  var ClickData = /** @type {google.maps.KmlMouseEvent} */(KmlMouseEvent);

  CommonInfoWindow.close();

  if (ClickData.featureData && ClickData.featureData.id) {
    CommonInfoWindow.setOptions({ "position": ClickData.latLng,
        "pixelOffset": ClickData.pixelOffset,
        "content": ClickData.featureData.infoWindowHtml
    });
    CommonInfoWindow.open(map);
  }
}

/** @type {google.maps.KmlLayer} */
var KmlOverlay = new google.maps.KmlLayer(KmlUrl, {
    'preserveViewport': true,
    'suppressInfoWindows': true
});
google.maps.event.addListener(KmlOverlay, "click", KmlLayerClicked);
于 2012-05-17T16:30:18.313 に答える