ol/ImageTile~ImageTile
Расширяет
Методы
-
dispatchEvent(event){boolean | undefined} унаследованно
-
Отправляет событие и вызывает всех слушателей, ожидающих событий этого типа. Параметр event может быть строкой или объектом со свойством
type.Имя Тип Описание eventBaseEvent | строка Объект события.
Возвращает:
false, если кто-то вызвал preventDefault на объекте события или любой из слушателей вернул false.
-
getImage(){HTMLCanvasElement | HTMLImageElement | HTMLVideoElement}
-
Получить HTML-элемент изображения для этой плитки (может быть холстом, изображением или видео).
Возвращает:
Изображение.
-
getTileCoord(){TileCoord} унаследованно
-
Получить координату плитки для этой плитки.
Возвращает:
Координату плитки.
-
load()
-
Загрузить изображение или повторить попытку, если загрузка ранее завершилась неудачно. Загрузка обрабатывается очередью плиток, и вызов этого метода необходим только для предварительной загрузки или повторной загрузки в случае ошибки.
Чтобы повторно загружать плитки при неудачных запросах, используйте пользовательскую
tileLoadFunction, которая проверяет коды ошибок состояния и перезагружает только при кодах состояния 408, 429, 500, 502, 503 и 504, а также только при том, что ещё не было сделано слишком много попыток:const retryCodes = [408, 429, 500, 502, 503, 504]; const retries = {}; source.setTileLoadFunction((tile, src) => { const image = tile.getImage(); fetch(src) .then((response) => { if (retryCodes.includes(response.status)) { retries[src] = (retries[src] || 0) + 1; if (retries[src] <= 3) { setTimeout(() => tile.load(), retries[src] * 1000); } return Promise.reject(); } return response.blob(); }) .then((blob) => { const imageUrl = URL.createObjectURL(blob); image.src = imageUrl; setTimeout(() => URL.revokeObjectURL(imageUrl), 5000); }) .catch(() => tile.setState(3)); // error }); -
setState(state) унаследованно
-
Устанавливает состояние этой плитки. Если вы пишете свой
tileLoadFunction, важно правильно установить состояние наERROR, когда плитку нельзя загрузить. В противном случае плитку нельзя удалить из очереди плиток, и она будет блокировать другие запросы.Имя Тип Описание stateol/TileState Состояние.
© 2005-present, OpenLayers Contributors All rights reserved.Licensed under the BSD 2-Clause License.
https://openlayers.org/en/latest/apidoc/module-ol_ImageTile-ImageTile.html