MapLibre を使用してマップの範囲を設定する
ユーザーに全世界を画面移動したりズームしてほしくない場合もあるでしょう。MapLibre のマップコントロールを使用している場合は、maxBounds
オプションを使用してマップコントロールの範囲または境界を制限し、minZoom
と maxZoom
オプションを使用してズームを制限できます。
次のコード例は、マップコントロールを初期化して画面移動を特定の境界 (この場合は Grab データソースの範囲) に制限する方法を示しています。
注記
これらのサンプルは JavaScript で記述されており、Amazon Location Service を使用するウェブアプリケーションを作成する チュートリアルのコンテキスト内で動作します。
// Set bounds to Grab data provider region var bounds = [ [90.0, -21.943045533438166], // Southwest coordinates [146.25, 31.952162238024968] // Northeast coordinates ]; var mlglMap = new maplibregl.Map( { container: 'map', style: mapName, maxBounds: bounds // Sets bounds as max transformRequest, } );
同様に、マップの最小ズームレベルと最大ズームレベルを設定できます。どちらの値も 0 ~ 24 の範囲ですが、デフォルトは最小ズームが 0、最大ズームが 22 です (データプロバイダーは、すべてのズームレベルでデータを提供するとは限りません。ほとんどのマップライブラリはこれを自動的に処理します)。次の例では、MapLibre Map コントロールの minZoom
および maxZoom
オプションを初期化します。
// Set the minimum and maximum zoom levels var mlglMap = new maplibregl.Map( { container: 'map', style: mapName, maxZoom: 12, minZoom: 5, transformRequest, } );
ヒント
MapLibre Map コントロールでは、これらのオプションを初期化時ではなく、ランタイムに get...
と set...
関数を使用して設定することもできます。例えば、getMaxBounds
と setMaxBounds
を使用してランタイムにマップ境界を変更できます。