首页 > 其他分享 >[Cesium]设置点Entity的

[Cesium]设置点Entity的

时间:2024-06-03 20:30:35浏览次数:9  
标签:Vue const Entity Ant Design 设置 Cesium 图标

在Cesium中,修改点实体的样式可以通过使用billboard属性来设置自定义图标。为了使用自定义的Ant Design或Vue Icon库中的图标,需要先将图标转换成可以在Cesium中使用的格式,例如Canvas或者Data URL。

以下是一个示例,展示了如何使用Ant Design图标库中的图标并将其设置为Cesium中的点实体的样式:

  1. 安装必要的库

    首先,确保安装了Cesium和Ant Design图标库。如果使用Vue,则还需要安装Vue的依赖。

    npm install cesium @ant-design/icons
  2. 创建一个Ant Design图标的Canvas绘制函数

    使用Canvas API来绘制Ant Design图标,并将其转换为Data URL。这个Data URL可以直接用作Cesium点实体的billboard图像。

    import * as Cesium from 'cesium';
    import { SmileOutlined } from '@ant-design/icons';
    
    function getIconAsDataURL(icon, size = 64) {
        const svg = icon.render();
        const svgString = new XMLSerializer().serializeToString(svg);
        const canvas = document.createElement('canvas');
        canvas.width = size;
        canvas.height = size;
        const ctx = canvas.getContext('2d');
    
        const img = new Image();
        img.src = 'data:image/svg+xml;base64,' + btoa(svgString);
    
        return new Promise((resolve) => {
            img.onload = () => {
                ctx.drawImage(img, 0, 0, size, size);
                resolve(canvas.toDataURL('image/png'));
            };
        });
    }
    
  3. 在Cesium中创建点实体并设置自定义样式

    一旦我们有了图标的Data URL,可以将其用于Cesium实体的billboard属性。

async function createCustomPoint(viewer, position) {
    const iconDataURL = await getIconAsDataURL(SmileOutlined, 64);

    viewer.entities.add({
        position: Cesium.Cartesian3.fromDegrees(...position),
        billboard: {
            image: iconDataURL,
            width: 32,
            height: 32
        }
    });
}

const viewer = new Cesium.Viewer('cesiumContainer');
createCustomPoint(viewer, [-75.59777, 40.03883]);

在这个示例中,我们首先创建一个函数getIconAsDataURL来生成Ant Design图标的Data URL,然后使用这个URL来设置Cesium实体的billboard图像。这样,你就可以在Cesium中使用自定义的Ant Design或Vue Icon图标作为点实体的样式了。

这个示例展示了如何通过JavaScript来完成这些操作。如果你使用的是Vue,你可以将这些代码集成到Vue组件中,以便在Vue应用程序中使用。

标签:Vue,const,Entity,Ant,Design,设置,Cesium,图标
From: https://blog.csdn.net/m0_55049655/article/details/139419694

相关文章

  • 【Azure Developer】Python – Get Access Token by Azure Identity in China Azure E
    问题描述使用AzureIdentity,根据指定的客户端凭据获取AccessToken中,先后遇见了“ValueError:"get_token"requiresatleastonescope”“ClientSecretCredential.get_tokenfailed:Authenticationfailed:sequenceitem0:expectedstrinstance,listfound”最初的......
  • Nginx设置反向代理
    源码编译安装Nginx参考:https://i.cnblogs.com/posts/edit-done;postId=9010150;isPublished=false设置include因为反向代理主机较多设置include可以模块化各个主机nginx配置文件#sed'/#/d'/usr/local/nginx/conf/nginx.conf|sed'/^$/d'worker_processes1;events{......
  • antV x6 禁止拖拽出新的线,鼠标滑过线设置高亮
    antVx6中的ER图; 代码如下://鼠标滑过事件graph.on('edge:mouseenter',({cell})=>{cell.removeTools()cell.attr('line',{stroke:'blue',strokeWidth:2})cell.zIndex=0})//鼠标滑出事件graph.o......
  • dotnet/.NET EF(Entity Framework)详解
    原文链接:https://upimg.baike.so.com/doc/6061191-6274247.html         https://blog.csdn.net/u013733643/article/details/123473628DOTNET就是.NET,严格说是:.NETFramework框架。但为什么叫DOTNET(.NET)呢?在计算机行业DOT是DistributedObjectTechnolo......
  • vs中怎么设置统一的output路径
    背景:1、一个sln下有多个csproj项目,让所有csproj生成的dll路径在sln根目录下的ouput文件夹解决办法:1、在sln目录下新建Directory.Build.props文件,文件内容如下:<Project><PropertyGroupCondition="'$(Configuration)'=='Debug'"><CustomOutputPath&g......
  • 无法直接启动带有”类库输出类型“的项目。若要调试此项目,请向引用库项目的此解决方案
    原文链接:https://blog.csdn.net/m0_56366948/article/details/137480405当你尝试直接启动一个类库(ClassLibrary)项目时,你会遇到这样的错误消息,因为类库项目本身不生成可执行文件(如.exe文件),它们只是包含可以被其他程序或应用程序引用的代码。为了调试类库项目,你需要创建一个可......
  • 第04章—探索CesiumWidget:构建交互式3D地球应用的深度实践
    引言在前两章节中,我们一同探索了Cesium与Vue,React框架结合的基础应用,从环境搭建到如何在组件中无缝嵌入Cesium的三维地球视图,为前端项目注入了地理空间可视化的能力。这一过程不仅加深了我们对MVVM框架的理解,也让Cesium的强大多媒体与空间分析功能得以在现代Web应用中大放......
  • 第01章— 开篇词:cesium专栏简介和阅读建议
    引言Cesium.js作为一个强大且日益重要的地理空间信息可视化工具,其应用领域广泛却学习资料相对分散。我希望能够通过系统化、实战导向的教程,降低初学者的入门门槛,帮助读者快速掌握核心技能,同时为进阶开发者提供深层次的技术解析与优化策略。Cesium可以做什么?CesiumJs是一......
  • mac的idea设置忽略文件
    一.设置idea看不到文件preferences->FIleTypes->IgnoredFilesandFolders编辑忽略文件,这个编辑idea会直接不显示你忽略的文件2.在项目的根目录下面添加.gitignore文件,这个会忽略git提交文件#Compiledclassfile*.classtarget/#Logfile*.log*.bak#BlueJfile......
  • # window10 设置一个【自定义运行】命令行快捷方式
    window10设置一个【自定义运行】命令行快捷方式window10[运行】命令行打不开,可采用如下简单快捷方法:1、右键点击桌面空白处,然后点击【新建】,再点击【快捷方式】。2、在【请键入对象的位置】文本框输入:explorershell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}3......