1

ページロード時の Google マップのインフォボックスの位置が間違っているか、少なくともマップの高さを 400/380px より低く設定している場合は間違っているようです http://jsfiddle.net/TbDzG/18/

 var startLocation = new google.maps.LatLng(36.151685,-115.152438);

function initialize() {
    var mapOptions = {
        center: startLocation,
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"),
    mapOptions);

  var marker = new google.maps.Marker({
      position: startLocation,
      map: map,
      draggable:true,
      animation: google.maps.Animation.DROP,
      title:"Hello World!"
  });
  var infowindow = new google.maps.InfoWindow();
infowindow.setContent('some content here');
infowindow.open(map, marker);  


}
google.maps.event.addDomListener(window, 'load', initialize);

それを正しい位置に移動し、マーカーを中央に配置する代わりにインフォボックスを中央に配置する方法についてのトリックを知っている人はいますか?

4

2 に答える 2

5

マーカーと情報ウィンドウ (+map) の位置が同じであるため、情報ウィンドウを中央に配置することはできません。

これを試してみてください。マップが読み込まれると、InfoWindow が開き、マップがパンされます。

var infowindow = new google.maps.InfoWindow();
infowindow.setContent('some content here');
google.maps.event.addListenerOnce(map, 'idle', function(){infowindow.open(map, marker);  });

http://jsfiddle.net/iambnz/jAgcz/

于 2013-07-14T21:18:03.450 に答える
1

クリックで情報ウィンドウを開き、マップのレンダリングが終了した後にマーカーをクリックすると (「アイドル」イベント)、マップが移動し、情報ウィンドウが完全に表示されます。

var startLocation = new google.maps.LatLng(36.151685,-115.152438);

function initialize() {
    var mapOptions = {
        center: startLocation,
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"),
    mapOptions);

  var infowindow = new google.maps.InfoWindow();
  var marker = new google.maps.Marker({
      position: startLocation,
      map: map,
      draggable:true,
      animation: google.maps.Animation.DROP,
      title:"Hello World!"
  });
  google.maps.event.addListener(marker,'click', function(evt) {
      infowindow.setContent('some content here');
      infowindow.open(map, marker);
  });
  google.maps.event.addListenerOnce(map,'idle',function() {
      google.maps.event.trigger(marker,'click');
  });  
}
google.maps.event.addDomListener(window, 'load', initialize);

http://jsfiddle.net/YWbXE/2/

于 2013-07-14T21:19:28.503 に答える