vue使用cesium創(chuàng)建數(shù)據(jù)白模方式
使用cesium創(chuàng)建數(shù)據(jù)白模
引入cesium
引入cesium.js相關(guān)資源,這這里說明一下為什么沒有使用npm install cesium,因?yàn)槭褂胣pm下載cesium,打包的時(shí)候文件太大了,所以在這里使用了cdn引入的方式;
<link rel="external nofollow" rel="stylesheet"> <script src="https://cesium.com/downloads/cesiumjs/releases/1.74/Build/Cesium/Cesium.js"></script>
使用
在使用的頁面引入widgets.css,也可以直接在main.js中直接引入
<template> <div class=""> <div id="cesiumContainer"> </div> </div> </template>
<script> import 'cesium/Build/Cesium/Widgets/widgets.css'; export default { name: 'HelloWorld', data() { return { viewer:null } }, mounted(){ this.initCesium() }, methods:{ initCesium(){ Cesium.Ion.defaultAccessToken = "申請(qǐng)的token"; Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees( 90, -20, 110, 90); //西南東北,默認(rèn)顯示中國 this.viewer = new Cesium.Viewer('cesiumContainer', { imageryProvider: new Cesium.ArcGisMapServerImageryProvider({ url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer' }), animation: false, timeline: false, //時(shí)間線 fullscreenButton: true, //全屏模式 infoBox: false, //要素信息框 homeButton: false, //顯示主頁 geocoder: true, //搜索位置 sceneModePicker: true,//模式切換 selectionIndicator: true, //展示三維的指示器 navigationHelpButton: false, //幫助按鈕 navigationInstructionsInitiallyVisible: false }); // var longitude = 113.3061993318322; //地圖設(shè)置默認(rèn)位置 // var latitude = 22.97302468714043; var height = -1.1406325468715177e-9; var heading = 0; var tileset = new Cesium.Cesium3DTileset({ url:'https://lab.earthsdk.com/model/702aa950d03c11e99f7ddd77cbe22fea/tileset.json', //測試數(shù)據(jù)上海東方明珠建筑數(shù)據(jù) maximumMemoryUsage: 100,//不可設(shè)置太高,目標(biāo)機(jī)子空閑內(nèi)存值以內(nèi),防止瀏覽器過于卡 maximumScreenSpaceError: 32,//用于驅(qū)動(dòng)細(xì)節(jié)細(xì)化級(jí)別的最大屏幕空間錯(cuò)誤;較高的值可提供更好的性能,但視覺質(zhì)量較低。 maximumNumberOfLoadedTiles: 1000, //最大加載瓦片個(gè)數(shù) shadows: false,//是否顯示陰影 skipLevelOfDetail: true,// 確定是否應(yīng)在遍歷期間應(yīng)用詳細(xì)級(jí)別跳過(默認(rèn)false) baseScreenSpaceError: 1024,//When skipLevelOfDetailis true,在跳過詳細(xì)級(jí)別之前必須達(dá)到的屏幕空間錯(cuò)誤(默認(rèn)1024) skipScreenSpaceErrorFactor: 16,// 定義要跳過的最小屏幕空間錯(cuò)誤的乘數(shù)。與 一起使用skipLevels來確定要加載哪些圖塊(默認(rèn)16) skipLevels: 1,//skipLevelOfDetail是true 一個(gè)常量,定義了加載圖塊時(shí)要跳過的最小級(jí)別數(shù)。為 0 時(shí),不跳過任何級(jí)別。與 一起使用skipScreenSpaceErrorFactor來確定要加載哪些圖塊。(默認(rèn)1) immediatelyLoadDesiredLevelOfDetail: false,//當(dāng)skipLevelOfDetail是時(shí)true,只會(huì)下載滿足最大屏幕空間錯(cuò)誤的圖塊。忽略跳過因素,只加載所需的圖塊(默認(rèn)false) loadSiblings: false,// 如果為true則不會(huì)在已加載完概況房屋后,自動(dòng)從中心開始超清化房屋 --- 何時(shí)確定在遍歷期間skipLevelOfDetail是否true始終下載可見瓦片的兄弟姐妹(默認(rèn)false) cullWithChildrenBounds: true,//是否使用子邊界體積的并集來剔除瓦片(默認(rèn)true) dynamicScreenSpaceError: true,//減少距離相機(jī)較遠(yuǎn)的圖塊的屏幕空間錯(cuò)誤(默認(rèn)false) dynamicScreenSpaceErrorDensity: 0.00278,//數(shù)值加大,能讓周邊加載變快 --- 用于調(diào)整動(dòng)態(tài)屏幕空間誤差的密度,類似于霧密度(默認(rèn)0.00278) dynamicScreenSpaceErrorFactor: 4.0,// 用于增加計(jì)算的動(dòng)態(tài)屏幕空間誤差的因素(默認(rèn)4.0) dynamicScreenSpaceErrorHeightFalloff: 0.25//密度開始下降的瓦片集高度的比率(默認(rèn)0.25) }); this.viewer.scene.primitives.add(tileset); tileset.readyPromise.then(function(argument) { var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height); var mat = Cesium.Transforms.eastNorthUpToFixedFrame(position); var rotationX = Cesium.Matrix4.fromRotationTranslation(Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(heading))); Cesium.Matrix4.multiply(mat, rotationX, mat); tileset._root.transform = mat; this.viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height + 1000)}); }); }, } } </script>
<style lang="scss" scoped> #cesiumContainer{ width: 100%; height: 1000px; } </style>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue安裝依賴npm install時(shí)的報(bào)錯(cuò)問題及解決
這篇文章主要介紹了Vue安裝依賴npm install時(shí)的報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06vue如何解決el-select下拉框顯示ID不顯示label問題
這篇文章主要介紹了vue如何解決el-select下拉框顯示ID不顯示label問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06vue3開啟攝像頭并進(jìn)行拍照的實(shí)現(xiàn)示例
本文主要介紹了vue3開啟攝像頭并進(jìn)行拍照的實(shí)現(xiàn)示例,主要是使用navigator.mediaDevices.getUserMedia這個(gè)API來實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01vue3使用高德地圖,自定義點(diǎn)標(biāo)記、默認(rèn)點(diǎn)聚合樣式、點(diǎn)擊點(diǎn)標(biāo)記獲取信息
這篇文章主要介紹了vue3使用高德地圖,自定義點(diǎn)標(biāo)記、默認(rèn)點(diǎn)聚合樣式、點(diǎn)擊點(diǎn)標(biāo)記獲取信息的相關(guān)知識(shí),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-01-01vue實(shí)現(xiàn)點(diǎn)擊某個(gè)div顯示與隱藏內(nèi)容功能實(shí)例
最近做項(xiàng)目有用到某個(gè)div顯示與隱藏內(nèi)容,所以下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)點(diǎn)擊某個(gè)div顯示與隱藏內(nèi)容功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12