導航:首頁 > 文件教程 > cesiumjs教程

cesiumjs教程

發布時間:2021-10-11 14:44:53

A. 如何用Django配置本地的cesium

把這個文件拷貝到本地的靜態文件下面,直接引用本地的js文件

B. cesium 怎樣設置web伺服器

1.安裝node.js

雙擊運行安裝包,安裝路徑可以自定義,或者默認都可以,安裝完成後,打開命令行,輸入node -v,如果結果為版本號,表明安裝成功。如下圖所示。

在瀏覽器中輸入自己剛配置的IP地址,彈出cesium的頁面,就說明環境搭建完成。

C. cesium中如何點擊自定義按鈕展開2D圖層

ThingJS 是一個先進的 PaaS 開發平台,開發者可以方便、安全地基於雲端的各種工具組件隨時隨地進行開發。

ThingJS 界面概述‍

為了便於開發者在ThingJS下進行界面開發,ThingJS 提供的界面體系結構目錄如下:

上述ThingJS界面體系中,進行3D場景可視化的區域,我們定義為3D容器,如下圖所示:

Marker 物體可以添加一個圖片放置到你希望的位置,也可以將這個圖片作為孩子添加到對象身上,隨著對象一同移動。

例子 1:

  • app.create({

  • type: "Marker",

  • offset: [0, 2, 0],

  • size: [4, 4],

  • url: "https://thingjs.com/static/images/warning1.png",

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

  • 參數:

  • type : 通知系統創建 Marker 物體;

  • offset : 設置自身坐標系下偏移量為[0, 2, 0];

  • size : 設置 Marker 物體大小,也可以添單獨數字如 4,等同於[4,4],大小是以米計算的;

  • url : 圖片的 url;

  • parent :指定 Marker 的父物體;

  • 運行結果見下圖。Marker 默認是受距離遠近影響,呈現近大遠小的 3D 效果,也會在 3D 空間中實現前後遮擋。

    例子 2:

  • app.create({

  • type: "Marker",

  • offset: [0, 8, 0],

  • size: 2,

  • keepSize: true,

  • url: "https://thingjs.com/static/images/reminder.png",

  • parent: app.query(".Building")[1]});

  • 參數:

  • keepSize: 控制是否受距離遠近影響,呈現近大遠小的 3D 效果。如果設置 true,表示保持大小,不隨距離近大遠小,此時 size 的單位是屏幕的像素點;

  • offset : 設置自身坐標系下偏移量為[0, 2, 0];

  • size : 設置 Marker 物體大小,也可以添單獨數字如 4,等同於[4,4],大小是以米計算的;

  • url : 圖片的 url;

  • parent :指定 Marker 的父物體;

  • 運行結果見下圖:

    我們還可以使用 h5 的 canvas 手動創建動態圖。

    例子 3:

  • function createTextCanvas(text, canvas) {

  • if (!canvas) {

  • canvas = document.createElement("canvas");

  • canvas.width = 64;

  • canvas.height = 64;

  • }


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

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

  • ctx.beginPath();

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

  • ctx.fill();


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

  • ctx.lineWidth = 4;

  • ctx.beginPath();

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

  • ctx.stroke();


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

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

  • ctx.textAlign = "center";

  • ctx.textBaseline = "middle";

  • ctx.fillText(text, 32, 32);

  • return canvas;}app.on('load', function (ev) {

  • var marker = app.create({

  • type: "Marker",

  • offset: [0, 2, 0],

  • size: 3,

  • canvas: createTextCanvas('100'),

  • parent: app.query('car02')[0]

  • }).on('click', function (ev) {

  • var txt = Math.floor(Math.random() * 100);

  • ev.object.canvas = createTextCanvas(txt, ev.object.canvas)

  • })})

  • 參數:

  • canvas: 接收 canvas 作為貼圖顯示

  • 運行結果見下圖,在 Marker 上點擊時,會改變標記上的數字:

    D. 為什麼vue用cesium比原生vue界面要暗淡一些

    webpack.base.conf.js

    添加代碼
    constCopyWebpackPlugin=require('-webpack-plugin')
    //ThepathtotheCesiumsourcecode
    constcesiumSource=path.resolve(__dirname,'../node_moles/cesium/Source')
    constcesiumWorkers='../Build/Cesium/Workers'
    output:{
    //
    sourcePrefix:'',
    }
    alias:{
    //Cesiummolename
    'cesium':path.resolve(__dirname,cesiumSource),
    }
    mole:{
    unknownContextCritical:false,
    rules:[
    {
    test:/.js$/,
    loader:'babel-loader',
    include:[resolve('src'),resolve('test'),resolve('node_moles/webpack-dev-server/client')]
    }
    ]
    }
    plugins:[
    //CopyCesiumAssets,Widgets,andWorkerstoastaticdirectory
    newCopyWebpackPlugin([{
    //from:path.join(cesiumSource,'Workers'),
    from:path.join(cesiumSource,cesiumWorkers),
    to:'Workers'}]),
    newCopyWebpackPlugin([{
    from:path.join(cesiumSource,'Assets'),
    to:'Assets'}]),
    newCopyWebpackPlugin([{
    from:path.join(cesiumSource,'Widgets'),
    to:'Widgets'}]),
    ]
    webpack.dev.conf.js
    constpath=require('path')
    constCopyWebpackPlugin=require('-webpack-plugin')
    devServer:{
    //historyApiFallback:true
    historyApiFallback:{rewrites:[{from:/.*/,to:path.posix.join(config.dev.assetsPublicPath,'index.html')},],},
    contentBase:config.build.assetsRoot,//forCesium
    }
    plugins:[
    newwebpack.DefinePlugin({
    'process.env':require('../config/dev.env'),
    //
    CESIUM_BASE_URL:JSON.stringify('/')}),
    //customstaticassets
    newCopyWebpackPlugin([{from:path.resolve(__dirname,'../static'),to:config.dev.assetsSubDirectory,ignore:['.*']}]),
    ]

    E. Cesiumjs可以載入傾斜攝影的OSGB數據嗎

    打開LocaSpace Viewer軟體。

    攝影測量數據轉換——
    把osgb格式的攝影測量數據轉換成lfp格式數據文件,場景瀏覽速度更快。
    單擊傾斜攝影->數據轉換,彈出如下對話框,
    找到要轉換的數據位置,設置投影位置(場景中心點或自定義設置坐標),點擊確定後即可實現。

    載入傾斜攝影測量數據圖層——
    單擊傾斜攝影->打開數據,找到文件本地存放位置,點擊打開。

    瀏覽傾斜攝影數據效果如圖。

    F. cesium 和 Three.js有什麼區別,以及二者與WebGL 的關系

    我也想做3D。暫時還在門外,以下僅供參考。
    Cesium是國外一個基於javaScript編寫的使用WebGL的地圖引擎。看到這個問題,第一次知道它。專做地圖的看樣子,類似於jquery之類的,jquery方便快速出網站,cesium方便快速出地圖網站。
    Three.js知道一點,是做3D的基礎庫啊,可以做任意的3D的東西。做動畫,做游戲的吧。
    WebGL 是一個底層標准吧,它不是一個具體的工程應用。它本身不是javascript的東西,印象中他是專門做圖像圖像的,更關注底層硬體的渲染和性能之類。
    我覺得是javascript 在這個WebGL 的繪圖標准上,定義了canvas, 熟悉不,canvas的各種繪圖標准應該是參考的這個標准。Canvas 提供了最基本的點線面的繪制,是基本api。然後Three是對canvas的一層封裝,方便更加快速地繪制一個球,一個立方體,然後動起來。

    G. cesium上如何綁定地球圖片添加點擊事件

    拾取和選擇

    ThingJS 系統內置了很多事件,比點擊滑鼠、鍵盤輸入、層級變化等。用戶可以監聽這些事件,在事件回調中進行相應的業務邏輯處理網頁鏈接‍

    拾取

    通過屬性和介面獲取滑鼠拾取(Pick)的物體

    當滑鼠在一個物體上懸停時,我們經常希望做一些操作,比如變色等。

    我們使用Picker類來獲取滑鼠拾取(Pick)的物體,通過app.picker得到Picker類來實現這個功能,見下例:

    //判斷拾取的物體是否改變if(app.picker.isChanged()) {
    //通過app.picker.objects 得到當前拾取的物體
    console.log(app.picker.objects);
    //通過app.picker.previousObjects 得到之前拾取的物體
    console.log(app.picker.previousObjects);}

    通過事件獲取滑鼠拾取的物體

    可以通過MouseEnter和MouseLeave來實現 。

    // 滑鼠拾取物體顯示邊框app.on(THING.EventType.MouseEnter, '.Thing' ,function(ev) {
    ev.object.style.outlineColor = '#FF0000';});// 滑鼠離開物體邊框取消app.on(THING.EventType.MouseLeave,'.Thing', function(ev) {
    ev.object.style.outlineColor = null;});

    查看示例

    示例效果如下圖所示:

    選擇

    選擇物體

    滑鼠懸停到物體上,但不代表我選擇它了,比如是我們點擊後才表明我們選擇了它。選擇物體,我們通過Selection模塊實現,可通過 app.selection 的介面實現該功能,見下例:

    //將物體加入到選擇集中app.selection.select(obj);// 判斷對象是否在選擇集中app.selection.has(obj);//將物體從選擇集中刪除app.selection.deselect(obj);//清空選擇集app.selection.clear();

    通過屬性和方法,偵測選擇集變化

    Selection通過提供isChanged方法獲取選擇集變化,通過 objects 和 previousObjects 獲取當前選擇集和變化之前的選擇集,見下例:

    if(app.selection.isChanged()) {

    //獲取當前哪些物體被選擇

    console.log(app.selection.objects);

    //當isChanged時,之前都有哪些物體被選擇

    console.log(app.selection.previousObjects);}

    通過事件偵測選擇集變化

    可以通過Select和Deselect事件精確控制物體針對選擇的響應,如下例:

    app.on(THING.EventType.Select, '.Thing', function (ev) {
    // 選擇集中的物體顏色進行改變
    ev.object.style.color = "#ff0000";});app.on(THING.EventType.Deselect, '.Thing', function (ev) {
    // 物體從選擇集中刪除時,清除顏色
    ev.object.style.color = null;});

    我們也可以通過SelectionChange事件。

    app.on(THING.EventType.SelectionChange, function (ev) {
    console.log(ev.previousObjects+" "+ev.objects);});

    H. cesium滑鼠點擊地球上的點怎麼用數組記錄這些點

    ml5就可以運行。甚至部分手機瀏覽器都可以運行 。
    首先,對Cesium進行本地的部署(可以用node.js,tomcat,vs2011,iis.eclipse等IDE進行部署,我選用的是最簡單的vs):
    (1)下載Cesium
    進入其官

    I. three.js 有沒有類似 cesium.imageryprovider

    使用Cesium可以直觀的看基於DEM切片產生的Terrain地形數據,有種身臨其境的感覺,但缺點是Cesium默認預設載入了微軟Bing提供的地形以及遙感影像數據,可以跟蹤日誌,總提示讓你申請微軟的Bing地圖Key。

    J. providerPoint是cesium哪個js裡面的方法

    貼代碼出來啊

    閱讀全文

    與cesiumjs教程相關的資料

    熱點內容
    網路中常用的傳輸介質 瀏覽:518
    文件如何使用 瀏覽:322
    同步推密碼找回 瀏覽:865
    樂高怎麼才能用電腦編程序 瀏覽:65
    本機qq文件為什麼找不到 瀏覽:264
    安卓qq空間免升級 瀏覽:490
    linux如何刪除模塊驅動程序 瀏覽:193
    at89c51c程序 瀏覽:329
    怎麼創建word大綱文件 瀏覽:622
    裊裊朗誦文件生成器 瀏覽:626
    1054件文件是多少gb 瀏覽:371
    高州禁養區內能養豬多少頭的文件 瀏覽:927
    win8ico文件 瀏覽:949
    仁和數控怎麼編程 瀏覽:381
    項目文件夾圖片 瀏覽:87
    怎麼在東芝電視安裝app 瀏覽:954
    plc顯示數字怎麼編程 瀏覽:439
    如何辨別假網站 瀏覽:711
    寬頻用別人的賬號密碼 瀏覽:556
    新app如何佔有市場 瀏覽:42

    友情鏈接