pixeloffset не работает на карте Google

Я создал персонализированную карту Google с маркером и настраиваемым информационным окном. хочу информационное окно под маркером, а не сверху. Я добился этого, разместив широту и долготу информационного окна. Но я наткнулся на атрибут pixeloffset в Google 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);

1 ответ

Решение

InfoBubble не является реализацией google.maps.InfoWindow нет собственности pixelOffset для InfoBubble,

Но для применения этой функции требуются лишь незначительные изменения в 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);

применить эти изменения:

  если (! 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) {
    // Если есть якорь, включите высоту
    top - = anchorHeight;
  }

  var left = pos.x - (width * arrowPosition) + this.pixelOffset.width;

 
Другие вопросы по тегам