目录

  • 项目地址
  • 实现效果
  • 实现方法
    • 方式1:heightReference属性
    • 方式2:sampleTerrainMostDetailed方法

项目地址

https://github.com/zhengjie9510/webgis-demo

实现效果

实现方法

方式1:heightReference属性

使用 Billboard 自带的 heightReference 属性实现贴地。该方法的好处是实现简单,但如果数据量巨大(50000以上),加载会比较慢。
使用该方法需要在创建 BillboardCollection 时指定 scene 属性。

const collection = new Cesium.BillboardCollection({ scene: viewer.scene })

并在创建 Billboard 时将 heightReference 设置为 CLAMP_TO_GROUND。

collection.add({position: position,image: pinBuilder.fromColor(Cesium.Color.fromRandom({ alpha: 1.0 }), 20).toDataURL(),verticalOrigin: Cesium.VerticalOrigin.BOTTOM,horizontalOrigin: Cesium.HorizontalOrigin.CENTER,heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
})

方式2:sampleTerrainMostDetailed方法

如果数据量较大,另一种可行的方法是先使用 sampleTerrainMostDetailed 获取点的高程,并存储到数据库中,之后直接从数据库中读取数据。该方式只在高程采样时较慢,后面的加载会非常快,比较适用于大量数据的加载显示。

// 1、生成大量随机点
const points = randomPoint(500, { bbox: [100, 25, 102, 27] })
// 2、Cartographic数组
const positions = []
for (let point of points.features) {const coordinates = point.geometry.coordinatesconst position = Cesium.Cartographic.fromDegrees(coordinates[0], coordinates[1])positions.push(position)
}
// 3、高程采样
const pinBuilder = new Cesium.PinBuilder();
const collection = new Cesium.BillboardCollection()
const terrainProvider = viewer.terrainProvider
const promise = Cesium.sampleTerrainMostDetailed(terrainProvider, positions);
Promise.resolve(promise).then(function (updatedPositions) {for (let position of updatedPositions) {collection.add({position: Cesium.Cartesian3.fromRadians(position.longitude, position.latitude, position.height),image: pinBuilder.fromColor(Cesium.Color.fromRandom({ alpha: 1.0 }), 20).toDataURL(),verticalOrigin: Cesium.VerticalOrigin.BOTTOM,horizontalOrigin: Cesium.HorizontalOrigin.CENTER,})}viewer.scene.primitives.add(collection)
});

Cesium加载大量广告牌并实现贴地相关推荐

  1. 初次转化max模型为3D Tiles失败、cesium加载一个obj格式的3D 机房模型

    先下一个3D max模型,后缀为.max:用3D max打开:网上下的其他模型查看器不能打开: 打开时会出错误提示:对max模型文件和3d max还不了解: 打开后如下:是一个机房的3D模型: 下载一 ...

  2. 首次使用Cesium加载3D数据不成功

    接此: https://blog.csdn.net/bcbobo21cn/article/details/110454547 参阅相关教程:Cesium加载3D数据是通过3D Tiles进行: 3D ...

  3. cesium 加载网格

    cesium 加载网格 // -------------------------------------- ---------------------------------加载网格--------- ...

  4. cesium加载 gltf模型

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

  5. cesium 加载科技感

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

  6. cesium加载批量模型

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

  7. cesium加载arcgis切片

    cesium 加载arcmap切片 jpg // z 是缩放级别 x是从左到右 y是从上到下 var imageryUrl = '/images/{z}/{x}/{y}.jpg';//影像数据var ...

  8. cesium 加载Googl式的切片

    cesium 加载Googl式的切片 首先配置个iis本地服务器 把项目放到iis服务器路径里边 代码 var viewer = new Cesium.Viewer('cesiumContainer' ...

  9. CESIUM加载glb的模型

    CESIUM加载glb的模型 1.首先有一个glb格式的模型 // 加载gltf的模型 //url模型路径 可以是.glb或者gltf等,height距地高度0为贴地 function createM ...

最新文章

  1. 湖北生态工程职业技术学院计算机分数线,湖北生态工程职业技术学院录取分数线2021是多少分(附历年录取分数线)...
  2. react 调用组件方法_React源码分析1 — 组件和对象的创建(createClass,createElement)...
  3. elasticsearch api中的Bulk API操作
  4. 机器学习的简单逻辑回归的Advanced Optimization
  5. 我的世界服务器虚拟菜单插件,《我的世界》服务器快捷菜单插件怎么用?
  6. nagios数据 mysql_读取NAGIOS数据库至MYSQL
  7. Laravel 安装mysql、表增加模拟数据、生成控制器
  8. python forward(10)什么意思-Python turtle.forward方法代码示例
  9. 如何调整iMindMap打印设置
  10. 通用权限系统快速开发框架
  11. 【集群仿真】基于matlab固定翼无人机集群仿真演示平台【含Matlab源码 1497期】
  12. 【高频电子线路】[模型]阻抗变换与阻抗匹配(第2章 谐振功率放大器)
  13. html求相关系数,相关系数,确定系数(R^2)计算公式与在线计算器_三贝计算网_23bei.com...
  14. 怎样取消手机QQ浏览器自动推送新闻广告
  15. 百度搜索引擎都有哪些算法
  16. xlsx文件 wps 可以打开 excel 打不开
  17. 魅族ROOT在线申请地址
  18. html5 状态栏颜色怎么改,iOS 修改状态栏颜色的3种方式
  19. 中心移动平均_时间序列模型:移动平均 用Excel预测(4)
  20. python 笔记:打开nii格式(nibabel 库)

热门文章

  1. 厦门大学计算机专业考研真题,厦门大学2002年考研真题-计算机数据结构
  2. 如何从频域的角度解释CNN(卷积神经网络)?
  3. 如何创建Windows网络计划任务
  4. 上海给排水阀门标准,给排水阀门尺寸,给排水阀门原理
  5. android通知栏自定义view,android WindowManager addView 仿悬浮式通知栏
  6. 戏曲app开发,展现戏曲行业发展新生机
  7. 前沿信息:回流焊温度曲线的设定
  8. php异步处理shell,如何在Linux和Windows环境中使用PHP执行Shell命令而无需等待结果(异步)...
  9. Rust入坑指南:智能指针
  10. sonoff开关改装件控制(1)