diff --git a/README.md b/README.md index 847af6f..9b7fa69 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,9 @@ Name | Required | Default value | Description `timeout` | No | `undefined` | Zoom debounce time. ## Changelog +**1.1.3** - 23/09/2020 +* Fixed sending tile requests with `NaN` zoom value for layers with delay defined. + **1.1.2** - 29/07/2020 * Cancelation of unfinished delays after zoom change. * Added Babel to transform code to support older browsers. diff --git a/index.js b/index.js index 80d3862..4073fcb 100644 --- a/index.js +++ b/index.js @@ -20,7 +20,8 @@ L.TileLayer.Canvas = L.TileLayer.extend({ done(err, tile); } }; - img.src = this.getTileUrl(coords); + const tileZoom = this._getZoomForUrl(); + img.src = isNaN(tileZoom) ? '' : this.getTileUrl(coords); img.crossOrigin = "anonymous"; }, createTile: function (coords, done) { diff --git a/index.min.js b/index.min.js index 42393af..484ec12 100644 --- a/index.min.js +++ b/index.min.js @@ -1 +1 @@ -"use strict";L.TileLayer.Canvas=L.TileLayer.extend({_delays:{},_delaysForZoom:null,createCanvas:function(e,t,a){var s,i=e.getContext("2d"),o=this.getTileSize(),n=o.x,r=o.y;e.width=n,e.height=r;var l=new Image;l.onload=function(){try{i.drawImage(l,0,0),e.complete=!0}catch(e){s=e}finally{a(s,e)}},l.src=this.getTileUrl(t),l.crossOrigin="anonymous"},createTile:function(e,t){var a=this,s=this.options.timeout,i=e.z,o=document.createElement("canvas");return s?(i!==this._delaysForZoom&&(this._clearDelaysForZoom(),this._delaysForZoom=i),this._delays[i]||(this._delays[i]=[]),this._delays[i].push(setTimeout((function(){a.createCanvas(o,e,t)}),s))):this.createCanvas(o,e,t),o},_clearDelaysForZoom:function(){var e=this._delaysForZoom,t=this._delays[e];t&&(t.forEach((function(e,a){clearTimeout(e),delete t[a]})),delete this._delays[e])}}),L.tileLayer.canvas=function(e,t){return new L.TileLayer.Canvas(e,t)}; \ No newline at end of file +"use strict";L.TileLayer.Canvas=L.TileLayer.extend({_delays:{},_delaysForZoom:null,createCanvas:function(e,t,a){var s,o=e.getContext("2d"),i=this.getTileSize(),r=i.x,n=i.y;e.width=r,e.height=n;var l=new Image;l.onload=function(){try{o.drawImage(l,0,0),e.complete=!0}catch(e){s=e}finally{a(s,e)}};var c=this._getZoomForUrl();l.src=isNaN(c)?"":this.getTileUrl(t),l.crossOrigin="anonymous"},createTile:function(e,t){var a=this,s=this.options.timeout,o=e.z,i=document.createElement("canvas");return s?(o!==this._delaysForZoom&&(this._clearDelaysForZoom(),this._delaysForZoom=o),this._delays[o]||(this._delays[o]=[]),this._delays[o].push(setTimeout((function(){a.createCanvas(i,e,t)}),s))):this.createCanvas(i,e,t),i},_clearDelaysForZoom:function(){var e=this._delaysForZoom,t=this._delays[e];t&&(t.forEach((function(e,a){clearTimeout(e),delete t[a]})),delete this._delays[e])}}),L.tileLayer.canvas=function(e,t){return new L.TileLayer.Canvas(e,t)}; \ No newline at end of file diff --git a/package.json b/package.json index 7a0df4c..3a86f43 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,10 @@ { "name": "tilelayer-canvas", - "version": "1.1.2", + "version": "1.1.3", "description": "Render Leaflet's tiles as canvas elements.", - "files": ["index.min.js"], + "files": [ + "index.min.js" + ], "main": "index.min.js", "scripts": { "prepublishOnly": "npx babel index.js -o index.min.js && terser --compress --mangle --output index.min.js -- index.min.js"