leaflet - 如何在 Leaflet 中为磁贴请求添加自定义授权标头
问题描述
我正在使用Leaflet.VectorGrid插件在传单地图上加载 pbf 矢量图块。我检索矢量切片的 API 需要传递授权标头。在 Mapbox GL js 中,这可以通过使用transformRequest选项来解决。例子:
var baseLayer = L.mapboxGL({
accessToken: token,
style: 'myStyle',
transformRequest: (url, resourceType)=> {
if(resourceType == 'Tile' && url.startsWith(TILE_SERVER_HOST)) {
return {
url: url,
headers: { 'Authorization': 'Basic ' + key }
};
}
}
}).addTo(leafletMap);
如何在 Leaflet 中做类似的事情来绕过我收到的 401 授权消息?
对于插件中的参考矢量图层构造函数:
var vectorTileOptions = {
rendererFactory: L.canvas.tile
};
var pbfLayer = L.vectorGrid.protobuf(vectorTileUrl, VectorTileOptions).addTo(leafletMap);
解决方案
这个 Github 问题https://github.com/Leaflet/Leaflet.VectorGrid/issues/89描述了在实例化图层时可以传递的属性,该属性将fetchOptions
用作检索切片的fetch
选项。
你应该能够做到
var vectorTileOptions = {
rendererFactory: L.canvas.tile,
fetchOptions: {
headers: {
Authorization: 'Basic ' + key
}
}
};
var pbfLayer = L.vectorGrid.protobuf(vectorTileUrl, VectorTileOptions).addTo(leafletMap);
推荐阅读
- c++ - 如何在不指定模板类型的情况下声明通用抽象类的对象
- opencart - 如何在管理面板中删除广告 opencart
- google-cloud-platform - 游戏服务器 - 高延迟
- swift - 如果 swift 表格视图中有更多(大约 10 到 20 个)部分,如何返回部分值?
- java - 如何将某些未知语言环境中的字符串日期转换为其他已知语言环境?
- python-3.x - 如何使用 cv2.waitKey() 等待两个不同的键
- cron - 每两周运行一次任务的 Cron 作业
- python-3.x - Postgres sql Inner join 和 Delete 查询都返回不同的结果
- bash - 在 Mac OS 的自动化操作中运行“pod install” - 权限被拒绝
- android - React-native release apk 拒绝安装