当前位置: 首页 > news >正文

Cesium入门6 - Adding Imagery - 添加图层

Cesium入门6 - Adding Imagery - 添加图层

Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/

Cesium应用程序另一个关键元素是Imagery(图层)。瓦片图集合根据不同的投影方式映射到虚拟的三维数字地球表面。依赖于相机指向地表的方向和距离,Cesium会去请求和渲染不同层级的图层详细信息。

多种图层能够被添加、移除、排序和适应到Cesium中。

Cesium提供了一系列方法用于处理图层,比如颜色自适应,图层叠加融合。一些样例代码如下:

  • Adding basic imagery添加基本图层
  • Adjusting imagery colors自适应图层颜色
  • Manipulating and ordering imagery layers控制调整图层顺序
  • Splitting imagery layers切割图层

Cesium提供了各种接口支持各样的图层数据源。

支持的图层格式

  1. wms
  2. TMS
  3. WMTS (with time dynamic imagery)
  4. ArcGIS
  5. Bing Maps
  6. Google Earth
  7. Mapbox
  8. OpenStreetMap

注意:不同的数据源需要不同的认证 - 需要确保自己能够有权限访问到这些数据源,自然地需要注册特定的认证才可以

默认地,Cesium使用Bing Maps作为默认的图层。这个图层被打包进Viewer中用于演示。Cesium需要您自己创建ion account然后生成一个access key用于访问图层数据。

在接下来的例子中,将使用Cesium ion中的Sentinel-2图层。

  1. 去Cesium ion页面,将Sentinel-2图层加入到自己的assets中。点击在导航栏中点击“Asset Depot”
    5b72806f29a29.png

  2. 点击“Add to my assets”。Sentinel-2将在你个人用户中的asset列表(My Assets)中出现,此时将在个人的app中图层数据源变得可用。

  3. 代码级别:我们创建一个IonImageryProvider,将assetId传给对应的Sentinel-2图层。然后我们将ImageryProvider添加到viewer.imageryLayers

// Remove default base layer
viewer.imageryLayers.remove(viewer.imageryLayers.get(0));

// Add Sentinel-2 imagery
viewer.imageryLayers.addImageryProvider(new Cesium.IonImageryProvider({ assetId : 3954 }));

基于上述的代码,我们的Cesium应用程序在缩进zoom in的时候会看到如下图层:
5b728084c2e52.jpg

关于图层的更多信息:请访问Imagery Layers Tutorial

Cesium中文网交流QQ群:807482793

Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/

转载于:https://www.cnblogs.com/cesiumjs/p/9982997.html

相关文章:

  • Python 一行代码完成局域网文件共享
  • RN—Android 物理返回键监听
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • python的单、双、多分支流程控制
  • 浏览器被2345主页劫持
  • flex布局学习1
  • windows系统-phpstudy升级mysql8.0.12安装教程及修改密码和安装注意事项
  • laravel 用artisan创建自己的模板
  • 老鸟程序员才知道的40个小技巧
  • 前端性能优化——回流与重绘
  • 新手搭建网站的主要流程
  • python爬虫笔记-day1
  • 简便安装mysql数据库的方法
  • Scrum立会报告+燃尽图(十一月二十五日总第三十三次):展示博客
  • Android 性能优化的方面方面都在这儿
  • 2017-08-04 前端日报
  • Docker: 容器互访的三种方式
  • js 实现textarea输入字数提示
  • JS函数式编程 数组部分风格 ES6版
  • linux学习笔记
  • Linux中的硬链接与软链接
  • Lsb图片隐写
  • MySQL几个简单SQL的优化
  • python 装饰器(一)
  • Python中eval与exec的使用及区别
  • Webpack 4 学习01(基础配置)
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 从tcpdump抓包看TCP/IP协议
  • 分享一份非常强势的Android面试题
  • 日剧·日综资源集合(建议收藏)
  • 我有几个粽子,和一个故事
  • 06-01 点餐小程序前台界面搭建
  • # Maven错误Error executing Maven
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • ***原理与防范
  • *p++,*(p++),*++p,(*p)++区别?
  • .naturalWidth 和naturalHeight属性,
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • //解决validator验证插件多个name相同只验证第一的问题
  • @Autowired注解的实现原理
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @RequestBody与@ResponseBody的使用
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [2021 蓝帽杯] One Pointer PHP
  • [BIZ] - 1.金融交易系统特点
  • [BT]BUUCTF刷题第8天(3.26)
  • [bzoj4240] 有趣的家庭菜园
  • [c]统计数字
  • [C++]unordered系列关联式容器
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.
  • [GXYCTF2019]BabyUpload1 -- 题目分析与详解
  • [HackMyVM]靶场Boxing