3

ウェブサイトで Google Maps API v3 を使用しており、markersArray からマーカーを表示しようとしています。

関連するコードは次のとおりです。

var map;
var markersArray = [];
var infowindow;
var marker;

次に、ループ内のマーカーを配列に追加し、次の関数を呼び出します

function addMarker(location, name) {
      marker = new google.maps.Marker({
      position: location,
      map: map,
      company: name,
      title: name
   });
   markersArray.push(marker);
}

次に、この関数を使用して、魅力のように機能するマーカーを表示しようとしています。

function showOverlays() {
   if (markersArray) {
      for (var i in markersArray) {
         markersArray[i].setMap(map);
         google.maps.event.addListener(markersArray[i], 'click', function () {
         infowindow.setContent('<div style="height:300px; color:black">' + this.title +     '</div>');
         infowindow.open(map, this);
         });
      }
   }
}

ここで問題が発生します。infoWindows の内容が表示されません。開きますが、何も表示されていません... 300px の高い div を配置すると、infoWindow は実際には適切にサイズ変更されます....しかし、コンテンツは表示されません。

私はウェブを上下に検索し、いじってみましたが、役に立ちませんでした。

誰かがこれを経験したことがあり、これを解決する方法についてのヒントを教えてくれるでしょうか?

前もって感謝します!

クリス

4

2 に答える 2

4

私はちょうどエラーを見つけました!

親 div (マップ キャンバスが含まれる DIV) を CSS でスタイル設定しました...そして z-index を 11 に設定しました。明らかに、情報ウィンドウのコンテンツが一番上に表示されないようにしました...

同じ「間違い」を犯した可能性のある人々の助けになることを願っています:)

助けてくれたkevmcに感謝

于 2013-04-10T20:14:15.480 に答える
0

マーカー オブジェクトにはタイトル属性がないと考えています。次を使用して取得する必要がありますgetTitle()

function showOverlays() {
   if (markersArray) {
      for (var i in markersArray) {
         markersArray[i].setMap(map);
         google.maps.event.addListener(markersArray[i], 'click', function () {
         infowindow.setContent('<div style="height:300px; color:black">' + this.getTitle() +     '</div>');
         infowindow.open(map, this);
         });
      }
   }
}
于 2013-04-10T06:10:15.253 に答える