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

Viewer中的Entity功能

让我们看看Viewer为操作entities提供出来的功能函数。

选中和描述

点击Viewer中的entity将在entity的位置上呈现SelectionIndicator控件,提供一个InfoBox用于呈现更多的信息。我们可以设置name,来定义InfoBox的标题。我们也以HTML样式来提供Entity.description的属性。

wyoming

v2-1e32a6a14e30bdcb5da0d6abb53805a7_b.jpg

InfoBox中展示的所有HTML是沙盒式的。这组织了外部数据源带有恶意的注入到Cesium的应用程序中。为了在描述中运行JavaScript或浏览器插件,访问沙盒中的iframe通过viewer.infoBox.frame属性。参考该文 可以获得更多的信息用于控制iframe中的沙盒。

Camera控制

使用iewer.zoomto命令查看特定Entity。还有一个viewer.flyto方法,用于对Entity执行动画Camera飞行。这两种方法都可以传递给EntityEntityCollectionDataSource或实体数组。

任何一种方法都会计算所有提供的实体的视图。默认情况下,Camera朝向北方,并从45度角向下看。通过传入HeadingPitchrange自定义此项。

var 

[图片上传失败…(image-ae8bb6-1558490847491)]

zoomToflyTo都是异步函数;也就是说,它们不能保证在返回之前完成。例如,飞行到Entity会在许多动画帧后发生。这两个功能都返回Promises,可用于计划飞行或缩放完成后要执行的功能。用下面的代码片段替换示例中的zoomTo。这架飞机飞往怀俄明州,并在飞行结束后选中它。

viewer

如果航班飞行成功完成,则传递给回调函数的结果参数将为true;如果航班被取消,则结果参数将为false,即,在此航班完成之前,用户启动了另一个航班或缩放;或者,由于目标没有相应的可视化效果,即没有可缩放的对象。

有时,特别是在处理时间动态数据时,我们希望Camera聚焦跟随一个entity而不是地球的中心。可以通过设置viewer.trackedEntity完成。跟踪实体需要设置position

wyoming

停止跟踪需要设置viewer.trackedEntityundefined或远离entity双击屏幕即可。调用zoomToflyTo也可以取消跟踪。

管理Entities

EntityCollection是用于管理和监视一组实体的关联数组。viewer.entitiesEntityCollectionEntityCollection包括用于管理实体的方法,如addremoveremoveAll

有时我们需要更新我们以前创建的实体。所有实体实例都有一个唯一的id,可用于从集合中检索实体。我们可以为实体指定一个ID,否则将自动生成一个ID。

viewer

使用getByiId检索实体。如果不存在具有提供的ID的实体,则返回undefined

var 

要获取实体或创建新实体(如果不存在),请使用getOrCreateEntity

var 

手动创建新实体,然后使用add将其添加到集合中。如果集合中已存在具有相id的实体,则此方法将抛出异常。

var 

EntityCollection的功能使用CollectionChanged事件发光。当在集合中添加、删除或更新实体时,会通知监听器。

使用Sandcastle中的[Geometry Showcase]
(https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html?src=Geometry%20and%20Appearances.html&label=Showcases) 示例。在创建viewer的行后粘贴以下代码。

function 

运行该示例时,您应该在控制台中看到大约65条消息,每次调用viewer.entities.add时都会看到一条消息。

当一次更新大量的实体时,将队列更新结束后并在最后发送一个整体事件,这样更具性能。这样Cesium可以在一次通过中处理所需的变化。在示例末尾,在viewer.entities.add之前调用viewer.entities.suspendEvents,并调用viewer.entities.resumeEvents。当再次运行演示时,我们现在得到包含所有65个实体的单一事件。这些调用是引用计数的,因此可以嵌套多个挂起和恢复调用。

Picking 拾取

选择(单击选择一个对象)是我们需要与基本API进行短暂交互的领域之一。使用scene.pickscene.drillpick检索实体。

/**

Points, billboards, and labels(点、广告牌和标签)

通过设置positionpointlabel来创建图形点或标签。例如,在我们最喜欢的运动队的主体育场放置一个点。

var 

[图片上传失败…(image-9c705e-1558490847491)]

默认情况下,标签水平和垂直居中。由于标签和点共享相同的位置,它们在屏幕上重叠。为避免这种情况,请指定标签源Verticalorigin.BOTTOM并将像素偏移量设置为(0,-9)。
将该点替换为一个billboard,它是一个始终面向用户的标记。

var 

v2-9ffddae29cb8e2218d920ec61c85ed1f_b.jpg

有关更多自定义选项,请参见Sandcastle标签广告牌示例。

3D models (三维模型)

CesiumJS支持通过glTF(运行时asset format)创建3D模型。您可以在3D modelsSandcastle中找到示例模型。

将位置和URI设置为glTF 模型以创建模型实体。

var 

v2-ec2edeb333f82e2a6cfe8376fd36f9d5_b.jpg

默认情况下,模型是垂直的,面向东。通过为Entity.Orientation属性指定Quaternion来控制模型的方向。这将控制模型的heading、pitch和roll。

var 

有关更高级的模型功能,请参见3D模型教程。如果你创建自己的模型,一定要看到我们关于glTF Tips for Artists提示的帖子。

The property system(属性系统)

我们为实体定义的所有值都存储为property对象。例如,请参见怀俄明州大纲的值:

console

outlineConstantProperty的一个实例。本教程使用一种称为隐式属性转换(implicit property conversion)的速记形式,它自动获取原始值并在引擎盖下创建相应的Property。如果没有这个速记,我们将不得不编写一个更长版本的初始示例:

var 

之所以使用属性,是因为实体API不仅能够表示常量值,而且能够表示随时间变化的值。请参阅Callback Property和Interpolation Sandcastle示例,了解一些时间动态属性。

资源

有关如何使用GeoJSONCZML设置样式和创建实体的示例,请参阅Cesium Workshop Tutorial。

Cesium中文网交流QQ群:807482793

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

cesium加载entity图片缩放_Cesium中级教程4 – 空间数据可视化(二)相关推荐

  1. cesium加载entity图片缩放_教你使用最简单粗暴的js方法实现图片最小边展示

    实现图片的最小边展示,我们可以直接用background-size:cover;来解决,但是,background是毕竟不是img,如果想宽度固定,高度自适应还是比较难的,而直接用img,那么只能使用 ...

  2. cesium添加填充_Cesium中级教程1 - 空间数据可视化(一)

    Cesium中文网:http://cesiumcn.org/| 国内快速访问:http://cesium.coinidea.com/ 本教程将教读者如何使用Cesium的实体(Entity)API绘制 ...

  3. cesium 获取圆形边界位置_Cesium中级教程4 – 空间数据可视化(二)

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Viewer中的Entity功能 让我们看看Viewer为操作e ...

  4. 非专业无人机进行倾斜摄影并且通过cesium加载

    非专业无人机进行倾斜摄影并且通过cesium加载 前言 一.大疆御2Pro无人机操作 二.contextCapture进行数据处理 三.cesium加载倾斜摄影模型 总结 前言 大多数倾斜摄影都是用大 ...

  5. Cesium Billboard加载Gif图片

    Cesium Billboard加载Gif图片 实现效果 关键代码 loadGif(img) {this.superGif = new SuperGif({gif: img});this.superG ...

  6. cesium中的billboard加载在线图片报错Tainted canvases may not be loaded

    加载项目中的图片没有问题,加载在线图片的时候就会报错 解决方法: image.setAttribute('crossOrigin', 'anonymous'); 原因:canvas 绘制的时候在线图片 ...

  7. cesium加载 gltf模型

    cesium加载 gltf模型 首先自己配置一个iis环境 :http://www.xitongcheng.com/jiaocheng/win10_article_60912.html,其他环境 比如 ...

  8. cesium 加载科技感

    cesium 加载模型上边的呼吸感 // 设置透明度var alp = 1;var num = 0; 在model里边添加这个color参数 color:new Cesium.CallbackProp ...

  9. cesium加载批量模型

    cesium加载批量模型 class CreateModel {constructor() { }// 添加单条数据addEntity(item) {// 删除实体// viewer.entities ...

最新文章

  1. python 执行报错AttributeError: 'list' object has no attribute 'g'
  2. 四轴飞行器实践教程1.1.2飞行器的发展
  3. Linux命令之ln软链接
  4. window覆盖导航栏
  5. CVPR2020 Oral | 旷视研究院提出双边分支网络BBN:攻坚长尾分布的现实世界任务
  6. 结对编程项目的过程记录与收获
  7. 陈玉林是哪里人_玉林仿古砖公司在哪里
  8. 数据结构上机实践第二周项目1
  9. 数据库优化案例——————某知名零售企业ERP系统
  10. STM32CubeMX学习笔记(26)——SDIO接口使用(读写SD卡)
  11. 012 外接功放喇叭模块
  12. gulp打包报错 “Error: Unhandled ‘error‘ event at new JS_Parse_Error”
  13. Kubernetes 为何称为 K8s?
  14. java垃圾回收器有哪些_各种Java垃圾回收器的比较总结
  15. iOS 中如何识别图片清晰度
  16. 利用Python的全国旅游景点数据分析案例(新手)
  17. CISSP考点拾遗——软件保障SwA
  18. html鼠标经过图片轻微左移,CSS——鼠标滑过放大/左移
  19. HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试
  20. java基础入门ppt_Java基础入门.ppt

热门文章

  1. 读芯术python教程答案_攻略Python的免费书单:走进编程,从这五本书开始
  2. 做自适应网站专业乐云seo_什么叫网站优化-网站建设-SEO优化
  3. 九年级数学解方程50道_【初中数学】北师大版九年级上册数学知识点总结
  4. fp算法例题_机器学习(九)—FP-growth算法
  5. python如何读取kepsever_python linecache读取过程
  6. linux删除文件_Linux删除文件夹用什么命令
  7. linux 查看socket fd,linux socket中select()函数以及FD_ZERO FD_SET FD_CLR FD_ISSET
  8. java tls 实例_grpc加密TLS初体验(go、java版本)
  9. cdh mysql sqoop 驱动_大数据技术之Sqoop学习——原理、安装、使用案例、常用命令...
  10. 火狐怎么放大页面?火狐浏览器页面放大技巧