Example of tile preloading.
The map on the top preloads low resolution tiles. The map on the bottom does not use any preloading. Try zooming out and panning to see the difference.
import Map from 'ol/Map.js';
import View from 'ol/View.js';
import TileLayer from 'ol/layer/Tile.js';
import BingMaps from 'ol/source/BingMaps.js';
const view = new View({
center: [-4808600, -2620936],
zoom: 8,
});
const map1 = new Map({
layers: [
new TileLayer({
preload: Infinity,
source: new BingMaps({
key: 'Your Bing Maps Key from https://www.bingmapsportal.com/ here',
imagerySet: 'Aerial',
}),
}),
],
target: 'map1',
view: view,
});
const map2 = new Map({
layers: [
new TileLayer({
preload: 0, // default value
source: new BingMaps({
key: 'Your Bing Maps Key from https://www.bingmapsportal.com/ here',
imagerySet: 'AerialWithLabelsOnDemand',
}),
}),
],
target: 'map2',
view: view,
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Preload Tiles</title>
<link rel="stylesheet" href="node_modules/ol/ol.css">
<style>
.map {
width: 100%;
height: 400px;
}
</style>
</head>
<body>
<div id="map1" class="map"></div>
<div id="map2" class="map"></div>
<script type="module" src="main.js"></script>
</body>
</html>
{
"name": "preload",
"dependencies": {
"ol": "10.4.0"
},
"devDependencies": {
"vite": "^3.2.3"
},
"scripts": {
"start": "vite",
"build": "vite build"
}
}