Google Maps API - 有没有办法为信息窗口设置 pixelOffset?

Jac*_*ack 0 google-maps google-maps-api-3

对于信息窗口,我知道setContentsetPosition功能。是否有类似setPixelOffset函数可以让您更改偏移量? setPixelOffset不作为函数存在。

geo*_*zip 6

最简单的方法是使用 setter(或setOptions一次设置多个选项):

infowindow.set("pixelOffset", new google.maps.Size(10,10)); 
Run Code Online (Sandbox Code Playgroud)

概念证明小提琴

代码片段:

infowindow.set("pixelOffset", new google.maps.Size(10,10)); 
Run Code Online (Sandbox Code Playgroud)
function initialize() {
  infowindow = new google.maps.InfoWindow({
    size: new google.maps.Size(150, 50),
    pixelOffset: new google.maps.Size(0, 0)
  });
  var myOptions = {
    zoom: 9,
    center: new google.maps.LatLng(43.4529192156, -116.22985867),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

  map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);

  map.addListener('click', function(e) {
    infowindow.setContent("<input type='button' value='change pixelOffset' id='btn' /><input id='xval' value='20' size='2' /><input id='yval' value='20'  size='2' />");
    infowindow.setPosition(e.latLng);
    infowindow.open(map);
    infowindow.addListener('domready', function() {
      google.maps.event.addDomListener(document.getElementById('btn'), 'click', function() {
        var size = new google.maps.Size(parseInt(document.getElementById('xval').value), parseInt(document.getElementById('yval').value));
        console.log("size=" + size.toString());
        infowindow.set("pixelOffset", size);
        infowindow.open(map);
      })
    });
  });
  google.maps.event.trigger(map, 'click', {
    latLng: new google.maps.LatLng(43.4529192156, -116.22985867)
  });
}
google.maps.event.addDomListener(window, 'load', initialize);
Run Code Online (Sandbox Code Playgroud)
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  padding: 0px;
  margin: 0px;
}
Run Code Online (Sandbox Code Playgroud)