vue使用Mars3D实现3d卫星轨道和3d地球图

行星轨迹制作_用3ds max制作三维行星运动动画 3ds max是一款广泛用于建筑、装饰、机械设计、模具制造等行业的专用软件,用它不仅可以制作形象逼真的物理模型,而且能够创作精巧的三维空间动画,用它来制作物理课件,可谓是巧夺天工.现以人教版新教材必修2第七章第1节行星的运动为例,展示用3ds max制作三维动画课件无与伦比的优越性.万有引力定律教学是通过分析太阳系行星的运动规律逐渐深入的.由于行星的运动我们我无法直接观察,要让学生了解行星的运行特... 阅读详情
AI摘要

本文详细介绍了如何在Vue应用中安装和配置Mars3D库,实现三维地球场景的创建,以及如何通过TLE数据展示卫星轨迹。涵盖了主库安装、Cesium模块引入、配置文件设置、组件使用和卫星列表生成等内容。

1、安装

//安装mars3d主库
npm install mars3d --save   

2、引入
main,js

import 'mars3d/dist/mars3d.css'
import * as mars3d from 'mars3d'
~~mars3d-space不引入,无法使用卫星的功能~~ 
import 'mars3d-space'
Vue.prototype.mars3d = mars3d;

vue.config.js

const path = require('path')
const webpack = require('webpack')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const cesiumSource = 'node_modules/mars3d-cesium/Build/Cesium/'
module.exports = {
    configureWebpack: (config) => {
        let plugins = []
        if (process.env.NODE_ENV === 'production') {
            plugins = [
                new webpack.DefinePlugin({
                    CESIUM_BASE_URL: JSON.stringify('static')
                }),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Workers'), to: 'static/Workers' }]),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Assets'), to: 'static/Assets' }]),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'ThirdParty'), to: 'static/ThirdParty' }]),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Widgets'), to: 'static/Widgets' }])
            ]
        } else {
            plugins = [
                new webpack.DefinePlugin({
                    CESIUM_BASE_URL: JSON.stringify('')
                }),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Workers'), to: 'Workers' }]),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Assets'), to: 'Assets' }]),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'ThirdParty'), to: 'ThirdParty' }]),
                new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }])
            ]
        }
        return {
            module: {
                unknownContextCritical: false,
                rules: [
                    {
                        test: /\.js$/,
                        enforce: 'pre',
                        include: path.resolve(__dirname, 'node_modules/mars3d-cesium/Source'),
                        sideEffects: false
                    }
                ]
            },
            optimization: {
                usedExports: true,
                splitChunks: {
                    maxInitialRequests: Infinity,
                    minSize: 0,
                    maxSize: 250000,
                    cacheGroups: {
                        vendor: {
                            test: /[\\/]node_modules[\\/]/,
                            priority: -10,
                            chunks: 'all',
                            name(module) {
                                const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1]
                                return `npm.${packageName.replace('@', '')}`
                            }
                        },
                        commons: {
                            name: 'Cesium',
                            test: /[\\/]node_modules[\\/]mars3d-cesium[\\/]Build[\\/]Cesium/,
                            priority: 10,
                            chunks: 'all'
                        }
                    }
                }
            },
            output: {
                sourcePrefix: ' '
            },
            amd: {
                toUrlUndefined: true
            },
            resolve: {
                alias: {
                    vue$: 'vue/dist/vue.esm.js',
                    '@': path.resolve('src')
                }
            },
            node: {
                fs: 'empty',
                Buffer: false,
                http: 'empty',
                https: 'empty',
                zlib: 'empty'
            },
            plugins: plugins
        }
    },
    // 关闭eslint
    lintOnSave: false,
    devServer: {
        overlay: {
            warning: false,
            errors: false
        }

    },
    //已省略其他配置
}

3、使用

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

<script>
export default {
  name: "index",
  components: {
  },
  data() {
    const basePathUrl = window.basePathUrl || ''
    return {
      configUrl: basePathUrl + 'config/config.json',
      map:""
    };
  },
  mounted() {
      this.$axios.get('/config/config.json').then(res=>{
        console.log(res)
        this.initMars3d(res.data.map3d)
      })
  },
  methods: {
    initMars3d(options) {
      let mars3d = this.mars3d
      //合并属性参数,可覆盖config.json中的对应配置
      let mapOptions = mars3d.Util.merge(options, {
        scene: {
          center: { lat: 12.845055, lng: 112.931363, alt: 24286797, heading: 3, pitch: -90 },
          cameraController: {
            zoomFactor: 3.0,
            minimumZoomDistance: 1000,
            maximumZoomDistance: 300000000,
            constrainedAxis: false, //解除在南北极区域鼠标操作限制
          },
          globe: { enableLighting: true },
          clock: {
            multiplier: 1, //速度
          },
        },
        control: {
          animation: false, //是否创建动画小器件,左下角仪表
          timeline: false, //是否显示时间线控件
        },

      });

      delete mapOptions.terrain;

      //创建三维地球场景
     this.map = new mars3d.Map("mars3dContainer", mapOptions);

      var tle_arr = [
        "COSMOS 33918U",
        "1 33918U 93036DX  21197.87508339  .00001232  00000-0  17625-3 0  9990",
        "2 33918  74.0595 343.7064 0054912  74.2148  45.2906 14.76790626663155",
        "COSMOS 33919U",
        "1 33919U 93036DY  21197.91197918  .00000904  00000-0  20362-3 0  9990",
        "2 33919  74.0505 161.6299 0033213 276.5546  83.1838 14.57578432657116",
        "COSMOS 33920U",
        "1 33920U 93036DZ  21197.66738688  .00000502  00000-0  17722-3 0  9999",
        "2 33920  74.0698  46.6248 0055820 106.9911 253.7370 14.36347026649192",
        "COSMOS 33921U",
        "1 33921U 93036EA  21197.38565197  .00009006  00000-0  82577-3 0  9990",
        "2 33921  74.0006 290.6759 0010303  43.2289 316.9701 14.94971510663519",
        "COSMOS 33922U",
        "1 33922U 93036EB  21197.56502581  .00000274  00000-0  89558-4 0  9994",
        "2 33922  74.0508 266.4243 0024779  54.6361  12.2512 14.42936298653573",
        "COSMOS 33924U",
        "1 33924U 93036ED  21197.52273790  .00000077  00000-0  98248-4 0  9996",
        "2 33924  73.9172 330.8929 0412462 300.5791  55.5226 13.47506448610712",
        "COSMOS 33928U",
        "1 33928U 93036EH  21197.42931451  .00000092  00000-0  35017-4 0  9996",
        "2 33928  73.9247 191.2154 0063743 117.8632 242.9002 14.43123719653944",
        "COSMOS 33929U",
        "1 33929U 93036EJ  21198.19991980  .00001910  00000-0  36273-3 0  9999",
        "2 33929  74.0305 128.7466 0003289 114.3771 359.7968 14.64926844657886",
        "COSMOS 33930U",
        "1 33930U 93036EK  21198.38692156  .00000817  00000-0  22790-3 0  9999",
        "2 33930  74.0285 287.1899 0028219 336.8694  92.7860 14.47667592652647",
      ];
      this.createSatelliteList(tle_arr);
    },
    createSatelliteList(arr) {
      let mars3d = this.mars3d
      //创建矢量数据图层

      let graphicLayer = new mars3d.layer.GraphicLayer();
      this.map.addLayer(graphicLayer);

      graphicLayer.on(mars3d.EventType.click, function (event) {
        console.log("单击了卫星", event);
      });

      for (let i = 0; i < arr.length; i += 3) {
        const weixin = new mars3d.graphic.Satellite({
          name: arr[i],
          tle1: arr[i + 1],
          tle2: arr[i + 2],
          model: {
            url: "//data.mars3d.cn/gltf/mars/weixin.gltf",
            scale: 1,
            minimumPixelSize: 60,
            autoHeading: true,
            show: true,
          },
          label: {
            color: "#ffffff",
            opacity: 1,
            font_family: "楷体",
            font_size: 30,
            outline: true,
            outlineColor: "#000000",
            outlineWidth: 3,
            background: true,
            backgroundColor: "#000000",
            backgroundOpacity: 0.5,
            font_weight: "normal",
            font_style: "normal",
            pixelOffsetX: 0,
            pixelOffsetY: -20,
            scaleByDistance: true,
            scaleByDistance_far: 10000000,
            scaleByDistance_farValue: 0.4,
            scaleByDistance_near: 100000,
            scaleByDistance_nearValue: 1,
            show: true,
          },
          // cone: {
          //   sensorType: mars3d.graphic.SatelliteSensor.Type.Rect,
          //   angle1: 30,
          //   angle2: 15,
          //   color: '#6ef500',
          //   reverse: true,
          //   show: true,
          // },
          path: {
            show: true,
            color: "#e2e2e2",
            opacity: 0.5,
            width: 1,
          },
        });
        graphicLayer.addGraphic(weixin);

        // RectSensor锥体(比Satellite内置的cone效率略高)
        // const rectSensor = new mars3d.graphic.RectSensor({
        //   position: new Cesium.CallbackProperty(function (time) {
        //     return weixin.position;
        //   }, false),
        //   style: {
        //     angle1: 30,
        //     angle2: 15,
        //     length: 90000,
        //     color: "rgba(0,255,0,0.4)",
        //     outline: true,
        //     topShow: true,
        //     topSteps: 2,
        //     rayEllipsoid: true,
        //     heading: new Cesium.CallbackProperty(function (time) {
        //       return weixin.heading;
        //     }, false),
        //   },
        //   reverse: true,
        // });
        // graphicLayer.addGraphic(rectSensor);
      }
    }
  },
};
</script>

<style lang="scss" scoped>
.available{
  background: url("../../public/config/config.json");
}
</style>

josn文件

{
  "map3d": {
    "scene": {
      "center": { "lat": 30.526361, "lng": 116.335987, "alt": 45187, "heading": 0, "pitch": -45 },
      "scene3DOnly": false,
      "shadows": false,
      "removeDblClick": true,
      "sceneMode": 3,
      "showSun": true,
      "showMoon": true,
      "showSkyBox": true,
      "showSkyAtmosphere": true,
      "fog": true,
      "fxaa": true,
      "globe": {
        "depthTestAgainstTerrain": false,
        "baseColor": "#546a53",
        "showGroundAtmosphere": true,
        "enableLighting": false
      },
      "cameraController": {
        "zoomFactor": 3.0,
        "minimumZoomDistance": 1,
        "maximumZoomDistance": 50000000,
        "enableRotate": true,
        "enableTranslate": true,
        "enableTilt": true,
        "enableZoom": true,
        "enableCollisionDetection": true,
        "minimumCollisionTerrainHeight": 15000
      }
    },
    "control": {
      "homeButton": false,
      "baseLayerPicker": false,
      "sceneModePicker": false,
      "vrButton": false,
      "fullscreenButton": false,
      "navigationHelpButton": false,
      "animation": false,
      "timeline": false,
      "infoBox": false,
      "geocoder": false,
      "geocoderConfig": { "key": ["ae29a37307840c7ae4a785ac905927e0"] },
      "selectionIndicator":false,

      "defaultContextMenu": false,
      "mouseDownView": false,
      "compass": { "bottom": "toolbar", "right": "5px" },
      "distanceLegend": { "left": "100px", "bottom": "2px" },
      "locationBar": {
        "fps": false,
        "crs":"CGCS2000_GK_Zone_3",
        "crsDecimal":0,
        "template": "<div>经度:{lng}</div> <div>纬度:{lat}</div> <div>横{crsx}  纵{crsy}</div> <div>海拔:{alt}米</div> <div>层级:{level}</div><div>方向:{heading}°</div> <div>俯仰角:{pitch}°</div><div>视高:{cameraHeight}米</div>"
      }
    },
    "terrain": {
      "url": "//data.mars3d.cn/terrain",
      "show": true
    },
    "basemaps": [
      { "id": 10, "name": "地图底图", "type": "group" },
      {
        "id": 2021,
        "pid": 10,
        "name": "天地图影像",
        "icon": "http://mars3d.cn/example/img/basemaps/tdt_img.png",
        "type": "tdt",
        "layer": "img_d",
        "key": ["9ae78c51a0a28f06444d541148496e36"],
        "show": true
      },
      {
        "pid": 10,
        "name": "天地图电子",
        "icon": "http://mars3d.cn/example/img/basemaps/tdt_vec.png",
        "type": "group",
        "layers": [
          { "name": "底图", "type": "tdt", "layer": "vec_d", "key": ["9ae78c51a0a28f06444d541148496e36"] },
          { "name": "注记", "type": "tdt", "layer": "vec_z", "key": ["9ae78c51a0a28f06444d541148496e36"] }
        ]
      },
      {
        "pid": 10,
        "name": "高德影像",
        "type": "group",
        "icon": "http://mars3d.cn/example/img/basemaps/gaode_img.png",
        "layers": [
          { "name": "底图", "type": "gaode", "layer": "img_d" },
          { "name": "注记", "type": "gaode", "layer": "img_z" }
        ]
      },
      {
        "pid": 10,
        "name": "高德电子",
        "type": "gaode",
        "icon": "http://mars3d.cn/example/img/basemaps/gaode_vec.png",
        "layer": "vec"
      },
      {
        "pid": 10,
        "name": "百度影像",
        "type": "group",
        "icon": "http://mars3d.cn/example/img/basemaps/bd-img.png",
        "layers": [
          { "name": "底图", "type": "baidu", "layer": "img_d" },
          { "name": "注记", "type": "baidu", "layer": "img_z" }
        ]
      },
      {
        "pid": 10,
        "name": "百度电子",
        "icon": "http://mars3d.cn/example/img/basemaps/bd-vec.png",
        "type": "baidu",
        "layer": "vec"
      },
      {
        "pid": 10,
        "name": "腾讯影像",
        "icon": "http://mars3d.cn/example/img/basemaps/gaode_img.png",
        "type": "group",
        "layers": [
          { "name": "底图", "type": "tencent", "layer": "img_d" },
          { "name": "注记", "type": "tencent", "layer": "img_z" }
        ]
      },
      {
        "pid": 10,
        "name": "腾讯电子",
        "icon": "http://mars3d.cn/example/img/basemaps/gaode_vec.png",
        "type": "tencent",
        "layer": "vec"
      },
      {
        "pid": 10,
        "name": "ArcGIS影像",
        "icon": "http://mars3d.cn/example/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": "http://mars3d.cn/example/img/basemaps/bingAerial.png",
        "type": "bing",
        "key": "AuKhM0WRkjhX8E4y1OM0TukYycaw_4Vh3eSfXONDf7OARls-WEB3K_Rfx89bWxof",
        "layer": "Aerial"
      },
      {
        "pid": 10,
        "name": "OSM地图",
        "type": "xyz",
        "icon": "http://mars3d.cn/example/img/basemaps/osm.png",
        "url": "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
        "subdomains": "abc"
      },
      {
        "id": 2017,
        "pid": 10,
        "name": "蓝色底图",
        "icon": "http://mars3d.cn/example/img/basemaps/bd-c-midnight.png",
        "type": "xyz",
        "url": "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}",
        "chinaCRS": "GCJ02",
        "enablePickFeatures": false
      },
      {
        "pid": 10,
        "name": "黑色底图",
        "icon": "http://mars3d.cn/example/img/basemaps/bd-c-dark.png",
        "type": "tencent",
        "layer": "custom",
        "style": "4"
      },
      {
        "pid": 10,
        "name": "灰色底图",
        "icon": "http://mars3d.cn/example/img/basemaps/bd-c-grayscale.png",
        "type": "mapbox",
        "username": "marsgis",
        "styleId": "cki0a92b123qo1aluk0e5v7sb",
        "scaleFactor": true
      },
      {
        "pid": 10,
        "name": "离线地图  (供参考)",
        "type": "xyz",
        "icon": "http://mars3d.cn/example/img/basemaps/mapboxSatellite.png",
        "url": "//data.mars3d.cn/tile/googleImg/{z}/{x}/{y}.jpg",
        "minimumLevel": 1,
        "maximumLevel": 18,
        "minimumTerrainLevel": 1,
        "maximumTerrainLevel": 18,
        "rectangle": { "xmin": -180, "xmax": 180, "ymin": -85, "ymax": 85 }
      },
      {
        "pid": 10,
        "name": "单张图片 (本地离线)",
        "icon": "http://mars3d.cn/example/img/basemaps/offline.png",
        "type": "image",
        "url": "//data.mars3d.cn/file/img/world/world.jpg"
      }
    ],
    "layers": [
      { "id": 20, "name": "辅助图层", "type": "group" },
      {
        "pid":20,
        "name": "行政区划界线",
        "type": "xyz",
        "url": "https://t{s}.tianditu.gov.cn/DataServer?T=ibo_w&x={x}&y={y}&l={z}&tk=9ae78c51a0a28f06444d541148496e36",
        "subdomains": "01234567",
        "maximumLevel": 10,
        "show": false
      },
      {
        "pid":20,
        "name": "天地图注记",
        "type": "tdt",
        "layer": "img_z",
        "key": ["9ae78c51a0a28f06444d541148496e36"],
        "show": false
      },
      { "id": 30, "name": "实时路况", "type": "group" },
      {
        "pid":30,
        "name": "高德实时路况",
        "type": "gaode",
        "layer": "time",
        "minimumTerrainLevel": 4,
        "minimumLevel": 4,
        "proxy": "//server.mars3d.cn/proxy/"
      },
      {
        "pid":30,
        "name": "百度实时路况",
        "type": "baidu",
        "layer": "time"
      }
    ]
  }
}

效果图在这里插入图片描述

Mars3D快速上手 Mars3D 的获取下载并集成到自己项目中 阅读详情

相关推荐

【mars3d】Vue3项目集成mard3d实现gis空间地理系统

vue3项目集成mars3d框架

球球博客 2782

Mars3d插件参考开发教程并在相关页面引入

mars3d.graphic.CanvasBillboard is not a constructor 缺少类型的报错解决方案 mars3d.layer.HeatLayer is not a constructor报错解决方案

m0_69803146的博客 2762

mars3d入门环境配置部署踩坑

mars3d,入门,环境配置,部署,踩坑,vue

qq_44757213的博客 1862

Mars3d项目启动上的一些坑

Mars3d,cesium

m0_56026872的博客 6748

从零开始Vue项目中使用MapboxGL开发三维地图教程(七)创建一个自动旋转的地球、添加一个3D模型、实现在两个地图之间滑动和同步来比较两个地图

实现思路:通过在动画结束时调用easeTo,旋转动画将无限期地继续。旋转在用户交互时暂停,并且在高缩放级别时减慢到停止。实现功能:地球仪和camera动画结合在一起,创建旋转行星效果。

tigerhhzz的博客 2197

cesium多颗卫星绕着不同的轨道旋转示例

本示例的目的是介绍演示如何在vue+satellite项目中模拟多颗卫星的运行轨迹和覆盖状态。

大剑师兰特的GIS世界 1840

【mars3d - 报错】使用mars3d加载时的一些报错和不生效问题

在使用过程中遇到过很多报错,不管大的还是小的,在这里总结下,应该会持续更新; 可能是因为 arcType:Cesium.arcType.NONE 与 clampToGround:true 是相互冲突的,两个都设置就会报错的;只能二选一了 这个就比较简单,就是样式没引入,新建个css || less 文件,引入下就好; 如果是mars3d官网的样式,直接将对应文件引入即可; 在里面写了按钮,点击却没有触发事件; 比如下面,岳西水厂的按钮就可以触发,大别山水厂的按钮就触发不了; 设置pointerEv

m0_53584457的博客 2187

Vue.js与OpenLayers实时显示单个卫星的位置及轨迹

在这篇文章中,我们将使用Vue.js和OpenLayers来实时显示单个卫星的位置及轨迹。在SatelliteTracker组件的initMap方法中,我们可以添加获取卫星位置和轨迹数据的代码。接下来,我们将创建一个名为SatelliteTracker的Vue组件,用于显示地图和卫星位置。请注意,上述代码仅作为示例演示,并未涉及实际的卫星位置和轨迹数据的获取和处理。在上面的代码中,我们引入了OpenLayers的必要模块,并在mounted钩子函数中初始化地图。步骤3:获取卫星位置和轨迹数据。

CsCufft的博客 549

Mars3D使用教程

​//安装mars3d插件(按需安装)​//安装copy-webpack-plugin插件在第3步中使用,根据webpack版本安装,不匹配的版本可能出错,版本需要5.0//引入cesium基础库​//导入mars3d主库​//导入mars3d插件(按需使用,需要先npm install).

qq_42250281的博客 5672

DEJA_VU3D - Cesium功能集 之 107-卫星探测效果

本文主要是实现卫星探测的效果实现以及源代码奉上

总得学点什么的博客 1559

207:vue+openlayers 动态位置高度角度,模拟卫星地面覆盖区域的大小

第207个本示例的目的是介绍演示如何在vue+openlayers中卫星接收覆盖范围的场景,动态设置卫星经度、纬度、高度、俯仰角、转向角、天线可视角度等信息,计算并画出地面的覆盖区域。这是在地球是平整的情况下的简单推论,由于地球是球体,真实情况跟这个是有一定差距的。

大剑师兰特的GIS世界 1188

vue+echarts实现3d地图——引入3d地图,加点,加点击事件

先看效果图: 1,获取相当于的json文件,推荐一个获取各个市县的json文件地址点击前往 将下载好的josn文件重命名,简短点. 一共就三个文件 第一个就是json文件, 第二个是myMap.js (function(root, factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['exports',.

$ 1万+

基于Cesium+VUE实现模拟卫星轨道(高空)效果组件,完整demo和源代码,代码未加密/未压缩,可直接调用运行

基于Cesium+VUE实现模拟卫星轨道(高空)效果组件,完整demo和源代码,代码未加密/未压缩,可直接调用运行 文章描述:https://blog.csdn.net/qq_34205305/article/details/125493400 代码不易,略收小费,使用过程中如果有任何问题欢迎在文章下进行评论或者私信,百分百回复哦

vue使用百度地图GL 卫星地球地图 避坑一 BMAP_EARTH_MAP出现 undefined报错的问题

目录. 避坑系列的目录 示例中心中关于地球的示例还是这么写的 但是在使用的时候你就会发现,这个东西已经改名了 你可以改成这个试试: this.map.setMapType('B_EARTH_MAP');// 设置地图类型为地球模式

关于我遇到的或大或小的问题 3926

从时序博弈到数据稳定:CS1237驱动中的信号滤波与卡尔曼实践

本文探讨了CS1237高精度ADC驱动在复杂工业环境中的信号处理挑战,重点介绍了一阶滤波与自适应卡尔曼滤波算法的实践应用。通过参数优化和动态调整策略,有效提升了数据稳定性和抗干扰能力,为嵌入式系统在噪声环境下的精密测量提供了可靠解决方案。

rnn9storyteller的博客 864

基于IC617下Layout XL的使用

基于IC617下Layout XL的使用

weixin_43816759的博客 1万+

Vue3 Echarts散点图+高德地图+卫星地图(二)——Echarts配置散点图高德卫星地图版

Vue3 Echarts散点图+高德地图+卫星地图(二)——Echarts配置散点图高德卫星地图版

zmsup.com 1万+

麒麟操作系统安装达梦数据库ARM版

Linux安装达梦数据库ARM版

运维@小兵的博客 8769

vue3_vite_ts_cesium实现地球自转

本文介绍如何使用 Vue3、Vite、TypeScript 和 Cesium 实现数字地球浏览器,通过 icrf 函数实现地球的自转。包括初始化 Vue3 项目、配置 Vite、创建数字地球浏览器、添加到 Vue3 项目中等。通过本文可了解如何使用 Vite 配置 Vue3 项目,使用 TypeScript 编写 Vue3 项目,以及如何使用 Cesium 实现数字地球浏览器。阅读本文可以深入理解 Vue3 组件化思想和 Cesium 使用方法。

u012425087的博客 944

如何利用Dpabi,AFNI,FSL软件计算种子点的功能连接?

fsl_glm 得到的是线性回归系数(beta coefficient),由于在自变量和因变量标准化(均值为 0,标准差为 1)的情况下,简单线性回归的回归系数和皮尔逊相关系数是相同的,因此这是一种间接的方法。(3)上一步得到的 PCC.nii.gz 文件是 Harvard-Oxford 概率模板中的后扣带回,每个体素中的数值(1-100)表示该体素属于 PCC 的概率,反映 PCC 在不同被试中的变异大小,也表示我们对于某个体素属于PCC 的信心。接下来,我们来聊聊功能连接在数据处理里的具体应用。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 7842

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南

OpenClaw已经开源3个月有余,作为深耕AI Agent领域的博主,我亲身探索了各种基于OpenClaw的赚钱方法,也踩过坑、付出了时间与精力。现在,我将这些真金白银砸出来的实战经验,毫无保留地总结成这个专栏,分享给不想从零开始摸索的你。博主在优快云已有7万+粉丝和1100万+阅读量,但这却是我的第一个付费专栏。正因如此,我比任何人都更珍惜这个“第一次”。我会像一个手艺人打磨作品一样,死磕每一篇文章的质量,并持续根据订阅者的反馈优化内容。也许你的疑问就是当篇文章的优化点。

冯·诺依曼 2442

vuejs+d3.js开发的轨道图+饼图

应公司要求开发了一个流程关联关系轨道图,在开发的过程中发现可以把统计功能也一块做了,所以就有了现在的轨道图+饼图分析的功能。废话不多少,先上效果图: 采用的vuejs+elementui+d3.js开发,组件就只有两个,一个是上面的轨道图和饼图,一个是下面的table。d3.js画图还是比较容易上手,由于新版本的文档较少,我就照着官网的例子一步步调试,整个轨道图和饼图都是参照了好几个官网示例...

dreamof2015的博客 6523

危废焚烧优化控制系统设计与实现:基于数据驱动的控制参数预测

本文提出了一种基于数据驱动的危险废物焚烧过程优化控制方法。系统利用历史运行数据和实时监测数据,通过深度学习模型预测关键控制参数,实现焚烧过程的智能化控制。系统采用Python开发,结合TensorFlow/PyTorch框架,构建了完整的数据采集、预处理、特征工程、模型训练和实时预测闭环系统。该系统能够处理多变量非线性关系,适应工况变化,从历史数据中学习最优控制策略,相比传统PID控制方法具有显著优势。论文详细介绍了系统架构、算法设计和实现细节,为危废焚烧过程的优化控制提供了有效解决方案。

huanghm88的专栏 206

vue+mapbox实现地图3D地图展示效果

其中包括了mapbox各种插件的使用包括了全图模式,定位,地图遮挡层,鹰眼地图,地图标注,测量距离、面积。具体代码示例如下: <template> <el-container> <el-header> <el-row class="boxoption"> <el-select v-model="value" id='menu' clearable> <el-option i

weixin_44378416的博客 6819

使用linuxdeployqt打包Qt程序问题及解决方法

安装过程中提示缺少依赖multiarch-support: 下载对应依赖包。安装过程中提示缺少libpq.so.5: 下载对应依赖包。下载libmysqlclient18/5.6.25。

weixin_74239923的博客 1059

网络安全系列-四十三:使用Suricata分析恶意流量pcap文件

本文基于[网络安全系列-三十六:使用Suricata IDS分析pcap文件]和 [网络安全系列-四十二: Suricata之rulesets的激活、更新及动态加载]的基础上,使用suricata针对包含恶意流量的pcap文件进行分析,触发事件告警,并对suricata输出的日志进行逐个分析,让你掌握针对恶意流量的分析步骤,及怎么查看suricata输出的日志。

penriver的博客 2887
上一篇: vue实现3d饼图-Highcharts
下一篇: 最新数组方法(包括es6)
言只  石皮
博客等级 码龄7年 21粉丝 38原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言只 石皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值