像素偏移量在谷歌地图中不起作用



我创建了一个定制的谷歌地图,带有标记和自定义信息窗口。 希望信息窗口位于标记下方而不是顶部。我通过定位信息窗口的姿态和经度来实现这一点。但是我在谷歌 API 中遇到了像素偏移量属性,但它不起作用。我用了

var infoBubble = new InfoBubble({
map: map,
content: '<div>Some label</div>',
position: new google.maps.LatLng(26.890076,75.755000),
shadowStyle: 1,
padding: 0,
backgroundColor: 'rgb(57,57,57)',
borderRadius: 4,
arrowSize: 0,
borderWidth: 1,
borderColor: '#2c2c2c',
disableAutoPan: true,
hideCloseButton: true,
pixelOffset: new google.maps.Size(-100,0)
});
infoBubble2.open(map,marker);

InfoBubble不是google.maps.InfoWindow的实现,没有InfoBubble的属性pixelOffset

但是只需在infobubble中做一些微小的更改.js就可以应用此功能。

打开infobubble.js(未编译版本)并找到以下代码(在draw函数内):

  // Adjust for the height of the info bubble
  var top = pos.y - (height + arrowSize);
  if (anchorHeight) {
    // If there is an anchor then include the height
    top -= anchorHeight;
  }
  var left = pos.x - (width * arrowPosition);

应用这些更改:

if(!this.pixelOffset      ||!this.pixelOffset.constructor         ||this.pixelOffset.constructor !== google.maps.Size){    this.pixelOffset = new google.maps.Size(0,0);  }  调整信息气泡的高度  var top = pos.y - (height + arrowSize) + this.pixelOffset.height;  if (anchorHeight) {    如果有锚点,则包括高度    顶部 -= 锚高度;  }  var left = pos.x - (width * arrowPosition) + this.pixelOffset.width; 

相关内容

  • 没有找到相关文章

最新更新