cesium核心类Viewer简介
来源:互联网 发布:单片机怎么才学的好 编辑:程序博客网 时间:2024/05/16 07:32
1.简单描述Viewer
Viewer类是cesium的核心类,是地图可视化展示的主窗口,cesium程序应用的切入口,扮演必不可少的核心角色。
官网的英文解析如下:
A base widget for building applications. It composites all of the standard Cesium widgets into one reusable package. The widget can always be extended by using mixins, which add functionality useful for a variety of applications
2.Viewer对象创建以及参数解析
new Cesium.Viewer(container, options);
container参数类型type:Element |String
描述(一般是地图主窗口div的ID):The DOM element or ID that will contain the widget
options对象,里面属性值特别多,详细的参数见:http://cesiumjs.org/refdoc.html;
个人觉的Viewer类options参数常用的属性值,其他的用默认值即可:
this.cesiumViewer = new Cesium.Viewer(divId, { animation:false, //动画控制,默认true baseLayerPicker:true,//地图切换控件(底图以及地形图)是否显示,默认显示true fullscreenButton:true,//全屏按钮,默认显示true geocoder:false,//地名查找,默认true timeline:false,//时间线,默认true vrButton:true,//双屏模式,默认不显示false homeButton:true,//主页按钮,默认true infoBox:false,//点击要素之后显示的信息,默认true selectionIndicator:true,//选中元素显示,默认true imageryProviderViewModels:this._getImageryViewModels(options.mapInitParams.imageryViewModels),//设置影像图列表
terrainProviderViewModels:this._getTerrainViewModels(options.mapInitParams.terrainViewModels)//设置地形图列表 });
1)animation,是否显示动画效果控件,默认true
设置false,动画效果控件不可见
2)timeline,是否显示时间轴控件,默认true
设置false,时间轴控件不可见
3)baseLayerPicker,是否显示底图切换控件,默认true
设置false
4)fullscreenButton,是否显示地图全屏控件,默认true
设置false,地图全屏控件不可见
5)geocoder,是否显示地名查找控件,默认true
设置false,地名查找控件不可见
6) vrButton,是否显示地图双屏控件,默认false
设置true
7)homeButton,是否显示主页控件,默认true
设置false,主页控件不可见
8)infoBox,是否显示cesium默认气泡窗口控件,默认true
设置false,气泡窗口控件不可见
9) selectionIndicator,是否显示选中地图元素标识控件,默认true
设置false,地图元素标识控件不可见
10) imagerProviderViewModels,设置地图切换控件绑定底图数据源,跟baseLayerPicker属性设置true配合使用
备注:这里的imagerProviderViewModels参数要是不设置的话,默认会自动创建一组在线地图底图服务的数据源,假如想要配置一些自己服务器发布的地图服务的话,应该自己设置一组地图服务数据源来替换;
11) terrainProviderViewModels,设置地图切换控件绑定地形图数据源,跟baseLayerPicker属性设置true配合使用
备注:这里的terrainProviderViewModels参数要是不设置的话,默认会自动创建一组在线地形图服务的数据源,假如想要配置一些自己服务器发布的地形图服务的话,应该自己设置一组地形图数据源来替换;
3.附上设置底图服务数据源以及地形图数据源设置的函数
/** * 获取地形图配置列表 * @method _getTerrainViewModels * @param models 配置文件中的地形图列表 * @return terrainViewModels */ _getTerrainViewModels:function(models){ var terrainViewModels = []; var viewer = this.cesiumViewer; if(models && models.length>0){ for(var i=0;i<models.length;i++){//默认最多能识别配置2个地形图信息 var model = models[i]; switch (i) { case 0: var terrain = _createProviderViewModel(models[0]); terrainViewModels.push(terrain); break; case 1: var terrain = _createProviderViewModel(models[1]); terrainViewModels.push(terrain); break; default: break; } } } return terrainViewModels; /** * 创建ProviderViewModel * @method _createProviderViewModel * @param model,配置文件地形图信息 * @return 返回指定地形图ProviderViewModel */ function _createProviderViewModel(model){ return new Cesium.ProviderViewModel( { name : model.name, iconUrl : Cesium.buildModuleUrl(model.iconUrl), tooltip : model.name, creationFunction : function() { return _createTerrainProvider(model); } }); } /** * 创建指定地形图数据源 * @method _createTerrainProvider * @param model,配置文件地形图信息 * @return 返回指定地形图数据源 */ function _createTerrainProvider(model){ var provider ={}; if(model.proxyUrl && model.proxyUrl.length>0) provider = {proxy:new Cesium.DefaultProxy(model.proxyUrl),url:model.Url,requestWaterMask:model.requestWaterMask}; else provider = {url:model.Url,requestWaterMask:model.requestWaterMask}; return new Cesium.CesiumTerrainProvider(provider); } }, /** * 获取切换地图服务配置列表 * @method _getImageryViewModels * @param models 配置文件中的底图服务列表 * @return imageryViewModels */ _getImageryViewModels:function(models){ var imageryViewModels = []; var viewer = this.cesiumViewer; if(models && models.length>0){ for(var i=0;i<models.length;i++){//默认最多能识别配置地图信息文件的8个底图服务 var model = models[i]; switch (i) { case 0: var imagery = _createProviderViewModel(models[0]); imageryViewModels.push(imagery); break; case 1: var imagery = _createProviderViewModel(models[1]); imageryViewModels.push(imagery); break; case 2: var imagery = _createProviderViewModel(models[2]); imageryViewModels.push(imagery); break; case 3: var imagery = _createProviderViewModel(models[3]); imageryViewModels.push(imagery); break; case 4: var imagery = _createProviderViewModel(models[4]); imageryViewModels.push(imagery); break; case 5: var imagery = _createProviderViewModel(models[5]); imageryViewModels.push(imagery); break; case 6: var imagery = _createProviderViewModel(models[6]); imageryViewModels.push(imagery); break; case 7: var imagery = _createProviderViewModel(models[7]); imageryViewModels.push(imagery); break; default: break; } } } return imageryViewModels; /** * 创建ProviderViewModel * @method _createProviderViewModel * @param model,配置文件地图信息 * @return 返回指定地图服务类型的ProviderViewModel */ function _createProviderViewModel(model){ return new Cesium.ProviderViewModel( { name : model.name, iconUrl : Cesium.buildModuleUrl(model.iconUrl), tooltip : model.name, creationFunction : function() { return _createImageryProvider(model); } }); } /** * 创建指定地图服务类型的地图数据源,比如ArcGisMapServer、OpenStreetMap、BingMaps、MapBox、TileMapService、WebMapTileService等等 * @method _createImageryProvider * @param model,配置文件地图信息 * @return 返回指定地图服务类型的地图数据源 */ function _createImageryProvider(model){ var provider ={}; if(model.proxyUrl && model.proxyUrl.length>0) provider = {proxy : new Cesium.DefaultProxy(model.proxyUrl),url : model.Url}; else provider = {url : model.Url}; switch (model.type) { case 0://ArcGisMapServerImageryProvider return new Cesium.ArcGisMapServerImageryProvider(provider); break; case 1://OpenStreetMapImageryProvider return Cesium.createOpenStreetMapImageryProvider(provider); break; default: return new Cesium.ArcGisMapServerImageryProvider(provider); break; } } }
GitHub:GIS之家GitHub
GIS作品:GIS之家
QQ兴趣部落:GIS之家部落
GIS项目交流群:238339408
GIS之家交流群一:432512093(已满)
GIS之家交流群二:296438295
- cesium核心类Viewer简介
- Cesium之Viewer
- Cesium学习(一)Viewer类及imageryProvider介绍
- Cesium简介
- Cesium viewer 最常用的控件 API
- Cesium 学习记录(2) 初始化Viewer
- Cesium学习(1):简介
- ARKit-核心类简介
- Cesium中ModelGraphics类
- Cesium中Color类
- Cesium
- Cesium简介以及离线部署运行
- Cesium简介以及离线部署运行
- cesium学习记录(二)- 可视化空间数据Viewer 中的Entity
- Flex Viewer 解析(一)Flex Viewer简介
- Oracle ADF Hierarchy Viewer控件使用简介
- ArcGIS Viewer for Silverlight 系列:简介
- Spring Security——核心类简介
- Hive窗口函数总结
- 安卓定位服务API指南
- linux下gdb调试
- java写入文件的几种方法分享
- javascript中一切皆对象?基本数据类型也是对象吗?
- cesium核心类Viewer简介
- 几个例子说明JAVA中的equals和==区别
- win7文件夹或文件已在另一个程序中打开
- 机器学习之—最小二乘问题
- java中File类的使用方法
- CDH配置启动flume
- CCUserDefault存放路径
- STM8S类型单片机UART一直进入接收中断问题解决方案
- os.mkdir()调用时出现WindowsError:[Error 5]