将mars3D导入自己的项目中

news2024/11/15 21:45:44

文章目录

    • Mars3D官方文档
  • 一、打开自己的vite项目
  • 二、创建场景配置文件
    • 1.json文件
    • 路径 `public\config\config.json`
    • 2.创建组件定义文件
    • 路径 `src\components\mars-work\mars-map.vue`
    • 三、demo中引入
    • 四、必要样式 依赖文件
  • 总结

Mars3D官方文档

一、打开自己的vite项目

我创建了一个新的 结构如下
在这里插入图片描述

二、创建场景配置文件

1.json文件

路径 public\config\config.json

在这里插入图片描述

config.json实例数据

{
    "map3d": {
        "scene": {
            "center": {
                "lat": 31.686288,
                "lng": 117.229619,
                "alt": 11333.9,
                "heading": 359.2,
                "pitch": -39.5
            },
            "scene3DOnly": false,
            "shadows": false,
            "removeDblClick": true,
            "sceneMode": 3,
            "showSun": true,
            "showMoon": true,
            "showSkyBox": true,
            "showSkyAtmosphere": true,
            "fog": true,
            "fxaa": true,
            "requestRenderMode": true,
            "globe": {
                "depthTestAgainstTerrain": false,
                "baseColor": "#546a53",
                "showGroundAtmosphere": true,
                "enableLighting": false
            },
            "contextOptions": {
                "webgl": {
                    "preserveDrawingBuffer": true
                }
            },
            "cameraController": {
                "zoomFactor": 3.0,
                "minimumZoomDistance": 1,
                "maximumZoomDistance": 50000000,
                "enableRotate": true,
                "enableTranslate": true,
                "enableTilt": true,
                "enableZoom": true,
                "enableCollisionDetection": true,
                "minimumCollisionTerrainHeight": 15000
            }
        },
        "control": {
            "homeButton": true,
            "baseLayerPicker": false,
            "sceneModePicker": true,
            "vrButton": false,
            "fullscreenButton": true,
            "navigationHelpButton": true,
            "animation": false,
            "timeline": false,
            "infoBox": false,
            "geocoder": false,
            "selectionIndicator": false,
            "showRenderLoopErrors": true,
            "contextmenu": {
                "hasDefault": true
            },
            "mouseDownView": true,
            "zoom": {
                "insertIndex": 1
            },
            "compass": {
                "bottom": "toolbar",
                "left": "5px"
            },
            "distanceLegend": {
                "left": "100px",
                "bottom": "2px"
            },
            "locationBar": {
                "crs": "CGCS2000_GK_Zone_3",
                "crsDecimal": 0,
                "template": "<div>经度:{lng}</div> <div>纬度:{lat}</div> <div class='hide1000'>横{crsx}  纵{crsy}</div> <div>海拔:{alt}米</div> <div class='hide700'>层级:{level}</div><div>方向:{heading}°</div> <div>俯仰角:{pitch}°</div><div class='hide700'>视高:{cameraHeight}米</div>"
            }
        },
        "templateValues": {
            "dataServer": "//data.mars3d.cn",
            "gltfServerUrl": "//data.mars3d.cn/gltf"
        },
        "terrain": {
            "url": "//data.mars3d.cn/terrain",
            "show": true,
            "clip": true
        },
        "basemaps": [
            {
                "id": 10,
                "name": "地图底图",
                "type": "group"
            },
            {
                "id": 2021,
                "pid": 10,
                "name": "谷歌影像",
                "icon": "/img/basemaps/google_img.png",
                "type": "google",
                "layer": "img_d",
                "show": true
            },
            {
                "pid": 10,
                "name": "天地图影像",
                "icon": "img/basemaps/tdt_img.png",
                "type": "group",
                "layers": [
                    {
                        "name": "底图",
                        "type": "tdt",
                        "layer": "img_d"
                    },
                    {
                        "name": "注记",
                        "type": "tdt",
                        "layer": "img_z"
                    }
                ],
                "show": false
            },
            {
                "pid": 10,
                "name": "天地图电子",
                "icon": "img/basemaps/tdt_vec.png",
                "type": "group",
                "layers": [
                    {
                        "name": "底图",
                        "type": "tdt",
                        "layer": "vec_d"
                    },
                    {
                        "name": "注记",
                        "type": "tdt",
                        "layer": "vec_z"
                    }
                ]
            },
            {
                "pid": 10,
                "name": "高德影像",
                "type": "group",
                "icon": "img/basemaps/gaode_img.png",
                "layers": [
                    {
                        "name": "底图",
                        "type": "gaode",
                        "layer": "img_d"
                    },
                    {
                        "name": "注记",
                        "type": "gaode",
                        "layer": "img_z"
                    }
                ]
            },
            {
                "pid": 10,
                "name": "高德电子",
                "type": "gaode",
                "icon": "img/basemaps/gaode_vec.png",
                "layer": "vec"
            },
            {
                "pid": 10,
                "name": "百度影像",
                "type": "group",
                "icon": "img/basemaps/bd-img.png",
                "layers": [
                    {
                        "name": "底图",
                        "type": "baidu",
                        "layer": "img_d"
                    },
                    {
                        "name": "注记",
                        "type": "baidu",
                        "layer": "img_z"
                    }
                ]
            },
            {
                "pid": 10,
                "name": "百度电子",
                "icon": "img/basemaps/bd-vec.png",
                "type": "baidu",
                "layer": "vec"
            },
            {
                "pid": 10,
                "name": "腾讯影像",
                "icon": "img/basemaps/tencent_img.png",
                "type": "group",
                "layers": [
                    {
                        "name": "底图",
                        "type": "tencent",
                        "layer": "img_d"
                    },
                    {
                        "name": "注记",
                        "type": "tencent",
                        "layer": "img_z"
                    }
                ]
            },
            {
                "pid": 10,
                "name": "腾讯电子",
                "icon": "img/basemaps/tencent_vec.png",
                "type": "tencent",
                "layer": "vec"
            },
            {
                "pid": 10,
                "name": "ArcGIS影像",
                "icon": "img/basemaps/esriWorldImagery.png",
                "type": "xyz",
                "url": "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
                "enablePickFeatures": false
            },
            {
                "pid": 10,
                "name": "微软影像",
                "icon": "img/basemaps/bingAerial.png",
                "type": "bing",
                "layer": "Aerial"
            },
            {
                "id": 2017,
                "pid": 10,
                "name": "蓝色底图",
                "icon": "/img/basemaps/bd-c-midnight.png",
                "type": "gaode",
                "layer": "vec",
                "chinaCRS": "GCJ02",
                "invertColor": true,
                "filterColor": "#4e70a6",
                "brightness": 0.6,
                "contrast": 1.8,
                "gamma": 0.3,
                "hue": 1,
                "saturation": 0
            },
            {
                "pid": 10,
                "name": "黑色底图",
                "icon": "/img/basemaps/bd-c-dark.png",
                "type": "gaode",
                "layer": "vec",
                "chinaCRS": "GCJ02",
                "invertColor": true,
                "filterColor": "#909090",
                "brightness": 0.6,
                "contrast": 1.8,
                "gamma": 0.3,
                "hue": 1,
                "saturation": 0
            },
            {
                "pid": 10,
                "name": "离线影像地图 (供参考)",
                "icon": "/img/basemaps/google_img.png",
                "type": "xyz",
                "url": "{dataServer}/tile/img/{z}/{x}/{y}.jpg",
                "chinaCRS": "GCJ02",
                "maximumLevel": 13
            },
            {
                "pid": 10,
                "name": "单张图片 (本地离线)",
                "icon": "img/basemaps/offline.png",
                "type": "image",
                "url": "//data.mars3d.cn/file/img/world/world.jpg"
            },
            {
                "id": 2023,
                "pid": 10,
                "name": "无底图",
                "icon": "/img/basemaps/null.png",
                "type": "grid",
                "color": "#ffffff",
                "alpha": 0.03,
                "cells": 2
            }
        ],
        "layers": [
            {
                "id": 50,
                "name": "辅助图层",
                "type": "group"
            },
            {
                "pid": 50,
                "type": "graticule",
                "name": "经纬网"
            },
            {
                "pid": 50,
                "name": "行政区划界线",
                "type": "tdt",
                "layer": "xzqh",
                "mapSplit": false
            },
            {
                "pid": 50,
                "name": "高德实时路况",
                "type": "gaode",
                "layer": "time",
                "minimumTerrainLevel": 4,
                "minimumLevel": 4,
                "proxy": "//server.mars3d.cn/proxy/",
                "mapSplit": false
            },
            {
                "pid": 50,
                "name": "百度实时路况",
                "type": "baidu",
                "layer": "time",
                "mapSplit": false
            },
            {
                "id": 60,
                "name": "地形",
                "type": "group"
            },
            {
                "pid": 60,
                "type": "terrain",
                "name": "Cesium地形",
                "terrainType": "ion",
                "radio": true
            },
            {
                "pid": 60,
                "type": "terrain",
                "name": "Mars3D地形",
                "terrainType": "xyz",
                "url": "{dataServer}/terrain",
                "radio": true
            },
            {
                "pid": 60,
                "type": "terrain",
                "name": "ArcGIS地形",
                "terrainType": "arcgis",
                "url": "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer",
                "radio": true
            },
            {
                "pid": 60,
                "type": "terrain",
                "name": "无地形",
                "terrainType": "none",
                "radio": true
            },
            {
                "id": 40,
                "name": "栅格数据",
                "type": "group"
            },
            {
                "id": 4020,
                "pid": 40,
                "name": "OGC WMS服务",
                "type": "group"
            },
            {
                "pid": 4020,
                "name": "教育设施点",
                "type": "wms",
                "url": "//server.mars3d.cn/geoserver/mars/wms",
                "layers": "mars:hfjy",
                "crs": "EPSG:4326",
                "parameters": {
                    "transparent": "true",
                    "format": "image/png"
                },
                "popup": "名称:{项目名称}<br />类型:{设施类型}<br />面积:{用地面积}亩<br />位置:{具体位置}",
                "mapSplit": false,
                "show": false,
                "flyTo": true
            },
            {
                "pid": 4020,
                "name": "道路线",
                "type": "wms",
                "url": "//server.mars3d.cn/geoserver/mars/wms",
                "layers": "mars:hfdl",
                "crs": "EPSG:4326",
                "parameters": {
                    "transparent": "true",
                    "format": "image/png"
                },
                "center": {
                    "lat": 31.743214,
                    "lng": 117.277097,
                    "alt": 47197.7,
                    "heading": 0.3,
                    "pitch": -78.8
                },
                "popup": "all",
                "mapSplit": false,
                "show": false,
                "flyTo": true
            },
            {
                "pid": 4020,
                "name": "建筑物面",
                "type": "wms",
                "url": "//server.mars3d.cn/geoserver/mars/wms",
                "layers": "mars:hfjzw",
                "crs": "EPSG:4326",
                "parameters": {
                    "transparent": "true",
                    "format": "image/png"
                },
                "highlight": {
                    "showTime": 5000,
                    "fill": true,
                    "color": "#2deaf7",
                    "opacity": 0.6,
                    "outline": true,
                    "outlineWidth": 3,
                    "outlineColor": "#e000d9",
                    "outlineOpacity": 1.0,
                    "clampToGround": true
                },
                "center": {
                    "lat": 31.79513,
                    "lng": 117.236172,
                    "alt": 3784.6,
                    "heading": 0.7,
                    "pitch": -42.2
                },
                "popup": "all",
                "show": false,
                "flyTo": true
            },
            {
                "pid": 4020,
                "name": "规划面",
                "type": "wms",
                "url": "//server.mars3d.cn/geoserver/mars/wms",
                "layers": "mars:hfgh",
                "crs": "EPSG:4326",
                "parameters": {
                    "transparent": "true",
                    "format": "image/png"
                },
                "center": {
                    "lat": 31.743214,
                    "lng": 117.277097,
                    "alt": 47197.7,
                    "heading": 0.3,
                    "pitch": -78.8
                },
                "popup": "all",
                "show": false,
                "flyTo": true
            },
            {
                "id": 4030,
                "pid": 40,
                "name": "ArcGIS 瓦片",
                "type": "group"
            },
            {
                "pid": 4030,
                "name": "合肥规划图",
                "type": "arcgis_cache",
                "url": "{dataServer}/arcgis_cache/hfgh/_alllayers/{z}/{y}/{x}.png",
                "minimumLevel": 1,
                "maximumLevel": 17,
                "minimumTerrainLevel": 1,
                "maximumTerrainLevel": 17,
                "rectangle": {
                    "xmin": 116.846,
                    "xmax": 117.642,
                    "ymin": 31.533,
                    "ymax": 32.185
                }
            },
            {
                "id": 4010,
                "pid": 40,
                "name": "ArcGIS Dynamic",
                "type": "group"
            },
            {
                "id": 401085,
                "pid": 4010,
                "type": "arcgis",
                "name": "主要道路",
                "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer",
                "layers": "24",
                "highlight": {
                    "type": "polyline",
                    "color": "#2deaf7",
                    "width": 4,
                    "clampToGround": true
                },
                "center": {
                    "lat": 31.814176,
                    "lng": 117.225362,
                    "alt": 5105.3,
                    "heading": 359.2,
                    "pitch": -83.1
                },
                "popup": "all",
                "onWidget": "layer-picture-heatmap",
                "mapSplit": false
            },
            {
                "id": 401086,
                "pid": 4010,
                "type": "arcgis",
                "name": "建筑物",
                "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer",
                "layers": "35,36,37,39",
                "highlight": {
                    "fill": true,
                    "color": "#2deaf7",
                    "opacity": 0.6,
                    "outline": true,
                    "outlineWidth": 3,
                    "outlineColor": "#e000d9",
                    "outlineOpacity": 1.0,
                    "clampToGround": true
                },
                "center": {
                    "lat": 31.816951,
                    "lng": 117.22898,
                    "alt": 2916.7,
                    "heading": 0.3,
                    "pitch": -78.8
                },
                "popup": "名称:{NAME}<br />层数:{floor}",
                "onWidget": "layer-picture-heatmap"
            },
            {
                "id": 401087,
                "pid": 4010,
                "type": "arcgis",
                "name": "规划",
                "url": "//server.mars3d.cn/arcgis/rest/services/mars/guihua/MapServer",
                "highlight": {
                    "showTime": 5000,
                    "fill": true,
                    "color": "#2deaf7",
                    "opacity": 0.6,
                    "outline": true,
                    "outlineWidth": 3,
                    "outlineColor": "#e000d9",
                    "outlineOpacity": 1.0,
                    "clampToGround": true
                },
                "center": {
                    "lat": 31.816951,
                    "lng": 117.22898,
                    "alt": 2916.7,
                    "heading": 0.3,
                    "pitch": -78.8
                },
                "popup": [
                    {
                        "field": "用地名称",
                        "name": "名称"
                    },
                    {
                        "field": "用地编号",
                        "name": "编号"
                    },
                    {
                        "field": "规划用地",
                        "name": "规划"
                    },
                    {
                        "type": "html",
                        "html": "<div style='text-align: right;color: #ff0000;padding-right: 10px;'>数据仅供参考</div>"
                    }
                ],
                "popupNoTitle": true,
                "onWidget": "layer-picture-guihua"
            },
            {
                "id": 30,
                "name": "矢量数据",
                "type": "group"
            },
            {
                "id": 3030,
                "pid": 30,
                "name": "GeoJSON数据",
                "type": "group"
            },
            {
                "id": 303011,
                "pid": 3030,
                "type": "geojson",
                "name": "平台标绘",
                "url": "{dataServer}/file/geojson/mars3d-draw.json",
                "popup": "{type}{name}",
                "show": false,
                "flyTo": true
            },
            {
                "pid": 3030,
                "type": "geojson",
                "name": "用地规划",
                "url": "{dataServer}/file/geojson/guihua.json",
                "symbol": {
                    "styleOptions": {
                        "opacity": 0.6,
                        "color": "#0000FF",
                        "width": 3,
                        "clampToGround": true
                    },
                    "styleField": "类型",
                    "styleFieldOptions": {
                        "一类居住用地": {
                            "color": "#FFDF7F"
                        },
                        "二类居住用地": {
                            "color": "#FFFF00"
                        },
                        "社区服务用地": {
                            "color": "#FF6A38"
                        },
                        "幼托用地": {
                            "color": "#FF6A38"
                        },
                        "商住混合用地": {
                            "color": "#FF850A"
                        },
                        "行政办公用地": {
                            "color": "#FF00FF"
                        },
                        "文化设施用地": {
                            "color": "#FF00FF"
                        },
                        "小学用地": {
                            "color": "#FF7FFF"
                        },
                        "初中用地": {
                            "color": "#FF7FFF"
                        },
                        "体育场用地": {
                            "color": "#00A57C"
                        },
                        "医院用地": {
                            "color": "#A5527C"
                        },
                        "社会福利用地": {
                            "color": "#FF7F9F"
                        },
                        "商业用地": {
                            "color": "#FF0000"
                        },
                        "商务用地": {
                            "color": "#7F0000"
                        },
                        "营业网点用地": {
                            "color": "#FF7F7F"
                        },
                        "一类工业用地": {
                            "color": "#A57C52"
                        },
                        "社会停车场用地": {
                            "color": "#C0C0C0"
                        },
                        "通信用地": {
                            "color": "#007CA5"
                        },
                        "排水用地": {
                            "color": "#00BFFF"
                        },
                        "公园绿地": {
                            "color": "#00FF00"
                        },
                        "防护绿地": {
                            "color": "#007F00"
                        },
                        "河流水域": {
                            "color": "#7FFFFF"
                        },
                        "配建停车场": {
                            "color": "#ffffff"
                        },
                        "道路用地": {
                            "color": "#ffffff"
                        }
                    }
                },
                "popup": "{类型}",
                "show": false,
                "flyTo": true
            },
            {
                "pid": 3030,
                "type": "geojson",
                "name": "建筑物面",
                "url": "{dataServer}/file/geojson/buildings-demo.json",
                "symbol": {
                    "styleOptions": {
                        "color": "#0d3685",
                        "outlineColor": "#0d3685",
                        "opacity": 0.8
                    }
                },
                "buildings": {
                    "cloumn": "floors",
                    "height": "flo_height"
                },
                "popup": "all",
                "flyTo": true,
                "flyToOptions": {
                    "minHeight": 2000
                }
            },
            {
                "pid": 3030,
                "type": "geojson",
                "name": "安徽各市",
                "url": "{dataServer}/file/geojson/areas/340000_full.json",
                "symbol": {
                    "type": "polygon",
                    "styleOptions": {
                        "materialType": "PolyGradient",
                        "materialOptions": {
                            "color": "rgb(15,176,255)",
                            "opacity": 0.7,
                            "alphaPower": 1.3
                        },
                        "label": {
                            "text": "{name}",
                            "opacity": 1,
                            "font_size": 25,
                            "color": "#ffffff",
                            "outline": true,
                            "outlineColor": "#000000",
                            "outlineWidth": 3,
                            "scaleByDistance": true,
                            "scaleByDistance_far": 2743804,
                            "scaleByDistance_farValue": 0.3,
                            "scaleByDistance_near": 10000,
                            "scaleByDistance_nearValue": 1,
                            "distanceDisplayCondition": true,
                            "distanceDisplayCondition_far": 2743804,
                            "distanceDisplayCondition_near": 0
                        }
                    }
                },
                "popup": "{name}",
                "show": false,
                "flyTo": true
            },
            {
                "pid": 3030,
                "type": "geojson",
                "name": "中国省界",
                "url": "{dataServer}/file/geojson/areas/100000_full.json",
                "symbol": {
                    "type": "polylineP",
                    "styleOptions": {
                        "color": "#ffffff",
                        "width": 2,
                        "opacity": 0.8,
                        "label": {
                            "text": "{name}",
                            "position": "center",
                            "font_size": 30,
                            "color": "#ffffff",
                            "outline": true,
                            "outlineColor": "#000000",
                            "scaleByDistance": true,
                            "scaleByDistance_far": 60000000,
                            "scaleByDistance_farValue": 0.2,
                            "scaleByDistance_near": 1000000,
                            "scaleByDistance_nearValue": 1,
                            "distanceDisplayCondition": true,
                            "distanceDisplayCondition_far": 12000000,
                            "distanceDisplayCondition_near": 0
                        }
                    }
                },
                "show": false,
                "flyTo": true
            },
            {
                "pid": 3030,
                "type": "geojson",
                "name": "西藏垭口",
                "url": "{dataServer}/file/geojson/xizangyakou.json",
                "symbol": {
                    "styleOptions": {
                        "image": "img/marker/mark-red.png",
                        "scaleByDistance": true,
                        "scaleByDistance_far": 5000000,
                        "scaleByDistance_farValue": 0.5,
                        "scaleByDistance_near": 1000,
                        "scaleByDistance_nearValue": 1,
                        "verticalOrigin": 1,
                        "horizontalOrigin": 0,
                        "clampToGround": true,
                        "label": {
                            "text": "{NAME}",
                            "font_size": 25,
                            "color": "#ffff00",
                            "font_family": "微软雅黑",
                            "outline": true,
                            "outlineColor": "#000000",
                            "pixelOffsetY": -40,
                            "scaleByDistance": true,
                            "scaleByDistance_far": 1000000,
                            "scaleByDistance_farValue": 0.5,
                            "scaleByDistance_near": 1000,
                            "scaleByDistance_nearValue": 1,
                            "distanceDisplayCondition": true,
                            "distanceDisplayCondition_far": 1000000,
                            "distanceDisplayCondition_near": 0,
                            "visibleDepth": true
                        }
                    }
                },
                "popup": [
                    {
                        "field": "NAME",
                        "name": "名称"
                    },
                    {
                        "type": "details",
                        "callback": "showPopupDetails",
                        "field": "图片",
                        "className": "mars3d-popup-btn-custom"
                    }
                ],
                "show": false,
                "flyTo": true
            },
            {
                "pid": 3030,
                "type": "geojson",
                "name": "体育设施点",
                "url": "{dataServer}/file/geojson/hfty-point.json",
                "symbol": {
                    "styleOptions": {
                        "image": "img/marker/mark-red.png",
                        "scale": 1,
                        "scaleByDistance": true,
                        "scaleByDistance_far": 20000,
                        "scaleByDistance_farValue": 0.5,
                        "scaleByDistance_near": 1000,
                        "scaleByDistance_nearValue": 1,
                        "verticalOrigin": 1,
                        "horizontalOrigin": 0,
                        "clampToGround": true,
                        "label": {
                            "text": "{项目名称}",
                            "font_size": 25,
                            "color": "#ffffff",
                            "outline": true,
                            "outlineColor": "#000000",
                            "pixelOffsetY": -25,
                            "scaleByDistance": true,
                            "scaleByDistance_far": 80000,
                            "scaleByDistance_farValue": 0.5,
                            "scaleByDistance_near": 1000,
                            "scaleByDistance_nearValue": 1,
                            "distanceDisplayCondition": true,
                            "distanceDisplayCondition_far": 80000,
                            "distanceDisplayCondition_near": 0
                        }
                    }
                },
                "popup": [
                    {
                        "field": "项目名称",
                        "name": "项目名称"
                    },
                    {
                        "field": "建设性质",
                        "name": "建设性质"
                    },
                    {
                        "field": "设施级别",
                        "name": "设施级别"
                    },
                    {
                        "field": "所属区县",
                        "name": "所属区县"
                    },
                    {
                        "field": "建筑内容及",
                        "name": "建筑内容"
                    },
                    {
                        "field": "新增用地(",
                        "name": "新增用地"
                    },
                    {
                        "field": "开工",
                        "name": "开工"
                    },
                    {
                        "field": "总投资(万",
                        "name": "总投资"
                    },
                    {
                        "field": "资金来源",
                        "name": "资金来源"
                    },
                    {
                        "field": "初步选址",
                        "name": "初步选址"
                    },
                    {
                        "field": "设施类型",
                        "name": "设施类型"
                    },
                    {
                        "field": "设施等级",
                        "name": "设施等级"
                    },
                    {
                        "field": "所在区县",
                        "name": "所在区县"
                    },
                    {
                        "field": "具体位置",
                        "name": "具体位置"
                    },
                    {
                        "field": "建设内容(",
                        "name": "建设内容"
                    },
                    {
                        "field": "用地面积(",
                        "name": "用地面积",
                        "format": "mars3d.MeasureUtil.formatArea"
                    },
                    {
                        "field": "设施规模(",
                        "name": "设施规模"
                    },
                    {
                        "field": "举办者类型",
                        "name": "举办者类型"
                    },
                    {
                        "field": "开工时间",
                        "name": "开工时间"
                    },
                    {
                        "field": "总投资额(",
                        "name": "总投资额",
                        "unit": "亿元"
                    },
                    {
                        "field": "项目推进主",
                        "name": "项目推进主体"
                    },
                    {
                        "field": "项目进度",
                        "name": "项目进度"
                    },
                    {
                        "field": "项目来源",
                        "name": "项目来源"
                    },
                    {
                        "field": "备注",
                        "name": "备注"
                    }
                ],
                "show": false,
                "flyTo": true
            },
            {
                "id": 3070,
                "pid": 30,
                "name": "GeoServer WFS",
                "type": "group"
            },
            {
                "pid": 3070,
                "type": "wfs",
                "name": "建筑物面",
                "url": "//server.mars3d.cn/geoserver/mars/ows",
                "layer": "mars:hfjzw",
                "parameters": {
                    "maxFeatures": 500
                },
                "minimumLevel": 15,
                "symbol": {
                    "type": "polygonP",
                    "styleOptions": {
                        "color": "#00469c",
                        "outline": false,
                        "opacity": 1
                    }
                },
                "buildings": {
                    "cloumn": "floor"
                },
                "center": {
                    "lat": 31.818396,
                    "lng": 117.229083,
                    "alt": 2554.4,
                    "heading": 359.2,
                    "pitch": -83.1
                },
                "popup": "名称:{NAME}<br />层数:{floor}"
            },
            {
                "pid": 3070,
                "name": "教育设施点",
                "type": "wfs",
                "url": "//server.mars3d.cn/geoserver/mars/ows",
                "layer": "mars:hfjy",
                "parameters": {
                    "maxFeatures": 500
                },
                "minimumLevel": 13,
                "symbol": {
                    "type": "billboardP",
                    "styleOptions": {
                        "image": "img/marker/mark-red.png",
                        "scaleByDistance": true,
                        "scaleByDistance_far": 20000,
                        "scaleByDistance_farValue": 0.6,
                        "scaleByDistance_near": 1000,
                        "scaleByDistance_nearValue": 1,
                        "clampToGround": true,
                        "label": {
                            "text": "{项目名称}",
                            "font_size": 15,
                            "color": "#ffffff",
                            "outline": true,
                            "outlineColor": "#000000",
                            "pixelOffsetY": -30,
                            "distanceDisplayCondition": true,
                            "distanceDisplayCondition_far": 2000,
                            "distanceDisplayCondition_near": 0
                        }
                    }
                },
                "center": {
                    "lat": 31.812256,
                    "lng": 117.229873,
                    "alt": 4683.91,
                    "heading": 357.4,
                    "pitch": -65.4
                },
                "popup": "all"
            },
            {
                "id": 3010,
                "pid": 30,
                "name": "ArcGIS WFS",
                "type": "group"
            },
            {
                "pid": 3010,
                "type": "arcgis_wfs",
                "name": "兴趣点",
                "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/1",
                "where": " 1=1 ",
                "minimumLevel": 15,
                "center": {
                    "lat": 31.818396,
                    "lng": 117.229083,
                    "alt": 2554.4,
                    "heading": 359.2,
                    "pitch": -83.1
                },
                "symbol": {
                    "type": "billboardP",
                    "styleOptions": {
                        "image": "img/marker/mark-blue.png",
                        "scaleByDistance": true,
                        "scaleByDistance_far": 20000,
                        "scaleByDistance_farValue": 0.6,
                        "scaleByDistance_near": 1000,
                        "scaleByDistance_nearValue": 1,
                        "clampToGround": true,
                        "label": {
                            "text": "{NAME}",
                            "font_size": 15,
                            "color": "#ffffff",
                            "outline": true,
                            "outlineColor": "#000000",
                            "pixelOffsetY": -30,
                            "distanceDisplayCondition": true,
                            "distanceDisplayCondition_far": 3000,
                            "distanceDisplayCondition_near": 0
                        }
                    },
                    "styleField": "address",
                    "styleFieldOptions": {
                        "AB03": {
                            "image": "img/marker/mark-red.png"
                        },
                        "A980": {
                            "image": "img/marker/mark-blue.png"
                        },
                        "A900": {
                            "image": "img/marker/mark-green.png"
                        }
                    }
                },
                "popup": "名称:{NAME}<br />地址:{address}",
                "show": false
            },
            {
                "pid": 3010,
                "type": "arcgis_wfs",
                "name": "道路",
                "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/28",
                "minimumLevel": 14,
                "symbol": {
                    "type": "polylineP",
                    "styleOptions": {
                        "color": "#3388ff",
                        "width": 3,
                        "clampToGround": true
                    },
                    "styleField": "NAME",
                    "styleFieldOptions": {
                        "祁门路": {
                            "color": "#8744c0",
                            "width": 3
                        },
                        "东流路": {
                            "color": "#f7ba2a",
                            "width": 3
                        },
                        "翡翠路": {
                            "color": "#20a0ff",
                            "width": 3
                        },
                        "岳西路": {
                            "color": "#50bfff",
                            "width": 3
                        }
                    }
                },
                "popup": "名称:{NAME}",
                "center": {
                    "lat": 31.814176,
                    "lng": 117.225362,
                    "alt": 5105.3,
                    "heading": 359.2,
                    "pitch": -83.1
                }
            },
            {
                "pid": 3010,
                "type": "arcgis_wfs",
                "name": "建筑物面",
                "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/37",
                "minimumLevel": 15,
                "symbol": {
                    "styleOptions": {
                        "color": "#0d3685",
                        "outlineColor": "#0d3685",
                        "opacity": 0.8
                    }
                },
                "buildings": {
                    "cloumn": "floor"
                },
                "debuggerTileInfo": false,
                "center": {
                    "lat": 31.816951,
                    "lng": 117.22898,
                    "alt": 1916.7,
                    "heading": 0.3,
                    "pitch": -78.8
                },
                "popup": "名称:{NAME}<br />层数:{floor}"
            },
            {
                "id": 3060,
                "pid": 30,
                "name": "CZML数据",
                "type": "group"
            },
            {
                "id": 306010,
                "pid": 3060,
                "type": "czml",
                "name": "汽车",
                "url": "{dataServer}/file/czml/car.czml",
                "center": {
                    "lat": 40.894745,
                    "lng": 121.920252,
                    "alt": 904,
                    "heading": 64,
                    "pitch": -67
                },
                "onWidget": "control-clock",
                "radio": true,
                "flyTo": true
            },
            {
                "id": 306011,
                "pid": 3060,
                "type": "czml",
                "name": "卫星轨道",
                "url": "{dataServer}/file/czml/satellite-simple.czml",
                "popup": "all",
                "onWidget": "control-clock",
                "radio": true,
                "flyTo": true
            },
            {
                "id": 3050,
                "pid": 30,
                "name": "KML数据",
                "type": "group"
            },
            {
                "pid": 3050,
                "type": "kml",
                "name": "海上安全警告",
                "url": "{dataServer}/file/kml/NAVWARN.kmz",
                "popup": "all"
            },
            {
                "pid": 3050,
                "type": "kml",
                "name": "国境线",
                "url": "{dataServer}/file/kml/countryboundary.kml",
                "symbol": {
                    "styleOptions": {
                        "color": "#FED976",
                        "width": 2
                    }
                }
            },
            {
                "pid": 3050,
                "type": "kml",
                "name": "省界线",
                "url": "{dataServer}/file/kml/province.kml",
                "symbol": {
                    "styleOptions": {
                        "color": "#00FF00",
                        "width": 2
                    }
                }
            },
            {
                "id": 20,
                "name": "三维模型",
                "type": "group"
            },
            {
                "id": 2010,
                "pid": 20,
                "name": "gltf模型",
                "type": "group"
            },
            {
                "pid": 2010,
                "type": "graphic",
                "name": "风力发电机",
                "data": [
                    {
                        "type": "modelP",
                        "position": [
                            117.219071,
                            31.828783,
                            39.87
                        ],
                        "style": {
                            "url": "//data.mars3d.cn/gltf/mars/fengche.gltf",
                            "scale": 50,
                            "heading": -93
                        }
                    }
                ],
                "popup": "示例信息,这是一个风力发电机",
                "center": {
                    "lat": 31.821083,
                    "lng": 117.21832,
                    "alt": 832.64,
                    "heading": 2.3,
                    "pitch": -39.2
                }
            },
            {
                "pid": 2010,
                "type": "graphic",
                "name": "警车",
                "data": [
                    {
                        "type": "modelP",
                        "position": [
                            117.217458,
                            31.815349,
                            35.03
                        ],
                        "style": {
                            "url": "//data.mars3d.cn/gltf/mars/jingche/jingche.gltf",
                            "scale": 2,
                            "heading": -95,
                            "clampToGround": true
                        }
                    }
                ],
                "center": {
                    "lat": 31.815363,
                    "lng": 117.215958,
                    "alt": 107.35,
                    "heading": 90.7,
                    "pitch": -26.1
                }
            },
            {
                "id": 2040,
                "pid": 20,
                "name": "城市白模",
                "type": "group"
            },
            {
                "id": 204011,
                "pid": 2040,
                "type": "3dtiles",
                "name": "合肥市区",
                "url": "{dataServer}/3dtiles/jzw-hefei/tileset.json",
                "maximumScreenSpaceError": 1,
                "style": {
                    "color": {
                        "conditions": [
                            [
                                "true",
                                "color('rgba(42, 160, 224, 1)')"
                            ]
                        ]
                    }
                },
                "marsJzwStyle": true,
                "highlight": {
                    "type": "click",
                    "color": "#FFFF00"
                },
                "popup": [
                    {
                        "field": "objectid",
                        "name": "编号"
                    },
                    {
                        "field": "name",
                        "name": "名称"
                    },
                    {
                        "field": "height",
                        "name": "楼高",
                        "unit": "米"
                    }
                ],
                "center": {
                    "lat": 31.786281,
                    "lng": 117.223716,
                    "alt": 3718,
                    "heading": 2,
                    "pitch": -45
                }
            },
            {
                "pid": 2040,
                "type": "3dtiles",
                "name": "合肥市区-带贴图",
                "url": "{dataServer}/3dtiles/jzw-hefei-cz/tileset.json",
                "maximumScreenSpaceError": 1,
                "marsJzwStyle": true,
                "highlight": {
                    "type": "click",
                    "color": "#FFFF00"
                },
                "popup": [
                    {
                        "field": "objectid",
                        "name": "编号"
                    },
                    {
                        "field": "remark",
                        "name": "名称"
                    },
                    {
                        "field": "height",
                        "name": "楼高",
                        "unit": "米"
                    }
                ],
                "center": {
                    "lat": 31.786281,
                    "lng": 117.223716,
                    "alt": 3718,
                    "heading": 2,
                    "pitch": -45
                }
            },
            {
                "id": 204012,
                "pid": 2040,
                "type": "3dtiles",
                "name": "上海市区",
                "url": "{dataServer}/3dtiles/jzw-shanghai/tileset.json",
                "maximumScreenSpaceError": 4,
                "style": {
                    "color": {
                        "conditions": [
                            [
                                "${floor} >= 200",
                                "rgba(45, 0, 75, 0.5)"
                            ],
                            [
                                "${floor} >= 100",
                                "rgb(170, 162, 204)"
                            ],
                            [
                                "${floor} >= 50",
                                "rgb(224, 226, 238)"
                            ],
                            [
                                "${floor} >= 25",
                                "rgb(252, 230, 200)"
                            ],
                            [
                                "${floor} >= 10",
                                "rgb(248, 176, 87)"
                            ],
                            [
                                "${floor} >= 5",
                                "rgb(198, 106, 11)"
                            ],
                            [
                                "true",
                                "rgb(127, 59, 8)"
                            ]
                        ]
                    }
                },
                "highlight": {
                    "type": "click",
                    "color": "#FFFF00"
                },
                "popup": [
                    {
                        "field": "name",
                        "name": "名称"
                    },
                    {
                        "field": "floor",
                        "name": "楼层"
                    }
                ],
                "center": {
                    "lat": 31.257341,
                    "lng": 121.466139,
                    "alt": 2170.8,
                    "heading": 122.2,
                    "pitch": -31.8
                }
            },
            {
                "id": 2050,
                "pid": 20,
                "name": "点云",
                "type": "group"
            },
            {
                "id": 202016,
                "pid": 2050,
                "type": "3dtiles",
                "name": "高压线塔杆",
                "url": "{dataServer}/3dtiles/pnts-ganta/tileset.json",
                "maximumScreenSpaceError": 1,
                "position": {
                    "alt": 31
                },
                "style": {
                    "color": {
                        "conditions": [
                            [
                                "(${Classification} >= 4) && (${Classification} < 5) ",
                                "color('#DC143C')"
                            ],
                            [
                                "(${Classification} >= 7) && (${Classification} < 8)  ",
                                "color('#7B68EE')"
                            ],
                            [
                                "(${Classification} >= 16) && (${Classification} < 17)  ",
                                "color('#00CED1')"
                            ],
                            [
                                "(${Classification} >= 17) && (${Classification} < 18)  ",
                                "color('#3CB371')"
                            ],
                            [
                                "(${Classification} >= 18) && (${Classification} < 19)  ",
                                "color('#FFFF00')"
                            ],
                            [
                                "(${Classification} >= 19) && (${Classification} < 20)  ",
                                "color('#FFA500')"
                            ],
                            [
                                "(${Classification} >= 20) && (${Classification} < 21)  ",
                                "color('#FF6347')"
                            ]
                        ]
                    }
                },
                "hasOpacity": false,
                "center": {
                    "lat": 31.504746,
                    "lng": 118.264278,
                    "alt": 580,
                    "heading": 29,
                    "pitch": -49
                }
            },
            {
                "id": 2060,
                "pid": 20,
                "name": "BIM模型",
                "type": "group"
            },
            {
                "id": 20601121,
                "pid": 2060,
                "type": "3dtiles",
                "name": "大学教学楼",
                "url": "{dataServer}/3dtiles/bim-daxue/tileset.json",
                "position": {
                    "lng": 117.251229,
                    "lat": 31.844015,
                    "alt": 31.2
                },
                "highlight": {
                    "type": "click",
                    "color": "#FFFF00"
                },
                "popup": "all",
                "scenetree": "scenetree.json",
                "center": {
                    "lat": 31.842516,
                    "lng": 117.25107,
                    "alt": 145,
                    "heading": 8,
                    "pitch": -39
                }
            },
            {
                "pid": 2060,
                "type": "3dtiles",
                "name": "轻轨地铁站",
                "url": "{dataServer}/3dtiles/bim-ditiezhan/tileset.json",
                "position": {
                    "lng": 117.203994,
                    "lat": 31.857999,
                    "alt": 28.9
                },
                "rotation": {
                    "z": 168.1
                },
                "highlight": {
                    "type": "click",
                    "color": "#00FF00"
                },
                "popup": "all",
                "scenetree": "scenetree.json",
                "center": {
                    "lat": 31.856125,
                    "lng": 117.204513,
                    "alt": 155,
                    "heading": 350,
                    "pitch": -31
                }
            },
            {
                "id": 206012,
                "pid": 2060,
                "type": "3dtiles",
                "name": "桥梁",
                "url": "{dataServer}/3dtiles/bim-qiaoliang/tileset.json",
                "position": {
                    "lng": 117.096906,
                    "lat": 31.851564,
                    "alt": 45
                },
                "rotation": {
                    "z": 17.5
                },
                "maximumScreenSpaceError": 16,
                "skipLevelOfDetail": true,
                "loadSiblings": true,
                "cullRequestsWhileMoving": true,
                "cullRequestsWhileMovingMultiplier": 10,
                "preferLeaves": true,
                "progressiveResolutionHeightFraction": 0.5,
                "dynamicScreenSpaceError": true,
                "preloadWhenHidden": true,
                "center": {
                    "lat": 31.849357,
                    "lng": 117.099194,
                    "alt": 306.2,
                    "heading": 327.1,
                    "pitch": -30.9
                },
                "scenetree": "scenetree.json",
                "highlight": {
                    "type": "click",
                    "color": "#00FF00"
                },
                "popup": "all"
            },
            {
                "id": 2020,
                "pid": 20,
                "name": "人工建模",
                "type": "group"
            },
            {
                "id": 202013,
                "pid": 2020,
                "type": "3dtiles",
                "name": "地下管网",
                "url": "{dataServer}/3dtiles/max-piping/tileset.json",
                "position": {
                    "lng": 117.215457,
                    "lat": 31.843363,
                    "alt": -3.6
                },
                "rotation": {
                    "z": 336.7
                },
                "maximumScreenSpaceError": 2,
                "highlight": {
                    "type": "click",
                    "color": "#00FF00"
                },
                "popup": "all",
                "center": {
                    "lat": 31.838821,
                    "lng": 117.216402,
                    "alt": 461,
                    "heading": 0,
                    "pitch": -46
                },
                "msg": "演示数据,地下数据拖动时会在地面漂移"
            },
            {
                "id": 202012,
                "pid": 2020,
                "type": "3dtiles",
                "name": "石化工厂",
                "url": "{dataServer}/3dtiles/max-shihua/tileset.json",
                "position": {
                    "lng": 117.077158,
                    "lat": 31.659116,
                    "alt": -2.0
                },
                "maximumScreenSpaceError": 1,
                "highlight": {
                    "type": "click",
                    "color": "#00FF00"
                },
                "popup": "all",
                "scenetree": "scenetree.json",
                "center": {
                    "lat": 31.654916,
                    "lng": 117.08278,
                    "alt": 279,
                    "heading": 316,
                    "pitch": -29
                }
            },
            {
                "id": 202030,
                "pid": 2020,
                "name": "水利闸门",
                "type": "group",
                "center": {
                    "lat": 29.794301,
                    "lng": 121.47998,
                    "alt": 262,
                    "heading": 191,
                    "pitch": -35
                }
            },
            {
                "pid": 202030,
                "name": "闸门",
                "type": "graphic",
                "data": [
                    {
                        "type": "modelP",
                        "position": [
                            121.479813,
                            29.791278,
                            16
                        ],
                        "style": {
                            "url": "//data.mars3d.cn/gltf/mars/zhamen.glb",
                            "heading": 105
                        }
                    }
                ],
                "center": {
                    "lat": 29.791607,
                    "lng": 121.479925,
                    "alt": 27,
                    "heading": 198,
                    "pitch": -18
                }
            },
            {
                "id": 202011,
                "pid": 202030,
                "type": "3dtiles",
                "name": "整体",
                "url": "{dataServer}/3dtiles/max-fsdzm/tileset.json",
                "position": {
                    "alt": 15.2
                },
                "maximumScreenSpaceError": 1,
                "center": {
                    "lat": 29.792675,
                    "lng": 121.480207,
                    "alt": 190.8,
                    "heading": 196.1,
                    "pitch": -49
                }
            },
            {
                "id": 2030,
                "pid": 20,
                "name": "倾斜摄影",
                "type": "group"
            },
            {
                "pid": 2030,
                "type": "3dtiles",
                "name": "大雁塔",
                "url": "{dataServer}/3dtiles/qx-dyt/tileset.json",
                "position": {
                    "alt": -27
                },
                "maximumScreenSpaceError": 1,
                "center": {
                    "lat": 34.215516,
                    "lng": 108.960251,
                    "alt": 834,
                    "heading": 4,
                    "pitch": -48
                },
                "flat": {
                    "enabled": true,
                    "editHeight": -24
                },
                "flyTo": false,
                "show": false
            },
            {
                "pid": 2030,
                "name": "校园(含单体)",
                "type": "group",
                "hasOpacity": true,
                "center": {
                    "lat": 43.821193,
                    "lng": 125.143124,
                    "alt": 990,
                    "heading": 342,
                    "pitch": -50
                },
                "layers": [
                    {
                        "type": "geojson",
                        "name": "校园-单体化",
                        "url": "{dataServer}/file/geojson/dth-xuexiao-fd.json",
                        "symbol": {
                            "type": "polygonP",
                            "styleOptions": {
                                "color": "rgba(255, 255, 255, 0.01)",
                                "clampToGround": true,
                                "classification": true,
                                "buffer": 1,
                                "highlight": {
                                    "type": "click",
                                    "color": "rgba(255,255,0,0.4)"
                                }
                            }
                        },
                        "popup": [
                            {
                                "field": "name",
                                "name": "学校场所"
                            },
                            {
                                "field": "sfkf",
                                "name": "是否开放"
                            },
                            {
                                "field": "remark",
                                "name": "备注信息"
                            }
                        ]
                    },
                    {
                        "pid": 2030,
                        "type": "3dtiles",
                        "name": "校园",
                        "url": "{dataServer}/3dtiles/qx-xuexiao/tileset.json",
                        "position": {
                            "alt": 279.0
                        },
                        "maximumScreenSpaceError": 1
                    }
                ]
            },
            {
                "id": 203014,
                "pid": 2030,
                "type": "3dtiles",
                "name": "县城社区",
                "url": "{dataServer}/3dtiles/qx-shequ/tileset.json",
                "position": {
                    "alt": 148.2
                },
                "maximumScreenSpaceError": 2,
                "dynamicScreenSpaceError": true,
                "cullWithChildrenBounds": false,
                "center": {
                    "lat": 28.440864,
                    "lng": 119.486477,
                    "alt": 588.23,
                    "heading": 268.6,
                    "pitch": -37.8
                },
                "show": false,
                "flyTo": false
            },
            {
                "id": 203015,
                "pid": 2030,
                "name": "合肥天鹅湖",
                "type": "3dtiles",
                "url": "{dataServer}/3dtiles/qx-teh/tileset.json",
                "position": {
                    "lng": 117.218434,
                    "lat": 31.81807,
                    "alt": 163
                },
                "maximumScreenSpaceError": 16,
                "dynamicScreenSpaceError": true,
                "cullWithChildrenBounds": false,
                "skipLevelOfDetail": true,
                "preferLeaves": true,
                "center": {
                    "lat": 31.795308,
                    "lng": 117.21948,
                    "alt": 1820,
                    "heading": 0,
                    "pitch": -39
                }
            },
            {
                "id": 203013,
                "pid": 2030,
                "type": "geojson",
                "name": "文庙-单体化",
                "url": " {dataServer}/file/geojson/dth-wm.json",
                "symbol": {
                    "type": "polygonP",
                    "styleOptions": {
                        "color": "rgba(255, 255, 255, 0.01)",
                        "clampToGround": true,
                        "classification": true,
                        "buffer": 1,
                        "highlight": {
                            "color": "rgba(255,255,0,0.4)"
                        }
                    }
                },
                "popup": [
                    {
                        "field": "name",
                        "name": "房屋名称"
                    },
                    {
                        "field": "jznf",
                        "name": "建造年份"
                    },
                    {
                        "field": "ssdw",
                        "name": "所属单位"
                    },
                    {
                        "field": "remark",
                        "name": "备注信息"
                    }
                ]
            },
            {
                "id": 203012,
                "pid": 2030,
                "type": "3dtiles",
                "name": "文庙",
                "url": "{dataServer}/3dtiles/qx-simiao/tileset.json",
                "position": {
                    "alt": 38.8
                },
                "maximumScreenSpaceError": 2,
                "dynamicScreenSpaceError": true,
                "cullWithChildrenBounds": false,
                "skipLevelOfDetail": true,
                "preferLeaves": true,
                "center": {
                    "lat": 33.589536,
                    "lng": 119.032216,
                    "alt": 145.08,
                    "heading": 3.1,
                    "pitch": -22.9
                }
            },
            {
                "id": 99,
                "name": "数据图层",
                "type": "group"
            }
        ]
    }
}

2.创建组件定义文件

路径 src\components\mars-work\mars-map.vue

在这里插入图片描述
实例数据

<template>
  <div :id="withKeyId" class="mars3d-container"></div>
</template>
<script setup lang="ts">
/**
 * 地图渲染组件
 * @copyright 火星科技 mars3d.cn
 * @author 木遥 2022-02-19
 */
import { computed, onUnmounted, onMounted } from "vue"
import * as mars3d from "mars3d" 
// import { $alert, $message } from "@mars/components/mars-ui/index"

const props = withDefaults(
  defineProps<{
    url: string
    mapKey?: string
    options?: any
  }>(),
  {
    url: "",
    mapKey: "default",
    options: () => ({})
  }
)

// 用于存放地球组件实例
let map: mars3d.Map // 地图对象

// 使用用户传入的 mapKey 拼接生成 withKeyId 作为当前显示容器的id
const withKeyId = computed(() => `mars3d-container-${props.mapKey}`)

onMounted(() => {
  // 获取配置
  mars3d.Util.fetchJson({ url: props.url }).then((data: any) => {
    initMars3d({
      // 合并配置项
      ...data.map3d,
      ...props.options
    })
  })
})

// onload事件将在地图渲染后触发
const emit = defineEmits(["onload"])
const initMars3d = (option: any) => {
  map = new mars3d.Map(withKeyId.value, option)

  // //如果有xyz传参,进行定位
  // const lat = getQueryString("lat")
  // const lng = getQueryString("lng")
  // if (lat && lng) {
  //   map.flyToPoint(new mars3d.LngLatPoint(lng, lat), { duration: 0 })
  // }

  // 开场动画
  // map.openFlyAnimation();

  // 针对不同终端的优化配置
  if (mars3d.Util.isPCBroswer()) {
    map.zoomFactor = 2.0 // 鼠标滚轮放大的步长参数

    // IE浏览器优化
    if (window.navigator.userAgent.toLowerCase().indexOf("msie") >= 0) {
      map.viewer.targetFrameRate = 20 // 限制帧率
      map.scene.requestRenderMode = false // 取消实时渲染
    }
  } else {
    map.zoomFactor = 5.0 // 鼠标滚轮放大的步长参数

    // 移动设备上禁掉以下几个选项,可以相对更加流畅
    map.scene.requestRenderMode = false // 取消实时渲染
    map.scene.fog.enabled = false
    map.scene.skyAtmosphere.show = false
    map.scene.globe.showGroundAtmosphere = false
  }

  // //二三维切换不用动画
  if (map.viewer.sceneModePicker) {
    map.viewer.sceneModePicker.viewModel.duration = 0.0
  }

  // webgl渲染失败后,刷新页面
  // map.on(mars3d.EventType.renderError, async () => {
  //   await $alert("程序内存消耗过大,请重启浏览器")
  //   window.location.reload()
  // })

  // map构造完成后的一些处理
  onMapLoad()

  emit("onload", map)
}

// map构造完成后的一些处理
function onMapLoad() {
  // // Mars3D地图内部使用,如右键菜单弹窗
  // // @ts-ignore
  // window.globalAlert = $alert
  // // @ts-ignore
  // window.globalMsg = $message

  // // 用于 config.json 中 西藏垭口 图层的详情按钮 演示
  // // @ts-ignore
  // window.showPopupDetails = (item: any) => {
  //   $alert(item.NAME)
  // }

 
}

// 组件卸载之前销毁mars3d实例
onUnmounted(() => {
  if (map) {
    map.destroy()
    map = null
  }
  console.log("map销毁完成", map)
})
</script>

<style lang="less"> 
/**cesium 工具按钮栏*/
.cesium-viewer-toolbar {
  top: auto !important;
  bottom: 35px !important;
  left: 12px !important;
  right: auto !important;
}
.cesium-toolbar-button img {
  height: 100%;
}
.cesium-viewer-toolbar > .cesium-toolbar-button,
.cesium-navigationHelpButton-wrapper,
.cesium-viewer-geocoderContainer {
  margin-bottom: 5px;
  float: left;
  clear: both;
  text-align: center;
}
.cesium-button {
  background-color: rgba(23, 49, 71, 0.8);
  color: #e6e6e6;
  fill: #e6e6e6;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  line-height: 32px;
}
.cesium-button:hover {
  background: #3ea6ff;
}

/**cesium 底图切换面板*/
.cesium-baseLayerPicker-dropDown {
  bottom: 0;
  left: 40px;
  max-height: 700px;
  margin-bottom: 5px;
  background-color: rgba(23, 49, 71, 0.8);
}

/**cesium 帮助面板*/
.cesium-navigation-help {
  top: auto;
  bottom: 0;
  left: 40px;
  transform-origin: left bottom;
  background: none;
  background-color: rgba(23, 49, 71, 0.8);
  .cesium-navigation-help-instructions {
    background: none;
  }
  .cesium-navigation-button {
    background: none;
  }
  .cesium-navigation-button-selected,
  .cesium-navigation-button-unselected:hover {
    background: rgba(0, 138, 255, 0.2);
  }
}

/**cesium 二维三维切换*/
.cesium-sceneModePicker-wrapper {
  width: auto;
}
.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon {
  float: right;
  margin: 0 3px;
}

/**cesium POI查询输入框*/
.cesium-viewer-geocoderContainer .search-results {
  left: 0;
  right: 40px;
  width: auto;
  z-index: 9999;
}
.cesium-geocoder-searchButton {
  background-color: rgba(23, 49, 71, 0.8);
}
.cesium-viewer-geocoderContainer .cesium-geocoder-input {
  background-color: rgba(63, 72, 84, 0.7);
}
.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus {
  background-color: rgba(63, 72, 84, 0.9);
}
.cesium-viewer-geocoderContainer .search-results {
  background-color: rgba(23, 49, 71, 0.8);
}

/**cesium info信息框*/
.cesium-infoBox {
  top: 50px;
  background-color: rgba(23, 49, 71, 0.8);
}
.cesium-infoBox-title {
  background-color: rgba(23, 49, 71, 0.8);
}

/**cesium 任务栏的FPS信息*/
.cesium-performanceDisplay-defaultContainer {
  top: auto;
  bottom: 35px;
  right: 50px;
}
.cesium-performanceDisplay-ms,
.cesium-performanceDisplay-fps {
  color: #fff;
}

/**cesium tileset调试信息面板*/
.cesium-viewer-cesiumInspectorContainer {
  top: 10px;
  left: 10px;
  right: auto;
}
.cesium-cesiumInspector {
  background-color: rgba(23, 49, 71, 0.8);
}

/**覆盖mars3d内部控件的颜色等样式*/
.mars3d-compass .mars3d-compass-outer {
  fill: rgba(23, 49, 71, 0.8);
}
.mars3d-contextmenu-ul,
.mars3d-sub-menu {
  background-color: rgba(23, 49, 71, 0.8);

  > li > a:hover,
  > li > a:focus,
  > li > .active {
    background-color: #3ea6ff;
  }

  > .active > a,
  > .active > a:hover,
  > .active > a:focus {
    background-color: #3ea6ff;
  }
}

/* Popup样式*/
.mars3d-popup-color {
  color: #ffffff;
}
.mars3d-popup-background {
  background: rgba(23, 49, 71, 0.8);
}
.mars3d-popup-content {
  margin: 15px;
}
.mars3d-template-content label {
  padding-right: 6px;
}
.mars3d-template-titile {
  border-bottom: 1px solid #3ea6ff;
}
.mars3d-template-titile a {
  font-size: 16px;
}
.mars3d-tooltip {
  background: rgba(23, 49, 71, 0.8);
  border: 1px solid rgba(23, 49, 71, 0.8);
}

.mars3d-popup-btn-custom {
  padding: 3px 10px;
  border: 1px solid #209ffd;
  background: #209ffd1c;
}
</style>

三、demo中引入

在这里插入图片描述

四、必要样式 依赖文件

在这里插入图片描述

    "@turf/turf": "^6.5.0",
    "mars3d": "^3.7.22",
    "mars3d-cesium": "~1.119.0",
    "vite-plugin-mars3d": "^4.1.1",

或者 yarn add vite-plugin-mars3d...

在这里插入图片描述
main.js

import "mars3d-cesium/Build/Cesium/Widgets/widgets.css"
import "mars3d/dist/mars3d.css"

在这里插入图片描述

vite.config.js

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { mars3dPlugin } from "vite-plugin-mars3d"

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    mars3dPlugin(),
  ],
});

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1943064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】安装Nacos-单机版

一、摘要 单机模式又称单例模式, 拥有所有Nacos的功能及特性&#xff0c;具有极易部署、快速启动等优点。但无法与其他节点组成集群&#xff0c;无法在节点或网络故障时提供高可用能力。单机模式同样可以使用内置Derby数据库&#xff08;默认&#xff09;和外置数据库进行存储…

爆赞!终于有大佬把网络安全零基础入门教程给讲明白了!

网络安全的一个通用定义指网络信息系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的破坏、更改、泄露&#xff0c;系统能连续、可靠、正常地运行&#xff0c;服务不中断。网络安全简单的说是在网络环境下能够识别和消除不安全因素的能力。 网络安全…

探索智能本质:技术智能的演进趋势

在人工智能的浪潮中&#xff0c;我们常常被各种技术术语和概念所包围&#xff0c;但智能的本质究竟是什么&#xff1f;香港大学计算与数据科学学院院长马毅教授&#xff0c;在第三届「知乎 AI 先行者沙龙」上的演讲&#xff0c;为我们提供了全新视角。香港大学马毅&#xff1a;…

vue3 vite 引入包报错 无法找到模块“lib-flexible/flexible.js”的声明文件

文章目录 vue3 vite 引入包报错解决方法 1解决方法 2 vue3 vite 引入包报错 无法找到模块“lib-flexible/flexible.js”的声明文件。“d:/mine/web面试/video-demo/node_modules/lib-flexible/flexible.js”隐式拥有 "any" 类型。尝试使用 npm i --save-dev types…

《昇思25天学习打卡营第23天 | 基于MobileNetv2的垃圾分类》

《昇思25天学习打卡营第23天 | 基于MobileNetv2的垃圾分类》 目录 《昇思25天学习打卡营第23天 | 基于MobileNetv2的垃圾分类》1、实验目的2、MobileNetv2模型原理介绍3、实验环境4、数据处理4.1数据准备下载data_en数据集 4.2数据加载将模块导入&#xff0c;具体如下&#xff…

k8s 公共服务

修改named.conf。修改第13行和第21行 下面是 named.rfc1912 修改位置&#xff0c;在最后 所以用cp -p 复制文件&#xff0c;保留权限 nslookup 回车&#xff0c;server是看哪个dns 在起作用 dns服务器要配置给所有公共服务节点和 k8s 节点 就在网络文件加个DNS2就行了&…

c++ - set、map、multiset、multimap容器介绍和常用接口使用

文章目录 前言一、set容器二、multiset三、map四、multimap 前言 1、set、map、 multiset、 multimap都是基于红黑树实现的容器。 2、set、multiset都使用头文件#include<set>,map、multimap都是使用头文件#include<map> 一、set容器 1、set容器的介绍 C标准库中的…

S02. 中断与异常处理

中断处理过程及保护 1、 中断处理过程 处理器根据中断向量号定位中断门描述符。中断向量号是中断描述符的索引&#xff0c;当处理器收到一个外部中断向量号后&#xff0c;它用此向量号在中断描述符表中查询对应的中断描述符&#xff0c;然后再去执行该中断描述符中的中断处理程…

谷歌浏览器跨域

首先创建谷歌浏览器快捷键 右击 属性 在C盘创建文件夹MyChromeDevUserData “C:\Program Files\Google\Chrome\Application\chrome.exe” --disable-web-security --user-data-dirC:\MyChromeDevUserData

数据结构初阶(C语言)-二叉树-顺序表建堆

一&#xff0c;堆的概念与结构 如果有⼀个关键码的集合&#xff0c;把它的所有元素按完全⼆叉树的顺序存储方式存储&#xff0c;在⼀个⼀维数组中&#xff0c;并满足&#xff1a;&#xff0c;i0,1,2...则称为小堆(或⼤堆)。将根结点最大的堆叫做最大堆或大根堆&#xff0c;根结…

调度子系统在特定时间执行

时序逻辑调度器设计模式允许您安排Simulink子系统在指定时间执行。以下模型说明了这种设计模式。 时序逻辑调度器图表包含以下逻辑&#xff1a; 时序逻辑调度器的关键行为 时序逻辑调度器图表包含两个状态&#xff0c;它们以不同的速率调度函数调用子系统A1、A2和A3的执行&…

frp反向代理的安装与配置、ftp服务的搭建及应用

1、frp简介 frp 是⼀个开源、简洁易⽤、⾼性能的内⽹穿透和反向代理软件&#xff0c;⽀持 tcp, udp, http, https等 协议。frp 项⽬官⽹是 https://github.com/fatedier/frp 2、frp⼯作原理 服务端运⾏&#xff0c;监听⼀个主端⼝&#xff0c;等待客户端的连接&#xff1b; …

基于内容的音乐推荐网站/基于ssm的音乐推荐系统/基于协同过滤推荐的音乐网站/基于vue的音乐平台

获取源码联系方式请查看文末&#x1f345; 摘 要 随着信息化时代的到来&#xff0c;系统管理都趋向于智能化、系统化&#xff0c;音乐推荐网站也不例外&#xff0c;但目前国内的有些公司仍然都使用人工管理&#xff0c;公司规模越来越大&#xff0c;同时信息量也越来越庞大&…

C++中const关键字的多方面应用

const 的基本作用 const有且只有一种作用&#xff0c;那就是限定被修饰的对象无法被修改&#xff0c;在c中&#xff0c;被const修饰的对象被看作常量&#xff0c;存储在只读存储区(.rodata)。 测试代码 const int a 5;char arr[a];对测试代码进行汇编编译 – gcc -S test.c …

机械学习—零基础学习日志(高数09——函数图形)

零基础为了学人工智能&#xff0c;真的开始复习高数 函数图像&#xff0c;开始新的学习&#xff01; 幂函数 利用函数的性质&#xff0c;以幂函数为例&#xff0c;因为单调性相同&#xff0c;利用图中的2和3公式&#xff0c;求最值问题&#xff0c;可以直接将式子进行简化。这…

Git之repo sync -c与repo sync -dc用法区别四十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

blender使用(四)-物体吸附与晶格形变、阵列、曲线、蒙皮修改器

1.缩放注意点 尽量不要在物体模式下缩放&#xff0c;尽量在编辑模式下缩放。 若在物体模式下做过缩放&#xff0c;右键单击物体&#xff0c;选择应用缩放 2.物体吸附及衰减 吸附&#xff1a;一个物体移动到另一个物体表面时&#xff0c;自动吸附上去 衰减&#xff1a;编辑模式下…

Nginx学习-相关概念

Nginx学习-相关概念 主要学习几个概念&#xff1a;Nginx&#xff0c;正向代理、反向代理、负载均衡、动静分离。–2020年05月29日 什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。 特点是占有内存少&…

探索未知,惊喜连连 —— 盲盒一番赏小程序,开启你的幸运之旅!

在这个充满惊喜与期待的时代&#xff0c;每一份未知都藏着无限可能。我们精心打造的“盲盒一番赏”小程序&#xff0c;正是为了满足您对惊喜的渴望&#xff0c;让每一次点击都成为一次心跳加速的旅程。 &#x1f31f; 【沉浸式体验&#xff0c;触手可及】 想象一下&#xff0c…

【源码阅读】Sony的go breaker熔断器源码探究

文章目录 背景源码分析总结 背景 在微服务时代&#xff0c;服务和服务之间调用、跨部门调用都是很常见的事&#xff0c;但这些调用都存在很多不确定因素&#xff0c;如核心服务A依赖的部门B服务挂掉了&#xff0c;那么A本身的功能将会受到直接的影响&#xff0c;而这些都会影响…