最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中安裝使用cesium方式(親測(cè)可用)

 更新時(shí)間:2023年04月29日 11:11:40   作者:ccc陳陳陳  
這篇文章主要介紹了vue中安裝使用cesium方式(親測(cè)可用),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前提

最近想寫一個(gè)自己關(guān)于cesium的demo庫(kù),發(fā)現(xiàn)網(wǎng)上用法很多,加在自己項(xiàng)目中卻各種不行,最后選擇了最方便的vue-cli-plugin-cesium

vue-cli-plugin-cesium

專門為腳手架vue-cli3.0和2.0打造的針對(duì)Cesium的VueCli擴(kuò)展插件,自動(dòng)化包括:

1.自動(dòng)擴(kuò)展 VueCLI 中 Cesium 相關(guān)的 webpack 配置

2.添加一個(gè) cesium 別名,以便我們?cè)陧?xiàng)目中輕松的引入 Cesium 文件資源

  • 使 Cesium 對(duì)象實(shí)例可在每個(gè) Vue 模塊中使用而無(wú)須 import 引入
  • 使 webpack 可正常打包 Cesium
  • 允許 webpack 友好地在 Cesium 中使用 require,解決 require 引入警告
  • 開發(fā)環(huán)境生成 sourcemap,生產(chǎn)環(huán)境取消 sourcemap
  • 生產(chǎn)環(huán)境抽取公共模塊執(zhí)行壓縮
  • 生產(chǎn)環(huán)境 loader 切換到優(yōu)化模式

3.自動(dòng)在全局 main.js 中引入Widgets.css,可選

4.自動(dòng)在 components/ 文件夾下生成示例文件,可選

自動(dòng)擴(kuò)展 VueCLI 中 Cesium 相關(guān)的 webpack 配置

安裝步驟

使用方式1:

推薦使用 vue add 這種方式安裝,一步到位,簡(jiǎn)單便捷
vue add vue-cli-plugin-cesium
// 非全局安裝的vue-cli可以
npx vue add vue-cli-plugin-cesium

使用方式2:

首先安裝 vue-cli-plugin-cesium 插件,推薦使用 yarn 安裝,因?yàn)樗?jiǎn)潔
// npm
npm install --save-dev vue-cli-plugin-cesium
// yarn
yarn add vue-cli-plugin-cesium
復(fù)制代碼
安裝完成后我們要使用 vue invoke 來(lái)初始化這個(gè)插件
vue invoke vue-cli-plugin-cesium
// 非全局安裝的vue-cli可以
npx vue invoke vue-cli-plugin-cesium

安裝過(guò)程中出現(xiàn)的3個(gè)問(wèn)題:

  • (1)版本選擇最新版本
  • (2)是否全局引入樣式,該操作將自動(dòng)在main.js引入widgets.css? yes
  • (3)是否添加示例組件到項(xiàng)目components目錄? yes

出現(xiàn)問(wèn)題

/node_modules/cesium/Source/ThirdParty/zip.js" 這個(gè)文件不能打包
解決辦法:package.json中"dependencies": { "cesium": "1.80.0" }版本切換為1.80.0,目前1.85.0會(huì)報(bào)錯(cuò)

配上vue.config.js

// vue.config.js
const CopyWebpackPlugin = require("copy-webpack-plugin");
const webpack = require("webpack");
const path = require("path");

let cesiumSource = "./node_modules/cesium/Source";
let cesiumWorkers = "../Build/Cesium/Workers";

module.exports = {
  // 基本路徑
  publicPath: "./",
  // 輸出文件目錄
  outputDir: "dist",
  // eslint-loader 是否在保存的時(shí)候檢查
  lintOnSave: false,
  // webpack-dev-server 相關(guān)配置
  devServer: {

   open: process.platform === "darwin",
    host: "0.0.0.0",
    port: 8082,
    https: false,
    hotOnly: false
  },
  configureWebpack: {

   output: { sourcePrefix: " " },
   amd: { toUrlUndefined: true },
   resolve: {
   	alias: {
        vue$: "vue/dist/vue.esm.js",
        "@": path.resolve("src"),
        cesium: path.resolve(__dirname, cesiumSource)
      }
   },
   plugins: [
      new CopyWebpackPlugin([
        {
          from: path.join(cesiumSource, cesiumWorkers), to: "Workers"
        }
      ]),
      new CopyWebpackPlugin([
        {
          from: path.join(cesiumSource, "Assets"), to: "Assets"
        }
      ]),
      new CopyWebpackPlugin([
        {
          from: path.join(cesiumSource, "Widgets"), to: "Widgets"
        }
      ]),
      new CopyWebpackPlugin([
        {

          from: path.join(cesiumSource, "ThirdParty/Workers"),
          to: "ThirdParty/Workers"
        }
      ]),
      new webpack.DefinePlugin({
		CESIUM_BASE_URL: JSON.stringify("./")
      })
    ],
    module: {

      //解決Critical dependency: require function is
      // used in a way in which dependencies cannot be statically extracted的問(wèn)題
      unknownContextCritical: false
    }
  },
  chainWebpack: config => {
    const oneOfsMap = config.module.rule('scss').oneOfs.store
    oneOfsMap.forEach(item => {
      item
        .use('sass-resources-loader')
        .loader('sass-resources-loader')
        .options({
          // Provide path to the file with resources
          // 要公用的scss的路徑
          resources: './src/assets/css/global.scss'
        })
        .end()
    })
  },
}

可以直接引入我的vue.config.js,顯示插件未安裝時(shí),只需要?jiǎng)h除依賴包,直接yarn重新下載依賴即可

最后貼上我的頁(yè)面使用代碼:

<template>
  <div class="map-box">
    <div id="cesiumContainer"></div>
  </div>
</template>

<script> 
export default {
  name: "", 
  mounted() {
    // var viewer = new Cesium.CesiumWidget('cesiumContainer')

    // eslint-disable-next-line no-undef
    var viewer = new Cesium.Viewer("cesiumContainer");
    
    // eslint-disable-next-line no-console
    console.log(viewer)
  }
};
</script> 
<style scoped>
  .map-box{
    width: 100%;
    height: 100%;
  }
  #cesiumContainer{
    width: 100%;
    height: 100%;
  }
</style>

完整使用代碼:

<template>
  <div class="cc-model-move-">
    <cc-header :headtitle="'ModelMove(模型移動(dòng))'" />
    <cc-scroll>
      <div class="map-box">
        <div id="cesiumContainer"></div>
      </div>
      <!-- <CesiumViewer /> -->
    </cc-scroll>
  </div>
</template>
<script>
const COMPONENT_NAME = "dialog-from";
// import * as Cesium from "cesium";
// import "cesium/Build/Cesium/Widgets/widgets.css";
// import CesiumViewer from '../../components/CesiumExample/No01-init'
import ccHeader from "../../components/cc-header/cc-header.vue";
import ccScroll from "../../components/cc-scroll/cc-scroll.vue";
export default {
  name: COMPONENT_NAME,
  components: {
    ccHeader,
    ccScroll,
    // CesiumViewer
  },
  props: {},
  data() {
    return {};
  },
  mounted() {
    this.initView();
  },
  methods: {
    initView() {
      // var viewer = new Cesium.Viewer("cesiumContainer")
      // console.log(viewer, "viewer");
      const vmodels = Cesium.createDefaultImageryProviderViewModels()
      var token = "0b018552994f71a9467d24461a8f8238";
      Cesium.Ion.defaultAccessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzZjQ0Mjg3Yy05ZDcxLTQyZDAtYTY3Yy03YmI0MDM3MDZhMjgiLCJpZCI6NzI3NjQsImlhdCI6MTYzNjM2MDU3MH0.yEsenwMWNDoP9-4CoT77mLJpJNJKtbiDSaD9jiv5O8s";
      var viewer = new Cesium.Viewer("cesiumContainer", {
        geocoder: true,
        // homeButton:視角返回初始位置
        homeButton: true,
        // sceneModePicker:選擇視角的模式,分別為3d,2d,哥倫布視圖
        sceneModePicker: true,
        // baseLayerPicker:圖層選擇器,選擇要顯示的地圖服務(wù)和地形服務(wù)
        baseLayerPicker: true,
        // navigationHelpButton:導(dǎo)航幫助按鈕,顯示默認(rèn)的地圖控制幫助
        navigationHelpButton: true,
        // animation:動(dòng)畫器件,控制視圖動(dòng)畫的播放速度
        animation: true,
        // creditContainer:版權(quán)顯示,顯示數(shù)據(jù)歸屬,必選
        // creditContainer: "credit",
        // timeline: 時(shí)間線設(shè)置,控制視圖動(dòng)畫的播放速度
        timeline: true,
        // fullscreenButton: 全屏按鈕
        fullscreenButton: true,
        // vrButton: vr按鈕
        vrButton: true,
        imageryProviderViewModels: vmodels,
        // selectedImageryProviderViewModel: 選擇基礎(chǔ)圖象層的視圖模型
        selectedImageryProviderViewModel: vmodels[1],
      });
      viewer.scene.debugShowFramesPerSecond = true; // 顯示幀速(fps)
    }
  }
};
</script>
<style scoped>
.map-box {
  width: 100%;
  height: 100%;
}
#cesiumContainer {
  width: 100%;
  height: 100%;
}
</style>

效果圖:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 記一次用ts+vuecli4重構(gòu)項(xiàng)目的實(shí)現(xiàn)

    記一次用ts+vuecli4重構(gòu)項(xiàng)目的實(shí)現(xiàn)

    這篇文章主要介紹了記一次用ts+vuecli4重構(gòu)項(xiàng)目的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • vuex中的5個(gè)屬性使用方法舉例講解

    vuex中的5個(gè)屬性使用方法舉例講解

    vuex是專門為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式,下面這篇文章主要給大家介紹了關(guān)于vuex中5個(gè)屬性使用方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 在nuxt中使用路由重定向的實(shí)例

    在nuxt中使用路由重定向的實(shí)例

    這篇文章主要介紹了在nuxt中使用路由重定向的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue3中nextTick()應(yīng)用實(shí)例詳解

    vue3中nextTick()應(yīng)用實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于vue3中nextTick()應(yīng)用的相關(guān)資料,nextTick()等待下一次DOM更新刷新的工具方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 某些場(chǎng)景下建議vue query代替pinia原理解析

    某些場(chǎng)景下建議vue query代替pinia原理解析

    這篇文章主要為大家介紹了某些場(chǎng)景下建議vue-query代替pinia原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • vue elementUI table表格自定義樣式滾動(dòng)效果

    vue elementUI table表格自定義樣式滾動(dòng)效果

    這篇文章主要介紹了vue elementUI table表格自定義樣式滾動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-08-08
  • vite vue3 路由配置@找不到文件的問(wèn)題及解決

    vite vue3 路由配置@找不到文件的問(wèn)題及解決

    在Vite項(xiàng)目中配置路由時(shí),可能會(huì)遇到文件路徑錯(cuò)誤導(dǎo)致的加載失敗問(wèn)題,常見的解決辦法包括安裝路徑處理插件、正確設(shè)置vite.config.js中的路徑別名以及重啟項(xiàng)目,通過(guò)正確配置,可以確保路由正確加載對(duì)應(yīng)的界面文件,避免路徑錯(cuò)誤導(dǎo)致的問(wèn)題
    2024-10-10
  • Vue實(shí)現(xiàn)當(dāng)前頁(yè)面刷新的七種方法總結(jié)

    Vue實(shí)現(xiàn)當(dāng)前頁(yè)面刷新的七種方法總結(jié)

    大家在vue項(xiàng)目中當(dāng)刪除或者增加一條記錄的時(shí)候希望當(dāng)前頁(yè)面可以重新刷新,但是vue框架自帶的router是不支持刷新當(dāng)前頁(yè)面功能,所以本文就給大家分享了七種vue實(shí)現(xiàn)當(dāng)前頁(yè)面刷新的方法,需要的朋友可以參考下
    2023-07-07
  • vue3獲取ref實(shí)例結(jié)合ts的InstanceType問(wèn)題

    vue3獲取ref實(shí)例結(jié)合ts的InstanceType問(wèn)題

    這篇文章主要介紹了vue3獲取ref實(shí)例結(jié)合ts的InstanceType問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue實(shí)現(xiàn)文本展開收起功能

    Vue實(shí)現(xiàn)文本展開收起功能

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)文本展開收起功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評(píng)論

库尔勒市| 汾西县| 三明市| 望都县| 保定市| 化州市| 溧阳市| 阳江市| 海淀区| 高安市| 佛冈县| 武汉市| 淅川县| 都江堰市| 白银市| 隆林| 农安县| 南漳县| 康马县| 留坝县| 渭源县| 博野县| 东莞市| 辽宁省| 静安区| 怀柔区| 湖北省| 屏东县| 安顺市| 阳谷县| 铁岭县| 施甸县| 武夷山市| 迁西县| 澄江县| 林口县| 印江| 铜鼓县| 宕昌县| 伊春市| 威海市|