(地图瓦片纠偏最好的方法在这:https://www.cnblogs.com/s0611163/p/15606460.html)
地图区域是一个市,偏移量可以近似认为是固定不变的,通过修改Leaflet-src.js源码中的_update方法和_addTile方法对瓦片进行偏移纠偏。
Leaflet版本v1.3.4,要修改的_update和_addTile方法和最新版本1.6.0区别不大。
1、在_update方法中添加如下代码,瓦片图偏移后,在边缘位置需要补充瓦片图显示,不然边缘会出现空白:
//处理纠偏后瓦片显示 var ratio = 1 / Math.pow(2, (18 - this._tileZoom)); //计算纠偏比率 var deltaX = 0; var deltaY = 0; if (this._map.options.offsetX) deltaX = this._map.options.offsetX * ratio / 256; if (this._map.options.offsetY) deltaY = this._map.options.offsetY * ratio / 256; if (deltaX > 0) tileRange.max.x += (Math.round(deltaX) + 1); if (deltaY > 0) tileRange.max.y += (Math.round(deltaY) + 1); if (deltaX < 0) tileRange.min.x -= (Math.floor(deltaX) - 1); if (deltaY < 0) tileRange.min.y -= (Math.floor(deltaY) - 1);