导航:首页 > 文件教程 > 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

    友情链接