翼度科技»论坛 编程开发 JavaScript 查看内容

cesium-2-entity

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
1、四层结构

viewer --> datasources(DataSourceCollection类型) --> datasource --> entities(EntityCollection类型) --> entity
需要学习的方向是:只需要注意每个层与层之间的关系和entity实例如何创建即可
2、DataSourceCollection

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

这是一个抽象类,有各种实现方式

一般只会用到他的三个属性: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
改:
  
重要属性:
  1. id : string
  2. owner : DataSource|CompositeEntityCollection
  3. show : boolean
  4. values : Array.<Entity>  // 全部的entity
复制代码
5、创建新的entity

一些实例:
https://www.jianshu.com/p/4250e822c9c8
6、代码

需要注意的是这里的add()方法得到的是,后面需要使用.then(成功函数,失败函数)来得到类型
add(dataSource) → Promise.
这种类怎么创建和怎么用见:
https://blog.csdn.net/ABCFF12333/article/details/118188018
  1.   // 注意add()方法得到的是<promise.类型>,后面需要使用.then(成功函数,失败函数)来得到类型
  2.   // 注意这是异步方法
  3.   viewer.dataSources.add(new Cesium.CustomDataSource("pointDataSource1")).then(function(value){
  4.     var pointDataSource = value;
  5.     pointDataSource.show = true;
  6.     var point1 = pointDataSource.entities.add({
  7.       id: "point1",
  8.       name: "point1",
  9.       position: Cesium.Cartesian3.fromDegrees(109, 34, 0),
  10.       point: {
  11.         pixelsize: 10,
  12.         color: Cesium.Color.YELLOW,
  13.         outlineWidth: 2,
  14.         outlineColor: Cesium.Color.RED
  15.       }
  16.     });
  17.     var point2 = pointDataSource.entities.add({
  18.       id: "point2",
  19.       name: "point2",
  20.       position: Cesium.Cartesian3.fromDegrees(110, 35, 0),
  21.       point: {
  22.         pixelsize: 10,
  23.         color: Cesium.Color.YELLOW,
  24.         outlineWidth: 2,
  25.         outlineColor: Cesium.Color.RED
  26.       }
  27.     })
  28.   },function(error){})
  29.   viewer.dataSources.add(new Cesium.CustomDataSource("polygonDatasource")).then(function(value){
  30.     var polygonDatasource = value;
  31.     polygonDatasource.show = true;
  32.     polygonDatasource.entities.add({
  33.       id: "polygon1",
  34.       name: "polygon1",
  35.       polygon: {
  36.         hierarchy: Cesium.Cartesian3.fromDegreesArray([
  37.           109.080842, 45.002073,
  38.           105.91517, 45.002073,
  39.           104.058488, 44.996596,
  40.           104.053011, 43.002989,
  41.           104.053011, 41.003906,
  42.           105.728954, 40.998429,
  43.           107.919731, 41.003906,
  44.           109.04798, 40.998429,
  45.           111.047063, 40.998429,
  46.           111.047063, 42.000709,
  47.           111.047063, 44.476286,
  48.           111.05254, 45.002073,
  49.           109.080842, 45.002073
  50.         ]),
  51.         height: 10,  // 必须要有高度,否则没有边框
  52.         material: Cesium.Color.GREEN,
  53.         outline: true,
  54.         outlineColor: Cesium.Color.RED,
  55.         outlineWidth: 2,
  56.         fill: true
  57.       }
  58.     })
  59.   },function(error){})
  60. })
复制代码
来源:https://www.cnblogs.com/CoderWangEx/p/17359352.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具