Spec-Zone.ru › OpenLayers

ol/ImageTile~ImageTile


Расширяет

  • Плитка

Методы

dispatchEvent(event){boolean | undefined} унаследованно

events/Target.js, строка 85

Отправляет событие и вызывает всех слушателей, ожидающих событий этого типа. Параметр event может быть строкой или объектом со свойством type.

Имя Тип Описание
event BaseEvent | строка

Объект события.

Возвращает:
false, если кто-то вызвал preventDefault на объекте события или любой из слушателей вернул false.

getImage(){HTMLCanvasElement | HTMLImageElement | HTMLVideoElement}

ImageTile.js, строка 64

Получить HTML-элемент изображения для этой плитки (может быть холстом, изображением или видео).

Возвращает:
Изображение.

getTileCoord(){TileCoord} унаследованно

Tile.js, строка 155

Получить координату плитки для этой плитки.

Возвращает:
Координату плитки.

load()

ImageTile.js, строка 144

Загрузить изображение или повторить попытку, если загрузка ранее завершилась неудачно. Загрузка обрабатывается очередью плиток, и вызов этого метода необходим только для предварительной загрузки или повторной загрузки в случае ошибки.

Чтобы повторно загружать плитки при неудачных запросах, используйте пользовательскую 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) унаследованно

Tile.js, строка 174

Устанавливает состояние этой плитки. Если вы пишете свой tileLoadFunction, важно правильно установить состояние на ERROR, когда плитку нельзя загрузить. В противном случае плитку нельзя удалить из очереди плиток, и она будет блокировать другие запросы.

Имя Тип Описание
state ol/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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API