Cesium中点的添加

2024-03-28 12:20
文章标签 中点 cesium

本文主要是介绍Cesium中点的添加,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Cesium,作为一款强大的三维地球和地图可视化框架,广泛应用于各种地理信息系统和仿真场景中。在Cesium中,点的添加不仅是对空间数据的基本操作,更是实现复杂空间分析、可视化表达的关键步骤。本文将围绕Cesium中添加点的过程、方法及其在实际应用中的意义展开论述。
在Cesium中添加点,首先需要明确点的空间位置信息,这通常包括经度、纬度和高程。通过Cesium提供的API,我们可以方便地创建和添加点对象。具体来说,我们可以使用Cesium的Entity API来创建一个包含Point Graphics的实体,并设置其位置、颜色和大小等属性。这样,一个具有空间位置属性的点就被添加到了Cesium的三维地球场景中。
添加点的过程中,我们还可以根据需要对点的外观进行定制。比如,通过改变点的颜色、大小等属性,可以使其更加突出或符合特定的视觉需求。此外,Cesium还支持对点进行动画效果的处理,如闪烁、渐变等,这进一步丰富了点的表达方式和视觉效果。
在实际应用中,Cesium中添加点的功能具有广泛的应用价值。首先,在地理信息系统中,点往往代表着各种地理要素,如城市、地标、交通节点等。通过添加点,我们可以直观地展示这些要素在地球表面的分布和位置关系,为决策分析提供直观的依据。其次,在仿真场景中,点可以用于表示各种动态对象,如飞行器、车辆等。通过实时更新点的位置信息,我们可以实现对这些动态对象的实时追踪和可视化展示。
除了基本的添加和展示功能外,Cesium还提供了丰富的空间分析工具,可以与点数据进行结合使用。例如,我们可以利用Cesium的空间查询功能,查找特定区域内的点数据,或者计算点与点之间的距离、面积等空间关系。这些功能不仅提高了空间数据的处理效率,也为复杂的空间分析提供了有力支持。
然而,值得注意的是,虽然Cesium在添加点方面功能强大且灵活,但在实际应用中仍需注意数据的准确性和合理性。错误的点数据不仅会影响视觉效果,还可能导致空间分析结果的偏差。因此,在添加点之前,我们需要对数据进行严格的预处理和校验,确保数据的准确性和可靠性。

  • 在ts文件中声明添加点的方法及配置项 utils/cesium.ts
import * as Cesium from "cesium";export default class CesiumTemplate {public static viewer: Cesium.Viewer;// 初始化public static init() {this.viewer = new Cesium.Viewer("cesiumContainer", {imageryProvider: new Cesium.UrlTemplateImageryProvider({url: "http://192.168.2.111:30911/google_0-9/{z}/{x}/{y}.jpg", //换成自己的地址maximumLevel: 9,}),animation: false, // 动画控件shouldAnimate: false, // 初始时刻运动homeButton: false, // Home按钮fullscreenButton: false, // 全屏按钮baseLayerPicker: false, // 图层选择控件geocoder: false, // 地名查找控件timeline: false, // 时间线控件shadows: false,navigationHelpButton: false, // 帮助信息控件infoBox: false, // 点击要素之后显示的信息 信息框小部件requestRenderMode: false, // true启用请求渲染模式:更新实体需拖动地图 视图才更新[true 加载完entity后requestRender一下]scene3DOnly: false, // 几何图形以3D模式绘制以节约GPU资源sceneMode: Cesium.SceneMode.SCENE3D, // 初始场景模式  3d 球maximumRenderTimeChange: 1,sceneModePicker: false, // 切换展示模式控件selectionIndicator: false,// 设置渲染orderIndependentTranslucency: false,contextOptions: {webgl: {alpha: true,},},});//去除 左下角 版权信息(this.viewer.cesiumWidget.creditContainer as HTMLElement).style.display = "none";// 相机位置this.viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(120, 48, 25000000),});//--------------------------------------const scene = this.viewer.scene;return this.viewer;}// 添加点public static addPoint(option:any) {let point = this.viewer.entities.add({name: option.name,position: Cesium.Cartesian3.fromDegrees(option.longitude,option.latitude,option.altitude),point: {// 点的大小(像素)pixelSize: 5,// 点位颜色,fromCssColorString 可以直接使用CSS颜色// color: Cesium.Color.fromCssColorString("red"),color: Cesium.Color.BLUE,// 边框颜色outlineColor: Cesium.Color.fromCssColorString("yellow"),// 边框宽度(像素)outlineWidth: 1,// 是否显示show: true,},// 文字label: {// 文本。支持显式换行符“ \ n”text: option.name,// 字体样式,以CSS语法指定字体font: "14pt Source Han Sans CN",// 字体颜色fillColor: Cesium.Color.AQUA,// 背景颜色backgroundColor: Cesium.Color.AQUA,// 是否显示背景颜色showBackground: false,// 字体边框// outline: true,// 字体边框颜色outlineColor: Cesium.Color.BLACK,// 字体边框尺寸outlineWidth: 10,// 应用于图像的统一比例。比例大于会1.0放大标签,而比例小于会1.0缩小标签。scale: 1,// 设置样式:FILL:填写标签的文本,但不要勾勒轮廓;OUTLINE:概述标签的文本,但不要填写;FILL_AND_OUTLINE:填写并概述标签文本。style: Cesium.LabelStyle.FILL_AND_OUTLINE,// 相对于坐标的垂直位置verticalOrigin: Cesium.VerticalOrigin.TOP,// 相对于坐标的水平位置horizontalOrigin: Cesium.HorizontalOrigin.CENTER,// 该属性指定标签在屏幕空间中距此标签原点的像素偏移量// pixelOffset: new Cesium.Cartesian2(-25, -20),// 是否显示show: true,}});return point;}}
  • 在vue文件中使用
<script setup lang="ts">
import { ref, onMounted } from "vue";
import CesiumTemplate from "@/utils/cesium";onMounted(async () => {//初始化cesiumconst viewer: Cesium.Viewer = CesiumTemplate.init();// 添加点CesiumTemplate.addPoint({name: "点",longitude: 130,latitude: 26,altitude: 1056,});
});</script>
<template><div id="cesiumContainer" />
</template>

效果图:
在这里插入图片描述

这篇关于Cesium中点的添加的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/855602

相关文章

我成功在本地打开了Cesium啦!

1首先下载Node.js,我是跟着这篇下载的,https://zhuanlan.zhihu.com/p/77594251,不过这后面的我没弄对Cesium环境配置也没影响。 另外:我看其他推文说,在终端写node -v和npm-v查node和npm的版本可以检测node和npm是否下载成功。 2然后我在CesiumB站官号看的教学视频,跟着下载Cesium源代码。 Cesium基础入门1-零

GIS圈大事件!Cesium被收购了,是好是坏?

大家好,我是日拱一卒的攻城师不浪,致力于技术与艺术的融合。这是2024年输出的第34/100篇文章。 Cesium开发交流群+V:brown_7778(备注来意) 一觉醒来,突然看到Cesium官方发的消息,宣布通过收购的方式加入Bentley软件公司。 可能小伙伴们对Bentley公司还不是很了解。 Bentley 是数字孪生领域的长期合作伙伴,也是开放生态系统的真正支持者。

Cesium 展示——实现昼夜交替

文章目录 需求分析1. 添加2. 移除 需求 Cesium 展示——实现昼夜交替 分析 1. 添加 <

cesium 使用异步函数 getHeightAtPoint,获取指定经纬度点的地形高度。

这个函数使用 CesiumJS 库的 sampleTerrain 方法来获取地形数据。下面是代码的详细解释: async getHeightAtPoint(LngLat) {// 将经纬度转为 Cartographic 对象let cartographics = [Cesium.Cartographic.fromDegrees(LngLat[0], LngLat[1])];// console.

Cesium中的pick

参考地址–cesium 中的cpupick 和 gpupick 总结: pick ray 射线是利用场景求交集,cpupick,所以可以每次把不需要的mesh 给排除scene pick 基于canvas 二维反算 三维世界坐标的是gpupick 效率会更高

Cesium 展示——绘制等值线图

文章目录 需求分析1. 在指定经纬度范围内进行绘制(两点之间的矩形)2. 在自定义范围内进行绘制(多点之间的不规则范围)升级版 资料 需求 分析 下载安装 引入 npm install cesiumnpm install @turf/turf import *

【GIS开发小课堂】vue3+Cesium.js三维WebGIS项目实战(一)

随着市场对数字孪生的需求日益增多,对于前端从业者的能力从对框架vue、react的要求,逐步扩展到2D、3D空间的交互,为用户提供更紧密的立体交互。近年来前端对GIS的需求日益增多。 本文档详细介绍了使用Vue3和Cesium.js构建三维WebGIS项目的步骤,涵盖Cesium的基础知识、项目搭建、坐标转换、相机系统、地图与地形加载、空间数据管理和交互等内容,旨在为前端开发者提供一个立体交互的

Open3D mesh 模型精细化处理--中点剖分

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 输入参数 输出参数 三、实现效果 3.1原始mesh 3.2精细化mesh Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、概述         在三维模型处理过程中,精细化处理(subdivision)是一个

Cesium加载高速公路样式线图层和利用CSS撰写高速公路样式

在ArcGIS软件中是将多个线图层叠加(宽的叠加在下方防止遮盖其他图层)    依照此想法在Cesium中加载高速公路线图层时 在 Cesium 中,直接设置线(如 Polyline)的样式为“高速公路样式”并不直接支持,因为 Cesium 没有内置的特定于高速公路的样式选项。不过,你可以通过自定义线的样式来模拟高速公路的外观,包括在线的外边界添加黑色描边。 要在 Cesium 中实现

利用cesium模拟台风移动路径——以利奇马台风为例

根据cesium官网示例(https://sandcastle.cesium.com/?src=Interpolation.html)改造为台风移动轨迹,台风数据从台风路径实时发布系统获取。模拟台风移动路径从台风发生地开始,动态移动至台风消亡地,之后从起点又开始循环移动。采用实体ellipse模拟台风的旋转,给椭圆背景material贴图,使用CallbackProperty设置rotation和