Cesium快速上手4-Polylines图元使用讲解

本文详细介绍了Cesium库中Polyline的各种类型,如空间直线、恒向线、罗经线等,以及它们在地图上的表示和实际应用,如导航中的路线绘制。同时涵盖了发光、带边框、箭头和虚线等不同样式。

Polyline & Cesium.PolylineCollection

在这里插入图片描述
ArcType 线段的类型
在这里插入图片描述
以下逐步介绍:

  1. 空间直线(无弧度) Cesium.ArcType.NONE
    空间直线很好理解,两点之间没有弧度,与球面是二维还是三维没有关系

  2. 球面线段
    球面距离是球面上两点之间的最短连线的长度,就是经过这两点的大圆在这两点间的一段劣弧的长度。(大圆就是经过球心的平面截球面所得的圆)
    在这里插入图片描述

  3. 恒向线
    首先来看它的特性:

1.在墨卡托投影图上显示为直线
2.与每一子午线相交成同一角度
在这里插入图片描述

我们知道球体(例如地球)表面上两点之间的最短距离是一个大圆。导航的时候,要驶过一个真正的大圆圈,需要不断改变转向的路线。在大多数情况下,对于短距离航行而言,大圆弧路线和恒向线路线之间的长度差异很小。在高纬度或长途航行中,差异可能很大。在那种情况下,导航员通常将大圆航线分成一系列短的恒向线,以便舵手可以转向一次之后,几个小时不用转方向。

1.两点直接连线

const redLine = viewer.entities.add({
   
   
  name: "Red line on terrain",
  polyline: {
   
   
    positions: Cesium.Cartesian3.fromDegreesArray([-75, 35, -125, 35]),
    width: 5,
    material: Cesium.Color.RED,
    clampToGround: true,
  },
});

2.罗经线

const greenRhumbLine = viewer
<think>首先,用户的问题是:“我想用户想知道是否可以在原生Cesium使用Vue-Cesium组件 请问原生 Cesium 是否兼容 vue-cesium 组件”。这似乎是关于Cesium和Vue-Cesium的兼容性。 从系统级指令中,我需要: - 所有行内数学表达式用$...$格式。 - 独立公式用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,如[^1]。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考站内引用:引用[1], [2], [3], [4]。 站内引用内容: - 引用[1]: 关于Cesium和Vue-Cesium的介绍。 - 引用[2]: 关于在Vue中集成原生Cesium的配置。 - 引用[3]: Vue + Cesium + Ant Design Vue Pro的配置教程。 - 引用[4]: Vue2 + Cesium 1.89.0使用cesium-navigation-es6的教程。 用户的问题是:原生Cesium是否兼容vue-cesium组件?意思是,能否在原生Cesium项目中使用Vue-Cesium组件。 关键点: - 原生Cesium:指纯JavaScript的Cesium库。 - Vue-Cesium:是一个Vue组件库,用于在Vue应用中封装Cesium功能。 在原生Cesium中直接使用Vue-Cesium组件可能不合适,因为Vue-Cesium是为Vue框架设计的。它封装了Cesium的功能,使其易于在Vue组件中使用。 从引用中: - 引用[1]提到Vue for Cesium是一个框架,帮助简化开发。 - 引用[2]和[3]讨论了如何在Vue项目中集成原生Cesium- 引用[4]是关于在Vue中使用Cesium插件。 所以,原生Cesium是纯JS库,而Vue-Cesium是一个Vue组件库。它们不是直接兼容的;Vue-Cesium依赖于Vue框架。 回答结构: 1. 澄清概念:解释原生Cesium和Vue-Cesium是什么。 2. 兼容性问题:直接说明是否兼容。 3. 替代方案:建议如何在原生Cesium使用类似功能,或如何在Vue项目中集成。 4. 引用相关引用以支持观点。 5. 生成相关问题。 最终回答: - 使用中文。 - 结构清晰。 - 添加引用标识。 - 生成相关问题。 逐步回答: 1. 介绍原生Cesium和Vue-Cesium。 2. 解释兼容性:原生Cesium是独立的JS库,Vue-Cesium是为Vue设计的组件,因此不能在原生Cesium中直接使用Vue-Cesium组件。 3. 建议:如果要在原生Cesium使用,可能需要手动集成或使用其他方法;如果使用Vue,可以集成原生Cesium或直接使用Vue-Cesium4. 引用相关部分:例如,引用[2]和[3]展示了如何在Vue中配置原生Cesium。 5. 生成相关问题。 相关问题生成: - 基于主题:Cesium、Vue、兼容性。 - 例如: 1. 如何在原生Cesium项目中集成Vue组件? 2. Vue-Cesium的主要优势是什么? 3. 在Vue中使用原生Cesium的步骤是什么? 4. 有哪些替代方案来简化Cesium开发? 确保回答真实可靠:基于常识和提供的引用。</think>### 原生 Cesium 是否兼容 vue-cesium 组件? 原生 Cesium 是一个独立的 JavaScript 库,专注于高性能 3D 地理空间可视化,它不依赖于任何前端框架(如 Vue)[^1]。而 vue-cesium 是一个专门为 Vue.js 框架设计的组件库,它封装了 Cesium 的功能,提供声明式组件以简化开发。因此,**原生 Cesium 无法直接兼容 vue-cesium 组件**,原因如下: 1. **架构差异**: - 原生 Cesium 是纯 JavaScript API,需要通过 DOM 操作和事件监听手动集成到页面中。 - vue-cesium 是基于 Vue 的封装,依赖 Vue 的响应式系统和组件生命周期。在原生 Cesium 环境中,Vue 的虚拟 DOM 和组件机制无法直接运行[^1]。 2. **依赖关系**: - vue-cesium 要求项目基于 Vue.js 框架(如 Vue 2 或 Vue 3),而原生 Cesium 项目通常是纯 HTML/JS 应用。如果强行在原生 Cesium 中引入 vue-cesium 组件,会导致依赖冲突(如 Vue 未加载)或渲染错误[^2][^3]。 3. **替代方案**: - **在 Vue 项目中集成原生 Cesium**:如果您希望结合 Vue 的便利性和 Cesium 的功能,可以参考引用[2][^2]和[3][^3]的方法,通过 Webpack 配置(如 `DefinePlugin`)和全局注册,将原生 Cesium 嵌入 Vue 应用。例如: ```javascript // main.js 配置(Vue 项目) import Cesium from 'cesium/Cesium'; import 'cesium/Widgets/widgets.css'; Vue.prototype.Cesium = Cesium; // 全局挂载 ``` 这样可在 Vue 组件中使用原生 Cesium API,而无需 vue-cesium- **使用 vue-cesium 在 Vue 项目中**:如果目标是简化开发,建议直接采用 vue-cesium 库,它提供预封装组件(如地图视图、相机控制),减少学习曲线[^1]。 总之,原生 Cesium 和 vue-cesium 设计目标不同,无法直接互用。选择方案取决于项目框架:纯 JS 项目用原生 Cesium;Vue 项目可选用原生集成或 vue-cesium 以提升效率[^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值