cesium面板动态显示并跟随移动
生活随笔
收集整理的這篇文章主要介紹了
cesium面板动态显示并跟随移动
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我的需求,首先顯示一個billboard,點(diǎn)擊billboard后,在旁邊顯示一個div面板,并且該面板隨著地圖拖拽也能進(jìn)行相對運(yùn)動。
概要實現(xiàn)步驟:
1、自定義div面板,面板需要設(shè)置id值
2、使用我自己定義的函數(shù),進(jìn)行定位。
export function htmlFixed(viewer, domId) {const htmlOverlay = document.getElementById(domId);const scratch = new Cesium.Cartesian2();viewer.scene.preRender.addEventListener(function () {let position = Cesium.Cartesian3.fromDegrees(118.6672441346, 32.0120094599, 100);let canvasPosition = viewer.scene.cartesianToCanvasCoordinates(position, scratch);if (Cesium.defined(canvasPosition)) {htmlOverlay.style.top = canvasPosition.y + 'px';htmlOverlay.style.left = canvasPosition.x + 'px';}}); }其實原理就是根據(jù)定位錨點(diǎn)在cesium地球中的位置,計算出面板在canvas中的相對位置,最后使用style進(jìn)行定位。
官方參考demo
https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=HTML%20Overlays.html&label=Tutorials
總結(jié)
以上是生活随笔為你收集整理的cesium面板动态显示并跟随移动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下scrt依赖包libssl1
- 下一篇: 微信8.0.0中的[烟花]\[炸弹]原来