首页 > 其他分享 >cesium-2-entity

cesium-2-entity

时间:2023-04-27 18:11:48浏览次数:50  
标签:entity Cesium add boolean dataSource cesium id

1、四层结构


viewer --> datasources(DataSourceCollection类型) --> datasource --> entities(EntityCollection类型) --> entity


需要学习的方向是:只需要注意每个层与层之间的关系和entity实例如何创建即可

2、DataSourceCollection

增:
add(dataSource) → Promise.<DataSource>
删:(destroy一般为boolean,指是否需要直接销毁该datasource)
remove(dataSource, destroy) → boolean
removeAll(destroy)
查:
indexOf(dataSource) → number
getByName(name) → Array.<DataSource>
get(index) → DataSource
contains(dataSource) → boolean
改:
该类型数据一般是指向型,直接调出属性直接修改即可
改变层级关系(特殊):
lower(dataSource)
lowerToBottom(dataSource)
raise(dataSource)
raiseToTop(dataSource)

3、datasource

这是一个抽象类,有各种实现方式
image
一般只会用到他的三个属性:entities、name和show

4、entities(EntityCollection类型)

增:
add(entity) → Entity
getOrCreateEntity(id) → Entity
删:
removeAll()
removeById(id) → boolean
remove(entity) → boolean
查:
contains(entity) → boolean
getById(id) → Entity|undefined
改:

重要属性:

id : string
owner : DataSource|CompositeEntityCollection
show : boolean
values : Array.<Entity>  // 全部的entity

5、创建新的entity

一些实例:
https://www.jianshu.com/p/4250e822c9c8

6、代码

需要注意的是这里的add()方法得到的是<promise.类型>,后面需要使用.then(成功函数,失败函数)来得到类型
add(dataSource) → Promise.<DataSource>
这种类怎么创建和怎么用见:
https://blog.csdn.net/ABCFF12333/article/details/118188018

  // 注意add()方法得到的是<promise.类型>,后面需要使用.then(成功函数,失败函数)来得到类型
  // 注意这是异步方法
  viewer.dataSources.add(new Cesium.CustomDataSource("pointDataSource1")).then(function(value){
    var pointDataSource = value;
    pointDataSource.show = true;
    var point1 = pointDataSource.entities.add({
      id: "point1",
      name: "point1",
      position: Cesium.Cartesian3.fromDegrees(109, 34, 0),
      point: {
        pixelsize: 10,
        color: Cesium.Color.YELLOW,
        outlineWidth: 2,
        outlineColor: Cesium.Color.RED
      }
    });
    var point2 = pointDataSource.entities.add({
      id: "point2",
      name: "point2",
      position: Cesium.Cartesian3.fromDegrees(110, 35, 0),
      point: {
        pixelsize: 10,
        color: Cesium.Color.YELLOW,
        outlineWidth: 2,
        outlineColor: Cesium.Color.RED
      }
    })
  },function(error){})

  viewer.dataSources.add(new Cesium.CustomDataSource("polygonDatasource")).then(function(value){
    var polygonDatasource = value;
    polygonDatasource.show = true;
    polygonDatasource.entities.add({
      id: "polygon1",
      name: "polygon1",
      polygon: {
        hierarchy: Cesium.Cartesian3.fromDegreesArray([
          109.080842, 45.002073,
          105.91517, 45.002073,
          104.058488, 44.996596,
          104.053011, 43.002989,
          104.053011, 41.003906,
          105.728954, 40.998429,
          107.919731, 41.003906,
          109.04798, 40.998429,
          111.047063, 40.998429,
          111.047063, 42.000709,
          111.047063, 44.476286,
          111.05254, 45.002073,
          109.080842, 45.002073
        ]),
        height: 10,  // 必须要有高度,否则没有边框
        material: Cesium.Color.GREEN,
        outline: true,
        outlineColor: Cesium.Color.RED,
        outlineWidth: 2,
        fill: true
      }
    })
  },function(error){})
})

标签:entity,Cesium,add,boolean,dataSource,cesium,id
From: https://www.cnblogs.com/CoderWangEx/p/17359352.html

相关文章

  • 解决 c3p0报错 Establishing SSL connection without server's identity verification
    解决c3p0报错EstablishingSSLconnectionwithoutserver'sidentityverificationisnotrecommended  ?useSSL=false<c3p0-config><default-config><propertyname="driverClass">com.mysql.jdbc.Driver</property>......
  • cesium-1-加载影像数据和影像数据基础知识
    1、影像数据的图层类有哪些viewer-->imageryLayers(ImageryLayerCollection类型)-->ImageryLayer类型-->ImageryProvider抽象类viewer下有ImageryLayerCollection类型的imageryLayers用来存放影像数据(可多个),只能是ImageryLayer类型变量(包含影像数据但除了影像数据之外还有......
  • 【Azure 应用服务】启用 Managed Identity 登录 SQL Server 报错 Managed Identity au
    问题描述在AppService中启用Identity后,使用系统自动生成Identity。使用如下代码连接数据库SQLServer:SQLServerDataSourcedataSource=newSQLServerDataSource();dataSource.setServerName("yoursqlservername.database.chinacloudapi.cn");//Replacewit......
  • Cesium之Web Workers
    1.引言多线程是编程中常用的方法,例如,在桌面程序中,主线程一般是UI线程,负责UI绘制与用户交互,而运算处理往往是交给背后的工作线程,这样可以有效避免交互时的卡顿感浏览器是多进程的,每打开一个网页,都会开启一个渲染进程,渲染进程包含:GUI渲染线程(有且只有一个)JS引擎线程(有且......
  • Cesium加载ArcGIS Server4490且orgin -400 400的切片服务
    Cesium在使用加载Cesium.ArcGisMapServerImageryProvider加载切片服务时,默认只支持wgs84的4326坐标系,不支持CGCS2000的4490坐标系。如果是ArcGIS发布的4490坐标系的切片服务,如果原点在orginX:-180.0Y:90.0的情况下,我们可以通过WebMapTileServiceImageryProvider按照WMTS的方式......
  • eNotInDatabase,btr.AppendEntity(attNew);必须在AddNewlyCreatedDBObject前面
     publicstaticvoidAddAttsToBlock(thisObjectIdblockId,List<AttributeDefinition>atts,boolcopyEntity=false){EntityattNew;Databasedb=blockId.Database;//获取数据库对象//打开块表记录为写......
  • 【JPA】LocalContainerEntityManagerFactoryBean与EntityManger的关系
    @Autowired@Qualifier("primaryEntityManagerFactory")privateEntityManagerprimaryEntityManager;@Primary@Bean(name="primaryEntityManagerFactory")publicLocalContainerEntityManagerFactoryBeanprimaryEntityManagerFactory(Entit......
  • 第五讲 Weldentity分布式身份解决方案、智能合约初探
    什么是智能合约1996年,NickSzabo在文章《SmartContracts:BuildingBlocksForDigitalMarkets》中提出了智能合约的概念所谓“合约”,就是条文、合同一类的东西,里面记录了发生的条件与对应执行的条款,以支持确权等操作;所谓”智能”,就意味着自动化、可编程。所以,智能合约就是......
  • 猛读论文13 |【CVPR 2022 UDA】Unleashing Potential of Unsupervised Pre-Training w
    动机解决(1)对比学习管道中的增强通常会扭曲人物图像中的判别线索(2)细粒度的局部特征人物图像尚未得到充分探索。 思路    方法 ......
  • cesium源码编译调试及调用全过程
    完整记录一次cesium源码从下载、打包、调用、调试的全过程。本文使用软件或API版本:VSCodeNode:12.18.3cesium版本:1.94总体步骤:下载源码执行npminstall和npmstart启动web服务打包源码(打包前可以先将申请到的cesium的token更改到ion.js文件中的默认值中)运行测试html页面......