国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

這篇具有很好參考價(jià)值的文章主要介紹了VUE3-Cesium(加載GeoJSON數(shù)據(jù))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、準(zhǔn)備工作

1、新建vue項(xiàng)目

解決報(bào)錯(cuò):使用nvm后找不到vue -V找不到版本

2、安裝Cesium插件

3、安裝 Element Plus、unplugin-vue-components 和 unplugin-auto-import

4、按需自動(dòng)導(dǎo)入element-plus

測(cè)試按需自動(dòng)導(dǎo)入element-plus是否配置成功

二、項(xiàng)目代碼部分

1、引入sichuan.json文件

2、配置main.js文件

3、配置vue.config.js

4、配置App.vue

5、配置CesiumScene.vue

6、新建common文件夾

三、測(cè)試


一、準(zhǔn)備工作

1、新建vue項(xiàng)目

首先進(jìn)入【D:\my\vue-code】路徑下(此處創(chuàng)建在D:\my\vue-code下,請(qǐng)根據(jù)自身實(shí)際情況更改),然后進(jìn)入此文件夾的cmd命令行窗口。

執(zhí)行如下命令創(chuàng)建一個(gè)名為【vue3-cesium-start-master】的Vue項(xiàng)目,

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

直接選擇第一個(gè)選項(xiàng),點(diǎn)擊回車后,會(huì)自動(dòng)下載所需文件(包括node_modules),創(chuàng)建成功后,用vscode打開(kāi)文件夾。

解決報(bào)錯(cuò):使用nvm后找不到vue -V找不到版本

場(chǎng)景復(fù)現(xiàn):因?yàn)榻邮值捻?xiàng)目有多個(gè)node版本不一致,后來(lái)就用了nvm 的node.js管理工具,安裝好后覺(jué)得方便許多,這兩天準(zhǔn)備搭建一個(gè)vue3的項(xiàng)目,但是在cmd輸入vue -V 就看不到版本,報(bào)了一個(gè)“vue不是內(nèi)部或外部命令”。

原因:nvm中的nodejs版本找不到啟動(dòng)vue的路徑,所以報(bào)這個(gè)錯(cuò)誤。

解決方法

(1)找到vue.cmd把對(duì)應(yīng)的路徑,復(fù)制到我們的環(huán)境變量中

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

配置完然后重新打開(kāi)cmd 看看就可以了。

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

2、安裝Cesium插件

首先要下載安裝Cesium,安裝命令:

cnpm i -g cesium

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

或者在終端中進(jìn)入Vue項(xiàng)目目錄,運(yùn)行以下命令,利用npm引入Cesium插件,

npm i cesium vite-plugin-cesium vite -D

然后,安裝成功后,前端項(xiàng)目中package.json會(huì)自動(dòng)注冊(cè),?

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

3、安裝 Element Plus、unplugin-vue-components 和 unplugin-auto-import

?Element Plus官網(wǎng)地址:https://element-plus.gitee.io/zh-CN/guide/

(1)使用包管理器(如 NPM、Yarnpnpm)安裝 Element Plus

此處我使用的是npm安裝,

npm install element-plus --save

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

?(2)還需要安裝unplugin-vue-componentsunplugin-auto-import這兩款插件 ,

npm install -D unplugin-vue-components unplugin-auto-import

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

(3)安裝成功后,前端項(xiàng)目中package.json會(huì)自動(dòng)注冊(cè),?

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

4、按需自動(dòng)導(dǎo)入element-plus

地址:快速開(kāi)始 | Element Plus

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

?此處,我是把下列代碼插入到我的 Webpack 的配置文件中,

const { defineConfig } = require("@vue/cli-service");

// webpack.config.js
const AutoImport = require('unplugin-auto-import/webpack');
const Components = require('unplugin-vue-components/webpack');
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');

module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false, // 新增代碼
  // 對(duì)webpack配置
  configureWebpack: {
    plugins: [
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [ElementPlusResolver()],
      }),
    ],
  }
});

測(cè)試按需自動(dòng)導(dǎo)入element-plus是否配置成功

在App.vue中, 添加一個(gè)按鈕,用來(lái)測(cè)試是否配置成功,

<template>
  <el-button type="primary">按鈕</el-button>
  <router-view />
</template>

<style lang="scss"></style>

在瀏覽器打開(kāi)http://localhost:8080/進(jìn)行訪問(wèn),效果如下圖所示:?

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

?ok,配置成功了,說(shuō)明按需自動(dòng)導(dǎo)入element-plus已經(jīng)生效了。

二、項(xiàng)目代碼部分

1、引入sichuan.json文件

sichuan.json下載地址:DataV.GeoAtlas地理小工具系列

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

2、配置main.js文件

import { createApp } from "vue";
import App from "./App.vue";
import ElementPlus from "element-plus";
import "element-plus/theme-chalk/index.css";


const app = createApp(App)
app.use(ElementPlus)
app.mount("#app")

3、配置vue.config.js

const { defineConfig } = require('@vue/cli-service')
const path = require('path')
const webpack = require('webpack')
const CopyWebpackPlugin = require('copy-webpack-plugin')

function resolve(dir) {
  return path.join(__dirname, dir)
}

module.exports = defineConfig({
  transpileDependencies: true,
  configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src'),
      },
    },
    amd: {
      toUrlUndefined: true,
    },
    module: {
      unknownContextCritical: false,
    },
    plugins: [
      new CopyWebpackPlugin({
        patterns: [
          {
            from: 'node_modules/cesium/Build/Cesium/Workers',
            to: 'cesium/Workers',
          },
          {
            from: 'node_modules/cesium/Build/Cesium/ThirdParty',
            to: 'cesium/ThirdParty',
          },
          {
            from: 'node_modules/cesium/Build/Cesium/Assets',
            to: 'cesium/Assets',
          },
          {
            from: 'node_modules/cesium/Build/Cesium/Widgets',
            to: 'cesium/Widgets',
          },
        ],
      }),
      new webpack.DefinePlugin({
        // Define relative base path in cesium for loading assets
        CESIUM_BASE_URL: JSON.stringify('./cesium'),
      }),
    ],
  },
})

4、配置App.vue

<template>
  <div id="app">
    <CesiumScene />
  </div>
</template>

<script>
import CesiumScene from './components/CesiumScene.vue'
export default {
  name: 'App',
  components: {
    CesiumScene
  }
}
</script>

<style>
html, body, #app {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
</style>

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

5、配置CesiumScene.vue

<template>
  <div style="height: 100vh">
    <el-button type="primary" @click="addGeoJson()" round>addGeoJson</el-button>
    <div id="cesiumContainer" style="height: 100%"></div>
  </div>
</template>
<script>
import { onMounted } from 'vue'
import * as Cesium from 'cesium'
import { CesiumIonDefaultAccessToken } from '@/common/js/config'
// 沒(méi)有CesiumIonDefaultAccessToken則使用官方示例中的Token
Cesium.Ion.defaultAccessToken =
  CesiumIonDefaultAccessToken ||
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI2YmRiNjM4MC1kMDZkLTQ2NDQtYjQ3My0xZDI4MDU0MGJhZDciLCJpZCI6MzIxMzAsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1OTY1MjM4NzZ9.A3FBZ6HjKkTsOGnjwWWeO9L10HQ9c-wcF4c3dtTc4gQ'
// let viewer = null
// const initCesium = () => new Cesium.Viewer('cesiumContainer')
// onMounted(() => {
//   viewer = initCesium()
// })
export default {
  data() {
    return {
      viewer: {},
    };
  },
  mounted() {
    this.viewer = new Cesium.Viewer("cesiumContainer");
  },
  methods: {
    // 給圖層添加顏色
    async addGeoJson() {
      // 這里的load()函數(shù)返回的是一個(gè)promise 
      let res = await Cesium.GeoJsonDataSource.load("sichuan.json", {
        stroke: Cesium.Color.WHITE,
        fill: Cesium.Color.BLUE.withAlpha(0.3), //注意:顏色必須大寫(xiě),即不能為blue
        strokeWidth: 5,
      });
      console.log(res)
      // cesium提供的api加載方式
      this.viewer.dataSources.add(res);
 
      let entities = res.entities.values;
      let colorHash = {};
      for (let i = 0; i < entities.length; i++) {
        let entity = entities[i];
        let name = entity.name;
        let color = colorHash[name];
        if (!color) {
          color = Cesium.Color.fromRandom({
            alpha: 1,
          });
          colorHash[name] = color;
        }
        entity.polygon.material = color;
        entity.polygon.outline = false;
        entity.polygon.extrudedHeight = entity.properties.childrenNum * 5000; //高度擴(kuò)大5000倍,便于觀察
      }
    },
  },
};
</script>

<style scoped>
@import 'cesium/widgets.css';
#cesiumContainer {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
</style>

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

6、新建common文件夾

common文件夾的目錄結(jié)果如下:

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

?其中有兩個(gè)文件:

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

?VUE3-Cesium(加載GeoJSON數(shù)據(jù))

?

三、測(cè)試

首先vscode進(jìn)入【D:\my\vue-code\vue3-cesium-start-master】文件夾,目前的目錄結(jié)構(gòu),如下所示:

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

?然后vscode進(jìn)入此文件夾的終端命令行窗口,執(zhí)行如下指令運(yùn)行該項(xiàng)目:

npm run serve

VUE3-Cesium(加載GeoJSON數(shù)據(jù))?

在瀏覽器打開(kāi)http://localhost:8080/進(jìn)行訪問(wèn),效果如下圖所示:?

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

點(diǎn)擊按鈕之后,效果如下圖所示:?

VUE3-Cesium(加載GeoJSON數(shù)據(jù))

如上圖,說(shuō)明項(xiàng)目啟動(dòng)成功了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-500203.html

到了這里,關(guān)于VUE3-Cesium(加載GeoJSON數(shù)據(jù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WebGL,Cesium以及GeoJSON數(shù)據(jù)的簡(jiǎn)單介紹

    WebGL,Cesium以及GeoJSON數(shù)據(jù)的簡(jiǎn)單介紹

    目錄 一、WebGL 二、Cesium (1)Cesium:一個(gè)用于顯示三維地球和地圖的開(kāi)源js庫(kù)。 (2)Cesium的基本功能: (3)cesium的依賴性與技術(shù)標(biāo)準(zhǔn) (4)Cesium與周邊產(chǎn)品的關(guān)系 (5)Cesium viewer界面部件介紹 三、GeoJSON數(shù)據(jù) 【GeoJSON數(shù)據(jù)】 【GeoJSON 對(duì)象?】 1 幾何圖形 2 Feature 3 特征集合 【可

    2024年02月12日
    瀏覽(92)
  • 在vite創(chuàng)建的vue3項(xiàng)目中使用Cesium加載czml路徑信息和無(wú)人機(jī)模型

    在vite創(chuàng)建的vue3項(xiàng)目中使用Cesium加載czml路徑信息和無(wú)人機(jī)模型

    用到的區(qū)域文件、地圖標(biāo)記文件、路徑信息文件、模型文件 提取碼:99jq 使用vite創(chuàng)建vue3項(xiàng)目 cd到創(chuàng)建的項(xiàng)目文件夾中 安裝Cesium 配置 vite.config.js文件:添加Cesium并設(shè)置反向代理實(shí)現(xiàn)跨域。 style.css(可選):修改#app樣式 代碼 App.vue 解讀 加載token 創(chuàng)建查看器viewer,加載世界街道地

    2024年02月16日
    瀏覽(25)
  • 第六章 Cesium學(xué)習(xí)入門之添加Geojson數(shù)據(jù)(dataSource)

    第六章 Cesium學(xué)習(xí)入門之添加Geojson數(shù)據(jù)(dataSource)

    第一章 Cesium學(xué)習(xí)入門之搭建Vite+Vue3+Cesium開(kāi)發(fā)環(huán)境 第二章 Cesium學(xué)習(xí)入門之搭建Cesium界面預(yù)覽和小控件隱藏 第三章 Cesium學(xué)習(xí)入門之地形數(shù)據(jù)(DEM)的加載 第四章 Cesium學(xué)習(xí)入門之加載離線影像圖(tif) 第五章 Cesium學(xué)習(xí)入門之加載影像WMTS切片服務(wù)(ArcGIS/Geowebcache) 第六章 Ce

    2024年02月16日
    瀏覽(24)
  • vite+vue3+cesium大屏數(shù)據(jù)可視化項(xiàng)目——第一章:搭建項(xiàng)目

    vite+vue3+cesium大屏數(shù)據(jù)可視化項(xiàng)目——第一章:搭建項(xiàng)目

    目錄 系列文章目錄 前言 一、搭建項(xiàng)目 1.檢查node版本號(hào) 2.搭建vue3項(xiàng)目 二、配置cesium 1.前期準(zhǔn)備 2.安裝cesium 3.引入cesium 4.初始化頁(yè)面 總結(jié) ? 這幾年智慧城市、數(shù)字孿生、數(shù)字可視化這些高級(jí)詞匯可太多啦,招聘簡(jiǎn)介上也有很多要求會(huì)webGis等相關(guān)經(jīng)驗(yàn),所以我覺(jué)得最近來(lái)學(xué)一

    2024年02月07日
    瀏覽(31)
  • 【THREE.JS學(xué)習(xí)(3)】使用THREEJS加載GeoJSON地圖數(shù)據(jù)

    【THREE.JS學(xué)習(xí)(3)】使用THREEJS加載GeoJSON地圖數(shù)據(jù)

    本文接著系列文章(2)進(jìn)行介紹,以VUE2為開(kāi)發(fā)框架,該文涉及代碼存放在HelloWorld.vue中。 相較于上一篇文章對(duì)div命名class等,該文簡(jiǎn)潔許多。 接著引入核心庫(kù) 其中,{OrbitControls}為控制器,加載后可以通過(guò)鼠標(biāo)來(lái)移動(dòng)加載數(shù)據(jù)的方向、放縮等 Three.js中的坐標(biāo)系是以單位為米(

    2023年04月09日
    瀏覽(106)
  • 050:mapboxGL加載geojson數(shù)據(jù),同時(shí)包含點(diǎn)、多邊形的處理示例

    050:mapboxGL加載geojson數(shù)據(jù),同時(shí)包含點(diǎn)、多邊形的處理示例

    第050個(gè) 點(diǎn)擊查看專欄目錄 本示例的目的是介紹演示如何在vue+mapbox中加載geojson數(shù)據(jù),既顯示點(diǎn)又顯示多邊形。這個(gè)示例是顯示了一種處理方式,通過(guò)過(guò)濾的方式將數(shù)據(jù)分離化,點(diǎn)和多邊形通過(guò)兩個(gè)不同的圖層來(lái)加載表示。 直接復(fù)制下面的 vue+mapbox源代碼,操作2分鐘即可運(yùn)行

    2024年02月07日
    瀏覽(32)
  • vue結(jié)合Cesium加載gltf模型

    vue結(jié)合Cesium加載gltf模型

    Cesium支持什么格式? ????????Cesium支持的格式包括:3D模型格式(如COLLADA、gITF、OBJ)、影像格式(如JPEG、PNG、GeoTIFF)、地形格式(如STL、Heightmap)、矢量數(shù)據(jù)格式(如GeoJSON、KMZ)、時(shí)間動(dòng)態(tài)數(shù)據(jù)格式(如CZML),以及其他各種數(shù)據(jù)格式。此外,Cesium還通過(guò)插件支持其他特

    2024年02月01日
    瀏覽(26)
  • vue中使用cesium 加載shp文件

    vue中使用cesium 加載shp文件

    在cesium中加載shp文件,將shp文件打包為zip,直接加載zip文件,shp文件中需包含這四個(gè)文件 加載代碼 ?

    2024年02月12日
    瀏覽(35)
  • vue3+cesium項(xiàng)目搭建

    vue3+cesium項(xiàng)目搭建

    最近需要在一個(gè)Vue3的項(xiàng)目中使用到cesium,對(duì)于一個(gè)cesium沒(méi)有太多了解的人來(lái)說(shuō),還是比較麻煩的,本篇博文就將自己在這個(gè)過(guò)程踩的坑記錄下來(lái),有需要的可以看一下 1、vue+cesium框架搭建 2、項(xiàng)目運(yùn)行起來(lái)后,球體不出現(xiàn),只出現(xiàn)星空 持續(xù)ing… 1、初始化vue3項(xiàng)目框架 vue cre

    2024年02月15日
    瀏覽(23)
  • Cesium引入vite + vue3

    Cesium引入vite + vue3

    卸載命令 使用 vite.config.js 組件使用 加載高德地圖 高德地圖的加載方便很多,并不需要申請(qǐng)key,可以直接加載到我們的Cesium中。 加載ArcGISMap地圖

    2024年02月14日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包