日韩免费,日 韩 a v 在 线 看,北京Av无码,国模蔻蔻私拍一区

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

uniapp與Cesium及Mars3D開發(fā)指南(四)

通過npm便捷引入Cesium

在uniapp開發(fā)中,引入Cesium和Mars3D技術(shù)時(shí),采用npm包管理方式被認(rèn)為是最便捷的途徑。動(dòng)態(tài)引入方式不僅可以提高編譯速度,還得到了uni官方的推薦。直接從`node_modules`導(dǎo)入時(shí)可能會遇到控制臺報(bào)錯(cuò)的情況。盡管理論上可以正常運(yùn)作,但在實(shí)際操作中需解決此問題。

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

通過命令`npm install cesium --save`安裝Cesium包。按照npm上的示例進(jìn)行項(xiàng)目引入后,嘗試運(yùn)行項(xiàng)目時(shí)可能會遇到報(bào)錯(cuò)。查看源碼發(fā)現(xiàn),報(bào)錯(cuò)可能與缺少`CESIUM_BASE_URL`這個(gè)全局變量有關(guān)。由于uniapp自動(dòng)獲取路徑的語法存在問題,我們需要手動(dòng)設(shè)置這個(gè)變量,指向Cesium的靜態(tài)資源文件夾。

源碼中提供了`setBaseUrl`這個(gè)API,用于設(shè)置靜態(tài)資源路徑。我們需要根據(jù)Cesium的邏輯,設(shè)定一個(gè)指向?qū)隒esium源碼文件夾的路徑。這樣,即使uniapp自動(dòng)獲取路徑功能出現(xiàn)問題,也能確保Cesium正確加載所需的資源。

實(shí)際測試發(fā)現(xiàn),有兩種導(dǎo)入方式可以成功:一是直接import引入并設(shè)置Cesium的跨域和replaceAll的polyfill。這樣,Cesium就能在uniapp的app端正常渲染和運(yùn)行。

雖然直接import引入Cesium需要額外注意跨域和polyfill的設(shè)置,但通過正確的路徑配置,這種方式在uniapp app端開發(fā)中是完全可行的。

在Cesium中點(diǎn)擊自定義按鈕展開2D圖層

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

ThingJS是一個(gè)先進(jìn)的PaaS開發(fā)平臺,為開發(fā)者提供了一個(gè)方便、安全的云端開發(fā)環(huán)境,可隨時(shí)隨地基于各種工具組件進(jìn)行開發(fā)。

ThingJS界面概述

ThingJS提供了清晰的界面體系結(jié)構(gòu),以便于開發(fā)者進(jìn)行界面開發(fā)。其中,用于3D場景可視化的區(qū)域被稱為3D容器。

3D容器內(nèi)的界面展示

在3D容器內(nèi),ThingJS提供了3D和2D的界面展示能力。具體來說,可以利用Marker功能將圖標(biāo)或Canvas繪制的圖片展示在3D場景中,或綁定到3D物體上。通過WebView功能,可以將頁面嵌入到3D場景中。

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

2D界面的展示與操作

ThingJS的通欄組件

在3D容器外,ThingJS提供了通欄組件,如上下側(cè)通欄。如果用戶希望基于ThingJS構(gòu)建一套獨(dú)立的應(yīng)用系統(tǒng),可以使用通欄組件作為系統(tǒng)級別的菜單。這樣一來,用戶可以基于ThingJS強(qiáng)大的功能構(gòu)建豐富多樣的用戶界面和交互體驗(yàn)。Marker物體:圖片放置與動(dòng)態(tài)創(chuàng)建

一、引言

Marker物體是一種強(qiáng)大的工具,它允許你在虛擬場景中放置圖片,并根據(jù)需求調(diào)整其位置、大小和距離。想象一下,你正在為一個(gè)虛擬現(xiàn)實(shí)應(yīng)用或游戲添加環(huán)境元素,Marker物體將是一個(gè)不可或缺的助手。接下來,我們將深入了解如何使用Marker物體及其相關(guān)參數(shù)。

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

二、創(chuàng)建Marker物體

當(dāng)你想要?jiǎng)?chuàng)建一個(gè)Marker物體時(shí),你需要指定一些關(guān)鍵參數(shù)。這些參數(shù)包括:類型(type)、偏移量(offset)、大小(size)、圖片的URL(url)以及父物體(parent)。下面是一個(gè)基本的創(chuàng)建示例:

```javascript

app.create({

type: "Marker",

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

offset: [0, 2, 0],

size: [4, 4],

url: "",

parent: app.query("car01")[0]

});

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

```

在這個(gè)例子中:

我們指定了要?jiǎng)?chuàng)建的物體類型為“Marker”。

通過offset參數(shù),我們設(shè)置了Marker物體在自身坐標(biāo)系下的偏移量。

通過size參數(shù),我們設(shè)定了Marker物體的大小,這個(gè)大小是以米為單位的。

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

url參數(shù)用于指定圖片的URL。

parent參數(shù)用于指定Marker物體的父物體。

三、3D效果與距離

Marker物體默認(rèn)是受到距離遠(yuǎn)近影響的,呈現(xiàn)出近大遠(yuǎn)小的3D效果。這意味著隨著觀察者的移動(dòng),Marker物體的大小會相應(yīng)地變化,以模擬真實(shí)的視覺體驗(yàn)。Marker物體還能夠在3D空間中實(shí)現(xiàn)前后遮擋,使得場景更加真實(shí)和動(dòng)態(tài)。

四、更多參數(shù)選項(xiàng)

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

除了之前提到的參數(shù),還有一些額外的參數(shù)可以幫助你更好地控制Marker物體。例如,“keepSize”參數(shù),它可以控制Marker物體是否受距離遠(yuǎn)近影響而呈現(xiàn)近大遠(yuǎn)小的3D效果。如果設(shè)置為true,則Marker物體的大小將保持恒定,不受距離的影響,此時(shí)大小的單位將是屏幕的像素點(diǎn)。

五、使用canvas手動(dòng)創(chuàng)建動(dòng)態(tài)圖

除了使用上述參數(shù)在代碼中創(chuàng)建Marker物體,我們還可以利用H5的canvas來手動(dòng)創(chuàng)建動(dòng)態(tài)圖。通過canvas,我們可以繪制出更加復(fù)雜和動(dòng)態(tài)的圖像,將其添加到場景中,增強(qiáng)用戶體驗(yàn)。這需要一些額外的編程技巧,但一旦掌握,將為你帶來無限創(chuàng)意可能。

Marker物體是一個(gè)強(qiáng)大而靈活的工具,它允許你在虛擬場景中添加圖片元素,并根據(jù)需要進(jìn)行定制和調(diào)整。通過深入了解其參數(shù)和功能,你可以創(chuàng)造出令人驚嘆的虛擬世界。創(chuàng)建文本畫布功能

一、功能概述

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

在數(shù)字交互應(yīng)用中,我們經(jīng)常需要展示動(dòng)態(tài)文本信息。本次功能旨在創(chuàng)建一個(gè)文本畫布,用戶可以在特定的標(biāo)記上點(diǎn)擊,從而改變標(biāo)記上的數(shù)字顯示。該功能適用于各種場景,如游戲、導(dǎo)航等。

二、代碼實(shí)現(xiàn)

我們需要?jiǎng)?chuàng)建一個(gè)函數(shù)`createTextCanvas`,用于生成帶有文本的canvas元素。

```javascript

function createTextCanvas(text, canvas) {

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

// 如果未傳入canvas,則創(chuàng)建一個(gè)新的canvas元素

if (!canvas) {

canvas = document.createElement("canvas");

canvas.width = 64;

canvas.height = 64;

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

}

const ctx = canvas.getContext("2D");

// 設(shè)置背景色和邊框樣式

ctx.fillStyle = "rgb(32, 32, 256)";

ctx.beginPath();

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

ctx.arc(32, 32, 30, 0, Math.PI 2);

ctx.fill();

ctx.strokeStyle = "rgb(255, 255, 255)";

ctx.lineWidth = 4;

ctx.beginPath();

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

ctx.arc(32, 32, 30, 0, Math.PI 2);

ctx.stroke();

// 設(shè)置文本樣式并填充文本

ctx.fillStyle = "rgb(255, 255, 255)";

ctx.font = "32px sans-serif";

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

ctx.textAlign = "center";

ctx.textBaseline = "middle";

ctx.fillText(text, 32, 32);

return canvas;

}

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

```

接下來,在應(yīng)用的加載中,創(chuàng)建一個(gè)Marker類型的對象,并將其附加到car02元素上。為Marker對象添加點(diǎn)擊監(jiān)聽器,當(dāng)點(diǎn)擊時(shí),更新其canvas上的文本內(nèi)容。

三、參數(shù)說明

canvas參數(shù)用于接收canvas元素作為貼圖顯示。用戶可以通過修改該參數(shù)來自定義顯示內(nèi)容。還可以根據(jù)需要調(diào)整canvas的尺寸、樣式等屬性。

四、運(yùn)行效果

Cesium_應(yīng)用程序開發(fā):創(chuàng)新與測試的必經(jīng)之路

運(yùn)行應(yīng)用后,將在界面上顯示一個(gè)Marker對象。點(diǎn)擊Marker時(shí),其上的數(shù)字將隨機(jī)變化。用戶可以通過點(diǎn)擊來實(shí)時(shí)更新顯示的數(shù)字。此功能適用于需要?jiǎng)討B(tài)展示文本信息的場景。

五、總結(jié)與展望

本次功能實(shí)現(xiàn)了一個(gè)簡單的文本畫布功能,用戶可以通過點(diǎn)擊來更新顯示的文本內(nèi)容。未來,我們可以進(jìn)一步優(yōu)化性能,支持更復(fù)雜的文本格式和樣式,以及實(shí)現(xiàn)更多的交互功能。還可以將該功能應(yīng)用于其他場景,如游戲、地圖等,為用戶提供更豐富、便捷的交互體驗(yàn)。


本文原地址:http://m.czyjwy.com/news/82704.html
本站文章均來自互聯(lián)網(wǎng),僅供學(xué)習(xí)參考,如有侵犯您的版權(quán),請郵箱聯(lián)系我們刪除!
上一篇:Cesium開發(fā)實(shí)戰(zhàn)指南:構(gòu)建高效應(yīng)用與解決技術(shù)難題
下一篇:CEO揭秘:高效APP開發(fā)測試流程,助力解決交付質(zhì)量瓶頸問題