回答:
このチュートリアルは良い例です。
1)例に示すように、プログラムで切り替えたい関数でアクセスできる変数名を使用してベースレイヤーを設定します。
var grayscale = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution}),
streets = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution});
2)次に、追加または削除するレイヤーを追加および削除します。以下は、grayscale
レイヤーをレイヤーに交換しstreets
ます。これは、両方grayscale
をstreets
行い、切り替えを行う機能の範囲内で利用可能であることを前提としています。
map.removeLayer(grayscale);
map.addLayer(streets);
3)L.control.layers
例に示されているレイヤーコントロールを使用している場合、コントロールはマップ上にあるものを追跡し、それに応じてチェックボックスを変更します。
/programming//a/33762133/4355695から
通常、マップにレイヤーを追加するだけで(例:myTileLayer.addTo(map))、そのレイヤーがベースレイヤーまたはレイヤーコントロールのオーバーレイの一部である場合、後者は自動的にステータスを更新します(ベースレイヤーを追加した場合、ラジオボタンがそれに応じて選択されます;オーバーレイの場合、対応するチェックボックスがチェックされます)。
試してみましたが、うまくいきました。現在のベースレイヤーを削除する必要はありません(または、どちらがアクティブかを把握する必要はありません)。ちょうどmyTileLayer.addTo(map)
仕事をします:それがすでに私のベースレイヤーの一部であるならば、マップはそれに「切り替わります」。現在のレイヤーを自動的に削除し、に変更しmyTileLayer
ます。
mapboxUrl
&mapboxAttribution
?