BaseLayerPicker

BaseLayerPicker

问题?

image.png

相关控件说明

  1. BaseLayerPicker中内置的Provider(数据源包括Esri,Bing,MapBox的数据服务),在国内网络环境下访问存在一些限制。基于BaseLayerPicker自定义一些国内常用的数据源(天地图、百度地图、高德地图等)就很有必要。
  2. 内置的地图服务部分需要获取Cesium.Ion授权,对于一些需要内网部署的平台是很大的问题。

实现代码块

方案一:
// 天地图
var image_Source = new Cesium.WebMapTileServiceImageryProvider({
	url: "http://t0.tianditu.com/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=申请的天地图token",
	layer: "img",
	style: "default",
	format: "tiles",
	tileMatrixSetID: "w",
	credit: new Cesium.Credit('天地图全球影像服务'),
	subdomains: ['t0', "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
	maximumLevel: 18,
	show: false
});
//创建viewer实例
this.viewer = new Cesium.Viewer(target, {
	imageryProvider: image_Source,//自定义初始化底图
});

效果图如下:
在这里插入图片描述

方案二:
this.viewer = new Cesium.Viewer(target,{
     baseLayerPicker: true, //是否显示图层选择控件
});

//设置ProviderViewModel:
this.esriMapModel = new Cesium.ProviderViewModel({
  name: 'esri Maps',
  iconUrl: Cesium.buildModuleUrl('./Widgets/Images/ImageryProviders/esriWorldImagery.png'),
  tooltip: 'ArcGIS 地图服务',
  creationFunction: function () {
    //定义ImageryProvider
    return new Cesium.ArcGisMapServerImageryProvider({
      url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer',
      enablePickFeatures: false
    });
  }
});

//新增一个
this.providerViewModels = this.viewer.baseLayerPicker.viewModel.imageryProviderViewModels;
this.providerViewModels.push(this.esriMapModel);
this.viewer.baseLayerPicker.viewModel.imageryProviderViewModels = this.providerViewModels;

效果图如下:在这里插入图片描述

方案三:

cesium授权可参考

Cesium.Ion.defaultAccessToken='你的token';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值