1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| import DataTile from 'ol/source/DataTile.js'; import Map from 'ol/Map.js'; import TileLayer from 'ol/layer/WebGLTile.js'; import View from 'ol/View.js';
const size = 256;
const canvas = document.createElement('canvas'); canvas.width = size; canvas.height = size;
const context = canvas.getContext('2d'); context.strokeStyle = 'white'; context.textAlign = 'center'; context.font = '24px sans-serif'; const lineHeight = 30;
const map = new Map({ target: 'map', layers: [ new TileLayer({ source: new DataTile({ loader: function (z, x, y) { const half = size / 2; context.clearRect(0, 0, size, size); context.fillStyle = 'rgba(100, 100, 100, 0.5)'; context.fillRect(0, 0, size, size); context.fillStyle = 'black'; context.fillText(`z: ${z}`, half, half - lineHeight); context.fillText(`x: ${x}`, half, half); context.fillText(`y: ${y}`, half, half + lineHeight); context.strokeRect(0, 0, size, size); const data = context.getImageData(0, 0, size, size).data; return new Uint8Array(data.buffer); }, transition: 0, }), }), ], view: new View({ center: [0, 0], zoom: 0, }), });
|