码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • cesium 自定义气泡 类


    1. class CesiumPopupClass {
    2. constructor(viewer, options) {
    3. this.viewer = viewer
    4. this.position = options.position;
    5. this.options = this.extend({}, options);
    6. var popupContainer = document.createElement("div");
    7. popupContainer.classList.add('popup');
    8. var popupInner = '
      标题
      内容
      '
      ;
    9. popupContainer.innerHTML = popupInner;
    10. popupContainer.style.display = 'none';
    11. viewer.cesiumWidget.container.appendChild(popupContainer);
    12. popupContainer.style.cssText = "display: none;position: absolute;left: 0;top: 0;min-width: 200px;z-index:9999;";
    13. this.popupContainer = popupContainer;
    14. // 初始化
    15. this.init();
    16. }
    17. init() {
    18. if (this.position) {
    19. this.popupContainer.style.display = 'block'
    20. this.renderListener = this.viewer.scene.postRender.addEventListener(this.render, this)
    21. }
    22. }
    23. render() {
    24. var ellipsoid = this.viewer.scene.globe.ellipsoid;
    25. var geometry = Cesium.Cartesian3.fromDegrees(
    26. this.position[0],
    27. this.position[1],
    28. 0,
    29. ellipsoid
    30. );
    31. if (!geometry) return
    32. var position = Cesium.SceneTransforms.wgs84ToWindowCoordinates(this.viewer.scene, geometry)
    33. if (!position) {
    34. return
    35. }
    36. if (this.popupContainer) {
    37. this.popupContainer.style.left = position.x - this.popupContainer.offsetWidth / 2 + 'px'
    38. this.popupContainer.style.top = position.y - this.popupContainer.offsetHeight - 10 + 'px'
    39. }
    40. }
    41. remove() {
    42. if (this.popupContainer) {
    43. this.popupContainer.parentNode.removeChild(this.popupContainer)
    44. this.popupContainer = null
    45. }
    46. if (this.renderListener) {
    47. this.renderListener()
    48. this.renderListener = null
    49. }
    50. if (this.viewer) {
    51. this.viewer = null
    52. }
    53. }
    54. extend(obj, obj2) {
    55. for (var k in obj2) {
    56. obj[k] = obj2[k];
    57. }
    58. return obj;
    59. }
    60. }
    61. let p1 = new CesiumPopupClass(viewer, {
    62. position: [112.57482863, 26.81853529]
    63. })
    64. let p2 = new CesiumPopupClass(viewer, {
    65. position: [112.57524924, 26.81874033]
    66. })
    67. p2.remove();

  • 相关阅读:
    使用 oh-my-posh 美化 windows terminal,让其接近oh-my-zsh
    Mysql与Oracle分页查询差异
    Seata(1.4.2)环境搭建-SpringCloudAlibaba微服务
    长沙夜经济,每天双十一
    Tomact目录结构的介绍
    Curator实现zookeeper分布式锁
    php学习笔记
    UE4打包发布后,在Windows和Android平台上访问非Asset文件
    【未完待续】计算机组成与体系结构第三次试验:微程序控制器实验
    链动2+1模式:如何快速吸引用户并提高用户留存率?
  • 原文地址:https://blog.csdn.net/songJunFeng1/article/details/134527237
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号