5

「clusterclick」イベントで、infoBubble を markerCluster に追加しようとしましたが、infoBubble.Open メソッドは、バインドする「marker」パラメーターを要求します。問題は、markerCluster が google.maps.Point ではないため、infoBubble をバインドできないことです。

markerCluster の位置を infoBubble に割り当てましたが、infoBubble はマーカーをその位置から移動する新しい位置に再描画します。

誰かが同じ問題を抱えていますか?元の infoBubble コードを変更せずに解決策はありますか?

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

4

2 に答える 2

6

解決策の問題 1: マーカー パラメータはオプションでした 単純に割り当てない場合、問題は解決されます。

使用する:

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

いいえ:

infoBubble.open(map, marker);

問題 2: しかし、現在、infoBubble が市場に表示されています。それを上に移動する方法はありますか??

ソリューションの問題 2 :

InfoBubble の sourceCode を変更して、offsetParameter を含め、描画関数にピクセルを追加しました。

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

誰かが同じ問題を抱えていた場合に備えて

于 2011-05-24T20:50:32.897 に答える
2

これを 93 行目 (他のオプション フィールドの下) に追加します。

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

182行あたりに、これを追加します

InfoBubble.prototype.PIXEL_OFFSET_ = [0.0];

行 908 のあたりに、これを追加します。

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

上記の行は上に配置する必要があります。

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

今、あなたができるオプションの構築で

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

 this.popupWindow = new InfoBubble(popupWindowOptions);
于 2013-03-21T06:46:36.630 に答える