知向前端
cesium 中https使用地球皮肤请求地址不安全问题
2019-10-1 Jon
在https环境下使用cesium时若是出现地球皮肤无法访问的问题

这时点击该地址会报不安全的网络

其实是因为早期的cesium版本中没有设计安全https皮肤地址

只需要更新最新的cesium即可,但是往往情况复杂不予许随便更新,又或者怕更新后出现新问题

那么只需要对之前的cesium.js文件进行修复即可

修复也是很简单



打开node_modules/cesium/Build/CesiumUnminified/Cesium.js

搜索Imagery/Metadata并找到如下代码

var metadataResource = this._resource.getDerivedResource({
url:'REST/v1/Imagery/Metadata/' + this._mapStyle,
queryParameters: {
incl: 'ImageryProviders',
key: this._key
}
});

并将其改为(加上参数uriScheme:"https"

var metadataResource = this._resource.getDerivedResource({
url:'REST/v1/Imagery/Metadata/' + this._mapStyle,
queryParameters: {
incl: 'ImageryProviders',
key: this._key,
uriScheme:"https"
}
});

此文件只是未压缩的给开发者看的,真正修改还需要找到

node_modules/cesium/Build/Cesium/Cesium.js

找到

{url:"REST/v1/Imagery/Metadata/"+this._mapStyle,queryParameters:{incl:"ImageryProviders",key:this._key}})

改为

{url:"REST/v1/Imagery/Metadata/"+this._mapStyle,queryParameters:{incl:"ImageryProviders",key:this._key,uriScheme:"https"}})

即可



不建议修改node_modules文件因为这样在重新获取包时修改将不复存在,并且不易维护

所以这里直接使用gulpfile.js修改打包好的文件

在对应的位置替换掉

.replace('{incl:"ImageryProviders",key:this._key}', '{incl:"ImageryProviders",key:this._key,uriScheme:"https"}');



这样运行时的报错就不见了
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容