A leaflet tile layer cached with @yaga/indexed-db-tile-cache
npm install @yaga/leaflet-cached-tile-layer


A cached tile-layer for Leaflet realized with the browsers IndexedDB over
@yaga/indexed-db-tile-cache.
At first you have to install this library with npm or yarn:
``bash`
npm install --save @yaga/leaflet-cached-tile-layerOR
yarn install --save @yaga/leaflet-cached-tile-layer
After that you can import this module into your application with the typical node.js or TypeScript way.
*keep in mind that you have to use browserify to package the libraries from the node.js environment into your browser
ones, such as Buffer or request.*
#### JavaScript
`javascript
const CachedTileLayer = require('@yaga/leaflet-cached-tile-layer').CachedTileLayer;
const Map = require('leaflet').Map;
document.addEventListener('DOMContentLoaded', function() {
const map = new Map('map').setView([51.505, -0.09], 13);
const leafletCachedTileLayer = new CachedTileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors',
databaseName: 'tile-cache-data', // optional
databaseVersion: 1, // optional
objectStoreName: 'OSM', // optional
crawlDelay: 500, // optional
maxAge: 1000 60 60 24 7 // optional
}).addTo(map);
// The layer caches itself on tile load.
// You can also seed explicit with:
// - leafletCachedTileLayer.seedCurrentView();leafletCachedTileLayer.seedBBox(/ ... /);
// - leafletCachedTileLayer.clearCache();
//
// or clear the cache with:
// -
});
`
#### TypeScript
`typescript
import { CachedTileLayer, ICachedTileLayerSeedProgress } from "@yaga/leaflet-cached-tile-layer";
import { Map } from "leaflet";
document.addEventListener("DOMContentLoaded", () => {
const map = new Map("map").setView([51.505, -0.09], 13);
const leafletCachedTileLayer = new CachedTileLayer("http://{s}.tile.osm.org/{z}/{x}/{y}.png", {
attribution: © OpenStreetMap contributors,leafletCachedTileLayer.seedCurrentView();
databaseName: "tile-cache-data", // optional
databaseVersion: 1, // optional
objectStoreName: "OSM", // optional
crawlDelay: 500, // optional
maxAge: 1000 60 60 24 7, // optional
}).addTo(map);
// The layer caches itself on tile load.
// You can also seed explicit with:
// - leafletCachedTileLayer.seedBBox(/ ... /);
// - leafletCachedTileLayer.clearCache();
//
// or clear the cache with:
// - `
});
There are more methods available, for further information take a look at the API documentation or the example...
* npm test: Runs the software tests with karma and leaves a coverage report under the folder coverage.npm run travis-test
* : Runs the software tests optimized for the Travis-CI.npm run browser-test
* : Prepares the tests to run directly in your browser. After running this command you have tobrowser-test/index.html
open in your browser of choice.npm run doc
* : Creates the API documentation with typedoc and places the documentation in the folder typedoc`.
Make an issue on GitHub, or even better a pull request and try
to fulfill the software tests.
This library is under ISC License © by Arne Schubert and the YAGA Development
Team.
