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;