Domanda

Stavo cercando di aggiungere un infobubble a un markercluster nell'evento "ClusterClick", ma il metodo INFOBUBBLE.OPEN richiede un parametro "marker" con cui legare.Il problema è che un markercluster non è un google.maps.Punto quindi non è possibile vincolare l'INFOBUBBLE ad esso.

Ho assegnato la possibilità del markercluster all'INFOBUBBLE, ma l'INFOBUBBLE REDRAWS nella nuova posizione spostando il marker dalla sua posizione.

Qualcuno ha avuto lo stesso problema?C'è una soluzione senza modificare il codice InfoBubble originale?

http:// Google-maps-Utility-Library-v3.googlecode.com/svn/trunk/infobubble/

È stato utile?

Soluzione

Soluzione Problema 1: Il parametro del marker era facoltativo se semplicemente non lo assegnino, il problema è risolto.

Uso:

infoBubble.setPossition(latLng);
infoBubble.open(map);
.

non:

infoBubble.open(map, marker);
.

Problema 2: Ma ora l'Infobubble appare sul mercato, c'è un modo per spostarlo ??

Problema della soluzione 2 :

Ho modificato il sourcecode InfoBubble per contenere un offsetparameter e quindi aggiungere i pixel nella funzione Draw:

InfoBubble.prototype.PIXEL_OFFSET = 0
...
var top = pos.y - (height + arrowSize); if (anchorHeight) { top -= anchorHeight; } top -= this.PIXEL_OFFSET
.

Nel caso qualcuno ha avuto lo stesso problema

Altri suggerimenti

Aggiungi questo alla riga 93 (sotto i campi di opzione)

if (options['pixelOffset'] == undefined) {
    options['pixelOffset'] = this.PIXEL_OFFSET_;
}
.

Around Line 182, aggiungi questo

InfoBubble.prototype.PIXEL_OFFSET_ = [0.0];
.

Around Line 908, aggiungi questo:

top -= this.get('pixelOffset')[1];  // Add offset Y.
left -= this.get('pixelOffset')[0]; // Add offset X.
.

Le linee secondarie dovrebbero essere posizionate sopra:

this.bubble_.style['top'] = this.px(top);
this.bubble_.style['left'] = this.px(left);
.


.

Ora nella tua costruzione per opzioni che potresti fare

var popupWindowOptions = {
    backgroundColor: '#2B2B2B',
    arrowStyle: 0,
    pixelOffset: [0,16]
 };

 this.popupWindow = new InfoBubble(popupWindowOptions);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top