91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue中怎么安裝使用cesium

發布時間:2023-05-04 10:32:31 來源:億速云 閱讀:127 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“vue中怎么安裝使用cesium”,內容詳細,步驟清晰,細節處理妥當,希望這篇“vue中怎么安裝使用cesium”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

vue-cli-plugin-cesium

專門為腳手架vue-cli3.0和2.0打造的針對Cesium的VueCli擴展插件,自動化包括:

1.自動擴展 VueCLI 中 Cesium 相關的 webpack 配置

2.添加一個 cesium 別名,以便我們在項目中輕松的引入 Cesium 文件資源

  • 使 Cesium 對象實例可在每個 Vue 模塊中使用而無須 import 引入

  • 使 webpack 可正常打包 Cesium

  • 允許 webpack 友好地在 Cesium 中使用 require,解決 require 引入警告

  • 開發環境生成 sourcemap,生產環境取消 sourcemap

  • 生產環境抽取公共模塊執行壓縮

  • 生產環境 loader 切換到優化模式

3.自動在全局 main.js 中引入Widgets.css,可選

4.自動在 components/ 文件夾下生成示例文件,可選

自動擴展 VueCLI 中 Cesium 相關的 webpack 配置

安裝步驟

使用方式1:

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

使用方式2:

首先安裝 vue-cli-plugin-cesium 插件,推薦使用 yarn 安裝,因為它更簡潔
// npm
npm install --save-dev vue-cli-plugin-cesium
// yarn
yarn add vue-cli-plugin-cesium

安裝完成后我們要使用 vue invoke 來初始化這個插件
vue invoke vue-cli-plugin-cesium
// 非全局安裝的vue-cli可以
npx vue invoke vue-cli-plugin-cesium

安裝過程中出現的3個問題:

  • (1)版本選擇最新版本

  • (2)是否全局引入樣式,該操作將自動在main.js引入widgets.css? yes

  • (3)是否添加示例組件到項目components目錄? yes

出現問題

/node_modules/cesium/Source/ThirdParty/zip.js" 這個文件不能打包
解決辦法:package.json中"dependencies": { "cesium": "1.80.0" }版本切換為1.80.0,目前1.85.0會報錯

配上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 是否在保存的時候檢查
  lintOnSave: false,
  // webpack-dev-server 相關配置
  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的問題
      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,顯示插件未安裝時,只需要刪除依賴包,直接yarn重新下載依賴即可

最后貼上我的頁面使用代碼:

<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(模型移動)'" />
    <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:圖層選擇器,選擇要顯示的地圖服務和地形服務
        baseLayerPicker: true,
        // navigationHelpButton:導航幫助按鈕,顯示默認的地圖控制幫助
        navigationHelpButton: true,
        // animation:動畫器件,控制視圖動畫的播放速度
        animation: true,
        // creditContainer:版權顯示,顯示數據歸屬,必選
        // creditContainer: "credit",
        // timeline: 時間線設置,控制視圖動畫的播放速度
        timeline: true,
        // fullscreenButton: 全屏按鈕
        fullscreenButton: true,
        // vrButton: vr按鈕
        vrButton: true,
        imageryProviderViewModels: vmodels,
        // selectedImageryProviderViewModel: 選擇基礎圖象層的視圖模型
        selectedImageryProviderViewModel: vmodels[1],
      });
      viewer.scene.debugShowFramesPerSecond = true; // 顯示幀速(fps)
    }
  }
};
</script>
<style scoped>
.map-box {
  width: 100%;
  height: 100%;
}
#cesiumContainer {
  width: 100%;
  height: 100%;
}
</style>

讀到這里,這篇“vue中怎么安裝使用cesium”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

斗六市| 清苑县| 松滋市| 东平县| 青河县| 广安市| 汉源县| 子洲县| 石嘴山市| 盐边县| 潮州市| 芜湖县| 阿城市| 绿春县| 濉溪县| 类乌齐县| 淄博市| 晋宁县| 绍兴市| 民丰县| 明水县| 临邑县| 蒙自县| 彭阳县| 武安市| 五原县| 石景山区| 武平县| 义乌市| 丽水市| 南汇区| 寿宁县| 武乡县| 延庆县| 安陆市| 张家港市| 高邑县| 永修县| 吴忠市| 平邑县| 黄大仙区|