xkf
在SuperMap iClient3D for WebGL加载服务数据的时候一般情况都是加载的公开的服务,但也会有因为保密性加载加密服务的时候,甚至是加载的服务需要用到几个加密的token。这种情况下需要进行如下操作:
ps:以下示例加密方式为SuperMap iPortal的加密。
加载单token服务:
// 需要在构造图层provider前声明
Cesium.Credential.CREDENTIAL = new Cesium.Credential("SHf9H7YWmdHLULULQ4gdAoWh", "key");
加载多token服务:
// 需要在构造图层provider前声明
Cesium.Credential.CREDENTIAL = new Cesium.Credential([
{
rooturl: "http://localhost:8195/portalproxy/iserver/services/3D-yingxiang/rest/realspace/datas/MosaicResult@dem",
type: "key",
value: "SHf9H7YWmdHLULULQ4gdAoWh",
},
{
rooturl: "http://localhost:8195/portalproxy/iserver/services/3D-CBD/rest/realspace",
type: "key",
value: "4x3T2UQCjnW38ugvfmo7MbPP",
},
]);
多token demo主要代码如下:
function onload(Cesium) {
// 需要在构造图层provider前声明
Cesium.Credential.CREDENTIAL = new Cesium.Credential([
{
rooturl: "http://localhost:8195/portalproxy/iserver/services/3D-yingxiang/rest/realspace/datas/MosaicResult@dem",
type: "key",
value: "SHf9H7YWmdHLULULQ4gdAoWh",
},
{
rooturl: "http://localhost:8195/portalproxy/iserver/services/3D-CBD/rest/realspace",
type: "key",
value: "4x3T2UQCjnW38ugvfmo7MbPP",
},
]);
//初始化viewer部件
var viewer = new Cesium.Viewer('cesiumContainer');
//添加SuperMap iServer发布的影像服务
var layer = viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
url : 'http://localhost:8195/portalproxy/iserver/services/3D-yingxiang/rest/realspace/datas/MosaicResult@dem'
}));
var scene = viewer.scene;
var widget = viewer.cesiumWidget;
$('#loadingbar').remove();
try{
var promise = scene.open('http://localhost:8195/portalproxy/iserver/services/3D-CBD/rest/realspace');
Cesium.when(promise,function(layers){
},function(){
var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
widget.showErrorPanel(title, undefined, e);
});
}
catch(e){
if (widget._showRenderLoopErrors) {
var title = '渲染时发生错误,已停止渲染。';
widget.showErrorPanel(title, undefined, e);
}
}
$("#toolbar").show();
}
if (typeof Cesium !== 'undefined') {
window.startupCalled = true;
onload(Cesium);
}