此处的 OpenLayers 最新文档:https : //openlayers.org/en/latest/apidoc/module-ol_Tile.html 显示了如何使用 setTileLoadFunction() 的示例。这是提供的示例:
import TileState from 'ol/TileState';
source.setTileLoadFunction(function(tile, src) {
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.addEventListener('loadend', function (evt) {
var data = this.response;
if (data !== undefined) {
tile.getImage().src = URL.createObjectURL(data);
} else {
tile.setState(TileState.ERROR);
}
});
xhr.addEventListener('error', function () {
tile.setState(TileState.ERROR);
});
xhr.open('GET', src);
xhr.send();
});
URL.createObjectURL() 创建一个必须手动撤销的永久对象。此代码示例将泄漏内存。随着瓷砖被丢弃,我们创建的 URL 对象仍然存在。
请参阅我的答案以获取正确的示例代码。