addProtocol()
addProtocol(
customProtocol
:string
,loadFn
: AddProtocolAction):void
定义于: src/source/protocol_crud.ts:33
添加一个自定义资源加载函数,当使用以自定义URL模式开头的URL时将被调用。这将在主线程中发生,如果工作线程不知道如何处理该协议,它们也可能调用此函数。下面的示例将在样式定义中的源列表中定义的custom://开头的URL被触发。传入的函数将接收请求参数并应返回结果资源,例如以ArrayBuffer形式表示的未压缩pbf矢量瓦片。
参数
参数 | 类型 | 描述 |
---|---|---|
customProtocol | string | 要挂钩的协议,例如'custom' |
loadFn | AddProtocolAction | 尝试获取由customProtocol指定的瓦片时使用的函数 |
返回值
void
示例
// 这将使用fetch API获取文件(这显然是一个不太有趣的示例...) 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}`); } }); // 以下是在尝试加载瓦片时返回错误的示例 addProtocol('custom2', async (params, abortController) => { throw new Error('someErrorMessage')); });