Используйте ссылку для получения экземпляра map
и последующего прослушивания события baselayerchange
. Затем, используя имя вашего слоя или URL, вы можете реализовать желаемое поведение.
const mapRef = useRef();
useEffect(() => {
const map = mapRef.current.leafletElement;
map.on("baselayerchange", e => {
//do whatever
console.log(e.name);
switch (e.name) {
case "OpenStreetMap.Mapnik":
flyToParis(map);
break;
case "OpenStreetMap.BlackAndWhite":
console.log("do something else");
break;
default:
return;
}
});
}, []);
const flyToParis = map => {
console.log(map);
map.panTo([48.864716, 2.349014]);
};
Демо