web-dev-qa-db-ja.com

maxZoomとユーザー入力

入力(ミューズスクロールなど)とボタンでユーザーの最大ズームレベルを制限したい。言い換えれば、私は「maxZoom」を-たとえば-level9に制限します。それでも、特別な条件でレベル10にズームできるようにしたいです。 maxZoomを設定すると、明らかにそれ以上ズームできなくなります。この場合の解決策は何ですか?

17
Mia

最大ズームレベルを設定するには:

map._layersMaxZoom = 15(最大ズームレベルを15に設定します)

同様に、最小ズームレベルを設定できます。

map._layersMinZoom = 2、(最小ズームレベルを2に設定します)。

同じことをする別の方法-

map.options.maxZoom = 15;

map.options.minZoom = 10;

29
Rahul G Nair

これらの特別な条件でmap.options.maxZoomを使用して、マップの最大ズームレベルを動的に設定し、完了したら元に戻すことができます。

20
flup

これは私のために働きます:

L.tileLayer( '...'、{minZoom:5、maxZoom:15})。addTo(map)

5
EvilInside

コントロールを表示していて、maxZoomまたはminZoomオプションを変更した場合、コントロールは更新されません。たとえば、最小ズームレベルが10で、現在のズームレベルが10の場合、ズームレベルを変更しても、ズームアウトコントロールは無効になっているように見えます。

このソリューションの回避策の1つは、マップ上で「zoomend」イベントをトリガーすることです。

_map.options.minZoom = 9;
map.fire('zoomend');
_

現在のズームレベルを無効にする方法で最大/最小ズームレベルを変更する場合は、setZoom()メソッドの呼び出しを検討することもできます。

2
Andy E