• Cesium对三维模型进行查询并弹框展示信息


    一、简介

    Cesium三维模型3dtiles,然后添加鼠标交互事件进行查询,弹出信息框。

    二、示例代码

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <link rel="stylesheet" href="./css/common.css">
    6. <title>
    7. 三维模型查询
    8. title>
    9. <script src="./js/config.js">script>
    10. <script src="./scripts/vue.min.js">script>
    11. <script type="text/javascript" src="../anov-gis-sdk/index.js">script>
    12. <link rel="stylesheet" href="../anov-gis-sdk/index.css">
    13. head>
    14. <body>
    15. <div id="cesiumContainer">
    16. div>
    17. body>
    18. html>
    19. <script>
    20. var app = new Vue({
    21. el: '#cesiumContainer',
    22. mounted() {
    23. // 初始化
    24. window.viewer = new ANOVGIS.Viewer("cesiumContainer", {
    25. vrButton: false,
    26. baseLayerPicker: true,
    27. fullscreenButton: true,
    28. homeButton: true,
    29. sceneModePicker: true,
    30. navigationHelpButton: true
    31. });
    32. ANOVGIS.WidgetsControl.showAllControls({
    33. });
    34. //影像
    35. var baselayer = ANOVGIS.ImageryLayerFactory.createImageryLayer(
    36. ANOVGIS.ImageryType.TDT, {
    37. style: "img",
    38. key: globalConfig.tdtKey
    39. }
    40. );
    41. viewer.addBaseImageryLayer(baselayer);
    42. // 三维模型加载
    43. let layer = new ANOVGIS.TilesetLayer();
    44. viewer.addLayer(layer);
    45. let tileset = new ANOVGIS.Tileset({
    46. url: 'http://172.16.223.165/gis-share/beijingchouxi/tileset.json',
    47. highlight: {//鼠标滑过样式
    48. color: "#ff0000"
    49. },
    50. selectedHighlight:{//点击选中效果
    51. color: "rgba(255,0.0,255,0.8)"
    52. }
    53. })
    54. // 设置模型样式
    55. const style = new ANOVGIS.TilesetStyle()
    56. style.color = {
    57. conditions: [
    58. ['Number(${floor}) >= 40', 'rgba(45, 0, 75, 0.5)'],
    59. ['Number(${floor}) >= 30', 'rgb(102, 71, 151)'],
    60. ['Number(${floor}) >= 20', 'rgb(170, 162, 204)'],
    61. ['Number(${floor}) >= 10', 'rgb(248, 176, 87)'],
    62. ['Number(${floor}) >= 5', 'rgb(198, 106, 11)'],
    63. ['true', 'rgb(127, 59, 8)'],
    64. ],
    65. }
    66. tileset.setStyle(style)
    67. layer.addGraphic(tileset);
    68. //绑定点击弹框
    69. layer.bindPopup({
    70. viewer: viewer,
    71. showTitle: true,
    72. useDefaultHtmlTemplate: true,//用默认模板
    73. });
    74. layer.addEventListener(ANOVGIS.MouseEventType.CLICK, (e) => {
    75. let infoData = {
    76. title: e.feature.getProperty('name1'),
    77. fieldsMap: [
    78. {
    79. nameC: '名称:',
    80. value: e.feature.getProperty('name1')
    81. }, {
    82. nameC: '楼层:',
    83. value: e.feature.getProperty('floor')
    84. }]
    85. }
    86. layer.popup.show(e.position, infoData);
    87. console.log(e);
    88. })
    89. // 绑定鼠标MOUSE_MOVE事件
    90. layer.bindTooltip({
    91. viewer: viewer,
    92. showTitle: true,
    93. offsetY: '-10',
    94. useDefaultHtmlTemplate: true,//用默认模板
    95. });
    96. layer.addEventListener(ANOVGIS.MouseEventType.MOUSE_MOVE, (e) => {
    97. let infoData = {
    98. title: e.feature.getProperty('name1'),
    99. fieldsMap: [
    100. {
    101. nameC: '名称:',
    102. value: e.feature.getProperty('name1')
    103. }, {
    104. nameC: '楼层:',
    105. value: e.feature.getProperty('floor')
    106. }]
    107. }
    108. layer.tooltip.show(e.position, infoData);
    109. })
    110. // 定位
    111. viewer.flyToTileset(tileset,2,0.5,-35);
    112. }
    113. });
    114. script>

  • 相关阅读:
    详细介绍百度ERNIE 2.0:A Continual Pre-Training Framework for Language Understanding
    FPGA解析B码----连载1
    新手小白适合做哪个跨境电商平台?测评自养号能带来哪些收益及优势?
    高效,可靠,安全的串口通讯开源方案
    卡尔曼滤波(2):让算法运转起来
    Java面向对象(封装,继承,多态,接口)
    详解诊断数据库ODX-C
    NOIP 2022 游记
    excel如何调整日期格式的方法
    Spring Cloud学习笔记(服务网关Zuul)
  • 原文地址:https://blog.csdn.net/u014556081/article/details/132971036