個人感覺這個問題的解決過程很有意思椒功,記錄下自己是如何把 mars3d 運行到 uniapp 安卓 app 上的
項目地址在這际起,有需要的可以直接拿走
如果你需要開發(fā)安卓 app?
如果你是一個前端
那你可能會用到 uniapp
再如果梁呈,你的業(yè)務場景涉及到了?WebGIS?相關的需求
并且指定了技術棧 Cesium
那么想進行業(yè)務開發(fā)嘁锯,就需用 uniapp + Cesium 運行到安卓手機上
問題是掂林,如何能暢快地運行 Cesium 到 uniapp 上呢
創(chuàng)建 app 項目什么的就不說了粘我,直接進入主題
uniapp 官方有個示例鼓蜒,里面說了 app 端如何加載 echarts?
https://zh.uniapp.dcloud.io/tutorial/renderjs.html
下載官方的示例查看,可以看到征字,echarts 是創(chuàng)建 script 標簽都弹,動態(tài)插入到全局中去的
照葫蘆畫瓢,加載 Cesiumjs?同理匙姜,直接在他的項目上去改
去 Cesium 官方 github 上去下載 Cesium 的最新版本?
https://github.com/CesiumGS/cesium/releases/tag/1.113
下載后解壓畅厢,cd 到?Cesium-1.113\Build?目錄下,可以看到這幾個文件
紅框的 Cesium 就是我們需要的文件了搁料,把這個目錄下的文件復制到項目下
可以看到需要 import?Cesiumjs 和一個 css 文件,由于 uniapp?的寫法是動態(tài)引入第三方庫郭计,所以我們把寫法改成和 uni 一樣的霸琴,先從 mounted 開始
改完重新運行代碼,查看控制臺
ok Cesium 有值昭伸,說明導入成功了梧乘,然后用 Cesium 官方的示例(記得改 Viewer 里的 id)
運行,可以看到控制臺?
這個錯誤是關于跨域的庐杨,這個加載跨域的問題前組長在兩年前通過改 Cesium 源碼的方式解決過选调,這里是前組長Yoo以前修改好的 Cesium uniapp項目的地址(https://ext.dcloud.net.cn/plugin?id=6540),他的 github 地址在這里?https://github.com/YoooooO-o
那么具體改了什么呢灵份?根據(jù)他發(fā)我的 markdown 文件
里面寫著這些
那么怎么做呢捺檬,只需在 Cesium 初始化的時候再层,對 Cesium?上的這幾個需要配置跨域的函數(shù)進行代理重寫一下就好了,此處感謝火星科技(mars3d)的汪浩堡纬,熟悉 Cesium 源碼且大佬范十足聂受,如圖
然后我們把需要重寫的函數(shù)加進去
運行,可以看到烤镐,Cesium 相關的元素都出來了
Cesium 的加載雖然完事了饺饭,但是圖上的地球,瓦片全都沒有顯示出來职车,接下來解決 Cesium 運行的第一個坑,圖片渲染的問題
本文使用 文章同步助手 同步