当前位置: 首页 > article >正文

vue3 + ts + vite 初始化 Mars3D

一、实现效果

二、实现步骤

1. 下载依赖

npm install mars3d mars3d-cesium @turf/turf --save
npm install mars3d-space --save
npm install vite-plugin-mars3d --save-dev

2. 编写组件代码

    (1)main.ts

declare global {
    interface Window {
        mars3dFun: any
    }
}

    (2)/ src / components / Mars3d / index.vue

<template>

  <div id="mars3dContainer" class="mars3d-container"></div>

</template>

<script setup lang="ts">

import {onMounted} from "vue";
import {Mars3dFun} from "@/components/Mars3d/hooks/init";

onMounted(() => {
  window.mars3dFun = new Mars3dFun() // mars3d 类
  window.mars3dFun.initMars3d() // 初始化
})

</script>

<style scoped lang="scss">

#mars3dContainer {
  width: 100vw;
  height: 100vh;
}

</style>

    (3)/ src / components / Mars3d / init.ts

//引入cesium基础库
import "mars3d-cesium/Build/Cesium/Widgets/widgets.css";
// import * as Cesium from "mars3d-cesium";
//导入mars3d主库
import "mars3d/dist/mars3d.css";
import * as mars3d from "mars3d";
//导入mars3d插件(按需使用,需要先npm install)
import "mars3d-space";

export class Mars3dFun {
    private map: any

    constructor() {
        this.map = null
    }

    /* 初始化 */
    initMars3d() {
        this.map = new mars3d.Map('mars3dContainer', {
            terrain: { // 开启地形服务
                url: "http://data.mars3d.cn/terrain",
                show: true
            }
        }) // 初始化地图
        // 方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类)
        let tileLayer1 = new mars3d.layer.GaodeLayer({ // 高德卫星图
            layer: "img_d",
        })
        let tileLayer2 = new mars3d.layer.GaodeLayer({ // 高德标注
            layer: "img_z",
        })
        this.map.addLayer(tileLayer1) // 添加高德卫星底图
        this.map.addLayer(tileLayer2) // 添加高德底图标注
        this.map.unbindContextMenu() // 解除 map 已绑定的右键菜单
    }

}


http://www.kler.cn/a/385276.html

相关文章:

  • 在JS中, 0 == [0] 吗
  • DICOM标准:深入详解DICOM医学影像中的传输语法
  • C#笔记 —— 事件
  • RDD转换算子:【map】
  • 企业文件加密要怎么做?好用的10款企业文件加密软件排行榜!
  • Transformer和BERT的区别
  • sudo docker ps才能查看,docker ps不能查看问题
  • CKA认证 | 使用kubeadm部署K8s集群(v1.26)
  • android 配置鼠标右键快捷对apk进行反编译
  • 如何通过Python SDK更新Collection中已存在的Doc
  • 一文读懂肖特基二极管
  • 【汽车悬挂减震器】制造行业的市场需求与汽车产量呈明显的正相关关系
  • Leetcode 278 First Bad Version
  • 以梧桐数据库为例分析分组排序并取每组第二大数值对应的用户的SQL实现
  • Spring Boot 携手 Vue 构建校内订餐新体系
  • RibbitMQ-原理使用
  • Java NIO操作
  • Liunx:文件fd、重定向、管道
  • 全局变量之C与Pthon的差异
  • 若依管理系统使用已有 Nacos 部署流程整理
  • [JAVAEE] 面试题(四) - 多线程下使用ArrayList涉及到的线程安全问题及解决
  • 城镇住房保障:SpringBoot系统维护与升级
  • Python基于TensorFlow实现双向循环神经网络GRU加注意力机制分类模型(BiGRU-Attention分类算法)项目实战
  • 多线程案例---阻塞队列
  • RapidrepairController
  • linux 下 signal() 函数的用法,信号类型在哪里定义的?