Spec-Zone.ru › MapLibre GL JS

addProtocol()

addProtocol(customProtocol: string, loadFn: AddProtocolAction): void

Добавляет пользовательскую функцию загрузки ресурса, которая будет вызываться при использовании URL с пользовательской схемой. Это происходит в основном потоке, и рабочие потоки могут вызывать её, если не знают, как обработать протокол. Пример ниже будет запущен для URL-адресов custom://, определённых в списке источников в описаниях стилей. Переданная функция получит параметры запроса и должна вернуть полученный ресурс, например векторную плитку PBF без сжатия в виде ArrayBuffer.

Параметры

Параметр Тип Описание
customProtocol string протокол для подключения, например 'custom'
loadFn AddProtocolAction функция, используемая при попытке загрузить плитку, указанную в customProtocol

Возвращает

void

Пример

// This will fetch a file using the fetch API (this is obviously a non interesting example...)
addProtocol('custom', async (params, abortController) => {
     const t = await fetch(`https://${params.url.split("://")[1]}`);
     if (t.status == 200) {
         const buffer = await t.arrayBuffer();
         return {data: buffer}
     } else {
         throw new Error(`Tile fetch error: ${t.statusText}`);
     }
 });
// the following is an example of a way to return an error when trying to load a tile
addProtocol('custom2', async (params, abortController) => {
     throw new Error('someErrorMessage');
});

См. также

  • Добавление растрового источника COG
  • Добавление линий рельефа
  • Источник и протокол PMTiles
  • Преобразование свойств объектов с помощью addProtocol

© MapLibre contributors
Licensed under the 3-Clause BSD License.
https://maplibre.org/maplibre-gl-js/docs/API/functions/addProtocol/

Spec-Zone.ru

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