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

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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

西安邮电大学卓越班c语言面试题,西安邮电大学C语言实验报告.docx

西 安 邮 电 学 院C语言程序设计课内实验报 告 书学院名称:计算机学院学生姓名:刘辉娟专业名称:计算机科学与技术班 级:计科1106学号:时间:2011-11-20至2011-11-30实验题目 数组一、????实验目的&#…

python 模糊匹配_很冷门,但非常实用的 Python 库

Python 是一个很棒的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了在开发人员职位中和跨行业的数据科学职位中的实用性。整个 Python 及其库的生态系统使它成为全世界用户(初学者和高级用户)的合适选择。它的成功和流行的原因之一是它强…

ccf魔数c语言,ccf 201609-4 交通规划

附上代码&#xff1a;#include#include#include#include#include#includeusing namespacestd;#define inf 0xfffffffintn, m;typedefstructNODE{intto;intcost;friendbool operator < (const NODE &a, const NODE &b) {return a.cost >b.cost;}}node;typedefstru…

python数据可视化是什么_Python数据分析:可视化

本文是《数据蛙三个月强化课》的第二篇总结教程&#xff0c;如果想要了解数据蛙社群&#xff0c;可以阅读对于我们数据分析师来说&#xff0c;不仅要自己明白数据背后的含义&#xff0c;而且还要给老板更直观的展示数据的意义。所以&#xff0c;对于这项不可缺少的技能&#xf…

c语言主函数名用户指定,C语言允许main函数带形参,且形参个数和形参名均可由用户指定。()...

听力原文&#xff1a;W: Oh, Ken, I have been meaning to talk to you.M: Hi, Denise! Whats up?W: I have this great job lined up to manage a clothing store at the mall.M: Oh, say in detail, please.W: Well, one of the professors in my department just told me a…

ENSP配置 实例一 不同VLAN间通信

ENSP配置 实例一 不同VLAN间通信 SW1 [SW1]vlan batch 10 20 [SW1]interface g0/0/1 [SW1-GigabitEthernet0/0/1]port link-type access [SW1-GigabitEthernet0/0/1]port default vlan 10 [SW1-GigabitEthernet0/0/1]int g0/0/2 [SW1-GigabitEthernet0/0/2]port link-type acce…

用python绘制心形_python小趣味_520绘制一个心形.

#!/usr/bin/env python#coding:utf-8 importturtleimporttime#画爱心的顶部 defLittleHeart():for i in range(200): turtle.right(1) turtle.forward(2)#输入表白的语句&#xff0c;默认I Love you love input(Please enter a sentence of love, otherwise the default is &q…

ENSP配置 实例二 单臂路由配置

ENSP配置 实例二 单臂路由配置 单臂路由配置 配置 路由&#xff1a; interface EigabitEthernet0/0/0 ip address 10.0.1.1 24 interface EigabitEthernet0/0/0.1 dot1q termination vid 10 ip address 192.168.1.254 24 arp broadcast enable interface EigabitEthernet0/0/…

用python画数学函数图像教程_Python 绘制你想要的数学函数图形

Python 非常热门&#xff0c;但除非工作需要没有刻意去了解更多&#xff0c;直到有个函数图要绘制&#xff0c;想起了它。结果发现&#xff0c;完全用不着明白什么是编程&#xff0c;就可以使用它完成很多数学函数图的绘制。 通过以下两个步骤&#xff0c;就可以进行数学函数的…

ENSP配置 实例三 静态路由配置

ENSP配置 实例三 静态路由配置 R1配置命令 system-view [R1]interface Ethernet 0/0/0 [R1-Ethernet0/0/0]ip add 192.168.1.254 24 [R1-Ethernet0/0/0]quit [R1]interface tEthernet 0/0/1 [R1-Ethernet0/0/1]ip addr 10.0.12.1 24 [R1-Ethernet0/0/1]quit [R1]ip route-stati…

单片机 c语言 概念题,(C语言版)单片机复习题.doc

单片机复习题一、名词解释1、时序&#xff1a;按照时间顺序显示的对象(或引脚、事件、信息)序列关系。2、指令&#xff1a;CPU用于指挥功能部件完成某一指定动作的指示和命令。3、变量&#xff1a;在程序执行过程中&#xff0c;数值可以发生改变的量称为变量。4、伪指令&#x…

python 散点图 不同颜色_python – pandas – 每个点都有不同颜色图例的散点图

以下方法将根据您的数据框创建颜色列表,然后使用每种颜色的标签绘制一个点&#xff1a; import matplotlib.pyplot as plt import matplotlib.cm as cm import matplotlib.colors as colors import numpy as np import pandas as pd fig, ax plt.subplots() df pd.DataFrame(…

ENSP配置 实例四 默认路由配置

ENSP默认路由配置 1&#xff0c;配置R1路由器 sys ##进入系统视图模式 [Huawei]sys R1 ##修改名字 [R1]int e0/0/0 ##进入接口 [R1-Ethernet0/0/0]ip add 192.168.1.254 24 ##配置ip地址 [R1-Ethernet0/0/0]undo shut ##开启物理接口 [R1-Ethernet0/0/1]int e0/0/1 [R1-Etherne…

套汇算法c语言,在金字塔下实现套利策略的测评

瀑布线是指用异同移动平均线(MACD)指标绘制的移动平均线&#xff0c;用于在证券中生成买入和卖出信号。瀑布线或信号线是交易者用来预测未来价格趋势的MACD指标线的九个周期指数移动平均线(EMA)。虽然九周期EMA是瀑布线的默认设置&#xff0c;但交易者可以调整EMA的长度以适应其…

python数据分析函数大全_python中数据分析常用函数整理

一. apply函数 作用&#xff1a;对 DataFrame 的某行/列应用函数之后&#xff0c;Apply 返回一些值。函数既可以使用默认的&#xff0c;也可以自定义。注意&#xff1a;在第二个输出中应用 head() 函数&#xff0c;因为它包含了很多行。 #创建一个新函数 def num_missing(x): r…

ENSP配置 实例五 RIP配置

ENSP配置 实例五 RIP配置 配置 R1 sy [Huawei]sy R1 [R1]int e0/0/0 [R1-Ethernet0/0/0]ip add 192.168.1.254 24 [R1-Ethernet0/0/0]int e0/0/1 [R1-Ethernet0/0/1]ip add 10.0.12.1 24 [R1-Ethernet0/0/1]q [R1]rip 1 [R1-rip-1]network 192.168.1.0 [R1-rip-1]network 10.0.…

如何用c语言读文件,如何用C语言读写文件

打开文件fopen("需要打开的路径")然后使用fgets函数读取行#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX_LINE1024 intmain() { charbuf[MAX_LINE]; /*缓冲区*/ FILE*fp; /*文件指针*/ intlen; /*行字符个数*/if((…

ENSP配置 实例六 OSPF配置

ENSP配置 实例六 OSPF配置 R1 [R1]interface e0/0/0 [R1-Ethernet0/0/0]ip add 192.168.1.254 24 [R1-Ethernet0/0/0]int e0/0/1 [R1-Ethernet0/0/1]ip add 10.0.12.1 24 [R1]ospf 1 router-id 1.1.1.1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.…

python用户登录_python用户登录系统

本文实例为大家分享了用户登录系统python实现代码&#xff0c;供大家参考&#xff0c;具体内容如下 注意事项&#xff1a; 1、使用python3执行程序。按提示输入1或2&#xff0c;登录或退出程序 2、输入用户名后&#xff0c;如果用户名被锁定及无效用户名&#xff0c;程序会退出…

ENSP配置 实例七 DHCP配置

ENSP配置 实例七 DHCP配置 简单dhcp配置 [R]dhcp enable [R-Ethernet0/0/0]ip add 192.168.1.254 24 [R]ip pool 1 [R-ip-pool-1]network 192.168.1.0 mask 24 [R-ip-pool-1]gateway-list 192.168.1.254 ##配置出口网关地址 [R-ip-pool-1]dns-list 1.1.1.1 [R-Ethernet0/0/0]dh…