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/