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

前端VUE框架通過Cesium加載3dtiles,計(jì)算3dtiles的面積

這篇具有很好參考價(jià)值的文章主要介紹了前端VUE框架通過Cesium加載3dtiles,計(jì)算3dtiles的面積。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前端VUE框架通過Cesium加載3dtiles,計(jì)算3dtiles的面積完整代碼

前端開發(fā)中,使用Vue框架可以幫助開發(fā)者更高效地開發(fā)復(fù)雜的Web應(yīng)用程序,并且越來越多的項(xiàng)目開始集成三維地球數(shù)據(jù)可視化。Cesium是一個(gè)開源的JavaScript庫,可以輕松地實(shí)現(xiàn)地球數(shù)據(jù)的可視化,同時(shí)支持3D場景的繪制。

本文將介紹如何使用Vue框架和Cesium加載3dtiles,以及在加載完成后如何計(jì)算3dtiles的面積。本文將會提供完整的代碼和樣例,以幫助初學(xué)者更容易地理解該過程。

界面的預(yù)覽

在本文中,我們將使用Vue框架和Cesium加載3dtiles文件,并且計(jì)算這個(gè)3dtiles的面積。下面是我們完成的UI界面的樣子。

當(dāng)用戶上傳3dtiles文件后,我們將會開始加載這個(gè)文件,并且在3D地球上繪制出來。同時(shí),我們會在地球的右上角展示出計(jì)算得到的面積。

開始編寫代碼

首先,我們需要在Vue項(xiàng)目中集成Cesium。我們可以通過在Vue項(xiàng)目中安裝Cesium相關(guān)的依賴包來完成。在控制臺中輸入以下命令:

npm install cesium

接下來,在Vue組件中,我們可以通過如下方式引入Cesium:

import * as Cesium from 'cesium/Cesium'
import 'cesium/Widgets/widgets.css'

當(dāng)然,你需要額外添加Cesium的樣式文件。

然后,我們需要創(chuàng)建一個(gè)Vue組件,以便我們在頁面上展示UI界面。在Vue組件的script標(biāo)簽中,我們首先需要引入Cesium。

<script>
    import * as Cesium from 'cesium/Cesium'
    import 'cesium/Widgets/widgets.css'
    export default {
        data() {
            return {
                viewer: null, // 用于存放3D地球?qū)ο?                area: null // 用于存放計(jì)算得到的面積
            }
        },
        methods: {
            // 加載3dtiles文件并繪制到3D地球上
            loadTileset() {
                const viewer = this.viewer
                const tileset = new Cesium.Cesium3DTileset({
                    url: 'static/models/Tileset/FirstPersonRunner/tileset.json'
                })
                viewer.scene.primitives.add(tileset)
                viewer.zoomTo(tileset)
            },
            // 計(jì)算3dtiles的面積
            calculateArea() {
                const that = this
                const viewer = this.viewer
                const tileset = viewer.scene.primitives.get(0)
                Cesium3DTilesInspector.TilesetPanel.getDefaultViewModels(scene, tileset).then(function(panel) {
                    that.area = panel.boundingSphere.area
                })
            }
        },
        mounted() {
            this.viewer = new Cesium.Viewer('cesiumContainer', {
                sceneMode: Cesium.SceneMode.SCENE3D,
                animation: false,
                timeline: false,
                vrButton: false,
                scene3DOnly: true,
                selectionIndicator: false,
                shadows: false
            })
            this.loadTileset() // 加載3dtiles文件并繪制到3D地球上
        }
    }
</script>

在上面的代碼中,我們創(chuàng)建了一個(gè)Vue對象,并且定義了兩個(gè)方法:loadTileset和calculateArea。在mounted方法中,我們初始化了3D地球?qū)ο?,并且調(diào)用loadTileset方法,將3dtiles文件繪制到地球上。

接下來,我們需要在模板中添加UI界面。在Vue組件的template標(biāo)簽中,我們可以按如下方式添加界面。

<template>
    <div>
        <div id="cesiumContainer"></div>
        <div>
            <input type="file" @change="loadTileset()">
            <button @click="calculateArea()">計(jì)算面積</button>
            <span v-if="area">面積: {{area}}</span>
        </div>
    </div>
</template>

在上面的代碼中,我們?yōu)橛脩籼峁┝艘粋€(gè)上傳文件的按鈕和一個(gè)計(jì)算面積的按鈕。在計(jì)算面積的按鈕旁邊,我們添加了一個(gè)span標(biāo)簽,用于展示計(jì)算出的面積。

最后,在style標(biāo)簽中添加一些樣式,以美化我們的界面。

<style>
    #cesiumContainer {
        width: 100%;
        height: 800px;
    }
    input[type="file"]{
        display: inline-block;
        margin-right: 10px;
    }
    button {
        display: inline-block;
        margin-right: 10px;
    }
    span {
        font-size: 20px;
    }
</style>

代碼解析

在上面的代碼中,我們定義的loadTileset方法用于加載并繪制3dtiles文件。由于Vue組件是異步的,所以我們需要使用Promise來處理3dtiles文件的加載。

const tileset = new Cesium.Cesium3DTileset({
    url: 'static/models/Tileset/FirstPersonRunner/tileset.json'
})
viewer.scene.primitives.add(tileset)
viewer.zoomTo(tileset)

在上面的代碼中,我們首先定義了一個(gè)Cesium3DTileset對象,然后通過viewer.scene.primitives.add(tileset)將這個(gè)對象添加到3D地球上,最后調(diào)用viewer.zoomTo(tileset)將地球縮放至3dtiles的范圍內(nèi)。

接下來,我們來看calculateArea方法,這個(gè)方法用于計(jì)算3dtiles的面積。

Cesium3DTilesInspector.TilesetPanel.getDefaultViewModels(scene, tileset).then(function(panel) {
    that.area = panel.boundingSphere.area
})

在上面的代碼中,我們使用Cesium3DTilesInspector工具來獲取3dtiles的TilesetPanel對象,并且計(jì)算這個(gè)對象的boundingSphere屬性的面積。

最后,我們需要在mounted方法中初始化3D地球?qū)ο?,并且調(diào)用loadTileset方法加載3dtiles文件。

this.viewer = new Cesium.Viewer('cesiumContainer', {
    sceneMode: Cesium.SceneMode.SCENE3D,
    animation: false,
    timeline: false,
    vrButton: false,
    scene3DOnly: true,
    selectionIndicator: false,
    shadows: false
})
this.loadTileset() // 加載3dtiles文件并繪制到3D地球上

在上面的代碼中,我們使用Cesium.Viewer對象初始化一個(gè)3D地球,并且傳遞了一些配置參數(shù)。最后,我們調(diào)用loadTileset方法,將3dtiles文件加載并且繪制到地球上。

總結(jié)

在本文中,我們介紹了如何使用Vue框架和Cesium通過加載3dtiles文件來展示3D地球,并且計(jì)算了3dtiles的面積。我們提供了完整的代碼和樣例,以幫助初學(xué)者更容易地學(xué)習(xí)此過程。

希望通過本文的介紹,能夠?qū)ψx者有所幫助。如果您有任何疑問或者建議,歡迎在評論區(qū)留言。文章來源地址http://www.zghlxwxcb.cn/news/detail-478099.html

到了這里,關(guān)于前端VUE框架通過Cesium加載3dtiles,計(jì)算3dtiles的面積的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Cesium地圖上加載3DTiles模型

    Cesium地圖上加載3DTiles模型

    1,使用Blender創(chuàng)建模型: 官網(wǎng)下載Blender:https://www.blender.org/,在Github上下載Building Tools插件,通過編輯-偏好設(shè)置-插件-安裝,導(dǎo)入壓縮包使用,這個(gè)可以自己創(chuàng)建小房子,文件-導(dǎo)出為obj格式 2,將.obj轉(zhuǎn)成3dtiles格式: 1,第一種方法通過加載本地文件展示: 1,github下載ObjTo3

    2024年02月03日
    瀏覽(97)
  • Cesium加載3Dtiles模型-大疆智圖

    Cesium加載3Dtiles模型-大疆智圖

    Cesium加載3Dtiles模型步驟: (一)如果您使用的是大疆智圖,則該軟件可以直接輸出3Dtiles格式(B3DM切片)的數(shù)據(jù),如圖所示: ? (二)如果您使用的是CC(Smart3D),該軟件可以輸出OSGB格式的數(shù)據(jù),我們可以借助: 1.osg2cesiumApp v1.3軟件來將我們的OSGB傾斜攝影數(shù)據(jù)轉(zhuǎn)換成3Dtil

    2024年02月11日
    瀏覽(119)
  • Cesium 加載3Dtiles數(shù)據(jù)-最佳方法對比

    Cesium 加載3Dtiles數(shù)據(jù)-最佳方法對比

    ? ? ? ? Cesium加載空間數(shù)據(jù)的方法有很多種,網(wǎng)絡(luò)上關(guān)于3Dtiles數(shù)據(jù)集加載的廢話連篇,看著就很無語。這里我本人直抒胸臆,簡單介紹一下數(shù)據(jù)的加載方式。 ? ? ? ? 先打開Cesium的深度檢測的開關(guān),也可以不打開。 ???????? ? ? ? 完成以上步驟后,利用Cesium的readyPromi

    2024年02月11日
    瀏覽(100)
  • cesium——加載3DTiles,模型的選中,高亮效果

    cesium——加載3DTiles,模型的選中,高亮效果

    3DTiles是一種用于組織和傳輸大規(guī)模地理數(shù)據(jù)的規(guī)范,旨在提供一種高效、可擴(kuò)展的方式來加載和顯示復(fù)雜的3D模型。它革新了地理數(shù)據(jù)可視化領(lǐng)域,為創(chuàng)建逼真的三維地圖提供了新的可能性。 3DTiles采用了一種層次化的數(shù)據(jù)結(jié)構(gòu),將地理信息按照空間范圍劃分成小塊,類似于

    2024年02月07日
    瀏覽(93)
  • Cesium加載城市白膜數(shù)據(jù)3DTiles

    Cesium加載城市白膜數(shù)據(jù)3DTiles

    首先,城市建筑數(shù)據(jù)可以去網(wǎng)上扒一些,拿到的都是 shp格式 的文件。 shp文件可以很方便的轉(zhuǎn)為 Geojson文件 ,然后再通過Cesium導(dǎo)入也可以實(shí)現(xiàn)效果。效果如下所示: 圖中就是用Geojson數(shù)據(jù)添加到地圖中,大約有117000條數(shù)據(jù),加載的效果還可以。但是數(shù)據(jù)量大加載時(shí)間會比較長

    2024年02月11日
    瀏覽(102)
  • cesium加載顯示點(diǎn)云及傾斜模型(3dtiles)

    cesium加載顯示點(diǎn)云及傾斜模型(3dtiles)

    ????????在cesium加載并顯示點(diǎn)云或者傾斜模型之前,需要將不同格式的數(shù)據(jù)轉(zhuǎn)為3dtiles,具體參考傾斜、點(diǎn)云轉(zhuǎn)3dtiles(osgb、las轉(zhuǎn)3dtiles)切片 ? ? ? ? 轉(zhuǎn)換完成后就可以寫代碼將其加載到cesium地球上。 ? ? ? ? 有時(shí)候加載完成并不能貼地顯示,或者貼地顯示的具體位置和底

    2024年04月23日
    瀏覽(91)
  • Cesium介紹及3DTiles數(shù)據(jù)加載時(shí)添加光照效果對比

    Cesium介紹及3DTiles數(shù)據(jù)加載時(shí)添加光照效果對比

    Cesium原意是化學(xué)元素銫,銫是制造原子鐘的關(guān)鍵元素,通過命名強(qiáng)調(diào)了Cesium產(chǎn)品專注于基于時(shí)空數(shù)據(jù)的實(shí)時(shí)可視化應(yīng)用。熟悉GIS開發(fā)領(lǐng)域的讀者都知道,Cesium是一個(gè)用于創(chuàng)建3D地理空間應(yīng)用程序的開源JavaScript庫,它允許開發(fā)人員在Web瀏覽器中構(gòu)建高性能的虛擬地球應(yīng)用,支持

    2024年01月25日
    瀏覽(89)
  • Cesium.js加載3dTiles格式傾斜攝模型影懸浮空中的解決辦法

    Cesium.js加載3dTiles格式傾斜攝模型影懸浮空中的解決辦法

    在之前的博文中,已經(jīng)講過如何在Cesium中加載3dTiles格式的傾斜攝影模型(Cesium加載3D Tiles模型)。最近發(fā)現(xiàn)一個(gè)問題,新加載的傾斜攝影模型,都漂浮在空中,無法很好的貼合地面。分析了一些這個(gè)問題,可能是由于以下原因造成的: 飛行器的精度 傾斜攝影的參數(shù)問題 Ces

    2024年02月12日
    瀏覽(176)
  • Cesium clipping planes 3dtiles模型剖切 3dtiles模型貼地 vue代碼

    Cesium clipping planes 3dtiles模型剖切 3dtiles模型貼地 vue代碼

    使用Cesium的clippingPlanes實(shí)現(xiàn)對3dtiles模型的剖切效果。 相關(guān)官方文檔地址:ClippingPlaneCollection、Cesium3DTileset 官方Demo地址:3D Tiles Clipping Planes 官方介紹:Cesium Feature Highlight: Clipping Planes 函數(shù)用于加載和顯示3D Tiles模型以及剪切平面clipping planes。 在函數(shù)內(nèi)部,首先創(chuàng)建了一個(gè) Cesium.P

    2024年04月23日
    瀏覽(25)
  • vue+cusium加載3dtiles模型

    vue+cusium加載3dtiles模型

    結(jié)合cesium,有很多種方法,這里舉例最簡單的,小白入門首選 添加完,就可以正常運(yùn)行了 正常打包完,直接打開index是不會加載的,有的還會報(bào)錯,這是跨域所致,要配置服務(wù)器 具體步驟 一、打開dist文件,輸入cmd 二、配置服務(wù)器npm install http-server -g 三、添加請求頭http-serv

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包