2013-05-23 3 views
8

現在、gmapsを使用したリーフレットプロジェクトに取り組んでいますが、少し問題があります。リーフレットがマーカーのポップアップに合わせて地図をドラッグしないようにするにはどうすればよいですか?

複数のマーカーを(それぞれポップアップで)追加した後、それらをすべて開きたいとします。次のコードの平和を使用して、そう - 私を行うには

:pageloadすべてオン

L.Map = L.Map.extend({ 
    openPopup: function(popup) { 
    //  this.closePopup(); 
    this._popup = popup; 

    return this.addLayer(popup).fire('popupopen', { 
     popup: this._popup 
    }); 
    } 
}); 

期待通りに動作します。

しかし、ここで失敗したシナリオが来る:pageload

ユーザーzooms in、いくつかのマーカーは、ユーザーのout of the “view area”です。

数秒後、ウェブサイトはnew position data(マーカーの場合)using a rest interfaceを読み込みます。

位置データが送信された後、私は現在、すべてのマーカーを削除し、送信された位置でマーカーを再作成して開きます。

そして、このmarker.openPopup()は、map movesそのように、popup fits in the “view area” of the userを引き起こします。

この場合、私はprevent leaflet to drag the mapをどうすればできますか?

答えて

11

autoPanのプロパティを参照していると思いますか? APIから:あなたのポップアップを作成する際にSet it to false if you don't want the map to do panning animation to fit the opened popup.

http://leafletjs.com/reference.html#popup

それでは、OMGオプションautoPan: false

+0

に渡す...私はいつも 'openAllPopUp'によって誘導されたit'saバグを、考えていました-ハック。ポップアップオブジェクトで単純なオプションを考えたことはありません。ありがとう! – gies0r

関連する問題