offline-map-react
Version:
<h1 style="text-align: center">Welcome to offline-map-react 👋</h1> <p> <a href="https://www.npmjs.com/package/offline-map-react" target="_blank"> <img alt="Version" src="https://img.shields.io/npm/v/offline-map-react.svg"> </a> <a href="ht
36 lines (29 loc) • 1.21 kB
text/typescript
import Leaflet from 'leaflet'
import {IMakeTileLayerOfflineProps} from "./index.types";
export default function MakeTileLayerOffline({map,leaflet,}: IMakeTileLayerOfflineProps): Leaflet.tileLayerOffline | undefined {
if (!leaflet.tileLayer?.offline) return undefined
const tileLayerOffline = leaflet.tileLayer?.offline('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
minZoom: 13,
})
tileLayerOffline.addTo(map)
const controlSaveTiles = leaflet.control.savetiles(tileLayerOffline, {
zoomlevels: [13, 14, 15, 16],
confirm(layer, succescallback) {
// eslint-disable-next-line no-alert
if (window.confirm(`Salvar ${layer._tilesforSave.length} blocos do mapa`)) {
succescallback()
}
},
confirmRemoval(_, successCallback) {
// eslint-disable-next-line no-alert
if (window.confirm('Deseja remover o mapa da memória do seu dispositivo?')) {
successCallback()
}
},
saveText: 'salvar',
rmText: 'excluir',
})
controlSaveTiles.addTo(map!)
return tileLayerOffline
}