Question

J'essayais d'ajouter une infobubble à un markercluster dans l'événement 'clusterClick', mais la méthode infobubble.open demande un paramètre 'marqueur' avec qui se lier. Le problème est qu'un markercluster n'est pas un google.maps.point, il n'est donc pas possible de lui lier l'infobubble.

J'ai attribué la possibilité du markercluster à l'infobubble mais l'infobubble redestiche dans la nouvelle position en déplaçant le marqueur de sa possibilité.

Quelqu'un a-t-il eu le même problème? Existe-t-il une solution sans modifier le code d'infobubble d'origine?

http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/

Était-ce utile?

La solution

Problème de solution 1:Le paramètre de marqueur était facultatif si je ne l'aimais jamais, le problème est résolu.

Utilisation:

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

Pas:

infoBubble.open(map, marker);

Problème 2: Mais maintenant, l'infobubble apparaît sur le marché, y a-t-il un moyen de le déplacer ??

Problème de solution 2:

J'ai modifié le Sourcecode Infobubble pour contenir unparamètre offset, puis ajouter les pixels dans la fonction Draw:

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

Juste au cas où quelqu'un aurait le même problème

Autres conseils

Ajoutez ceci à la ligne 93 (sous les autres champs d'option)

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

Autour de la ligne 182, ajoutez ceci

InfoBubble.prototype.PIXEL_OFFSET_ = [0.0];

Autour de la ligne 908, ajoutez ceci:

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

Les lignes au-dessus doivent être placées au-dessus:

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

Maintenant dans votre construction pour les options que vous pourriez faire

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

 this.popupWindow = new InfoBubble(popupWindowOptions);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top