ThingJS:3D版PUSH开发方法简略

简介: 经常用手机,我们都会收到很多PUSH,那在3D开发中,ThingJS如何进行弹窗信息显示呢?

经常用手机,我们都会收到很多PUSH,那在3D开发中,ThingJS如何进行弹窗信息显示呢?

无论是2D地图还是3D地图,经常会有展示信息面板的需求,可以用来表示物体对象的位置,也可以实时展示某物体的状态。在ThingJS开发教程中,这些有地理位置的坐标,我们称之为“信息弹窗InfoWindow”。
2.png

thingjs开发中支持使用layer来显示Web界面的信息弹窗。为了更加方便前端用户操作,我们使用THING.Utils.dynamicLoad引用layer的官方JS文件,可在场景上2D界面创建一个按钮,点击按钮既可出现layer弹窗。
1.png

ThingJS底层内置了三种信息面板的标准形式,会根据对象userData身上的属性自动生成信息面板,这是我们底层定义的界面样式,用户无法修改。此外用户还可以自定义信息面板,通过代码自行开发,自行规划界面样式和操作。
标准参数说明如下,包括displayMode,type和style,都是预设的。

1.displayMode:三种显示模式

CMAP.DisplayMode.Click 点击显示
CMAP.DisplayMode.Always 常显
CMAP.DisplayMode.MouseEnter 鼠标移入显示(悬浮显示)

2.type:信息面板类型

CMAP.InfoWindowType.Standard 标准
CMAP.InfoWindowType.Custom 自定义

3.style:预置的样式

在type为CMAP.InfoWindowType.Standard时生效
CMAP.InfoWindowStyle.Default 默认黑色
CMAP.InfoWindowStyle.Blue 蓝色
CMAP.InfoWindowStyle.White 白色

这是标准信息面板的代码示例。


var geoPoint = app.create({
type: 'GeoPoint',
name: 'geoPoint0',
coordinates: [ 116.405, 39.906],
userData: {'type': '地铁站','name':'前门地铁站'},
renderer: {
    type: 'image', // image代表创建图片类型的点
    url: 'image/uGeo/pop.png', // 图片的url
    size: 5  // 尺寸
},
infoWindow:
    {
    'title': '标题',
    'displayMode': CMAP.DisplayMode.Click,//点击显示
    'type': CMAP.InfoWindowType.Standard,//标准indoWindow
    'style': CMAP.InfoWindowStyle.Default,//默认样式 黑色
    'pivot': [0.5, 1.3],//界面的轴心,以百分比表示界面轴心位置。[0,0] 代表界面左上;[1,1] 代表界面右下 pivot可大于1用于像素级的偏移
    'fieldData': [
        {
        'field': 'name',
        'alias': '名称'
        },
    {
        'field': 'type',
        'alias': '类型'
        }]
    },//配置要展示哪些字段以及设置字段名称的别名(显示的名称)
});

这是自定义信息面板的代码示例。

var infoWindowHtml = '\n'
+ '    \n'
+ '        \n'
+ '            {{name}}\n'
+ '            {{type}}\n'
+ '        \n'
+ '    \n'
+ '';
var geoPoint = app.create({
type: 'GeoPoint',
name: 'geoPoint0',
coordinates: data.features[3].geometry.coordinates,
userData: data.features[3].properties,
renderer: {
    type: 'image', // image代表创建图片类型的点
    url: 'image/uGeo/pop.png', // 图片的url
    size: 5  // 尺寸
},
infoWindow:
    {
    'displayMode': CMAP.DisplayMode.Click,//点击显示
    'type': CMAP.InfoWindowType.Custom,//自定义InfoWindow
    'customHtml': infoWindowHtml
    },
});
pointLayer.add(geoPoint);
注意:自定义html的标签中{{name}}代表使用对象userData中的name字段的值。

弹窗信息显示如此简单,ThingJS充分满足开发者的3D创作需求!

相关文章
VS Code Server 离线安装(解决超时,XHR Failed等问题)
VS Code Server 离线安装(解决超时,XHR Failed等问题)
|
Kubernetes 负载均衡 应用服务中间件
kubectl 命令详细介绍
kubectl 命令详细介绍
|
8月前
|
安全 Linux API
养虾必看!OpenClaw防入侵手册:阿里云+本地安全部署+API配置+Skill安全+常见问题解答
2026年3月,一则震惊“养虾圈”的消息引发全网关注:有安全研究者通过全网扫描,发现超23.4万只OpenClaw(昵称“小龙虾”)实例正处于“裸奔”状态,其默认管理端口18789直接暴露在公网,相关实例信息被整理成曝光网站公之于众。这些“裸奔”的OpenClaw分布在阿里云、DigitalOcean、Hetzner等多个云平台,涉及中国、美国、德国、新加坡等数十个国家和地区,虽因缺少设备标识与Token暂时未出现大规模入侵,但已成为黑客眼中的“潜在猎物”。
1367 4
|
10月前
|
弹性计算 Linux 网络安全
学习笔记:阿里云新手账号注册、实名认证、选购ECS云服务器、部署管理指南
阿里云ECS(弹性计算服务)是一种无需购买物理服务器即可使用计算资源的服务,让您像使用水电一样便捷获取服务器算力。本指南将详细拆解从账号注册到服务器管理的完整流程,帮助新手用户快速掌握云服务器使用技巧。
1008 1
|
11月前
|
监控 安全 Unix
iOS 崩溃排查不再靠猜!这份分层捕获指南请收好
从 Mach 内核异常到 NSException,从堆栈遍历到僵尸对象检测,阿里云 RUM iOS SDK 基于 KSCrash 构建了一套完整、异步安全、生产可用的崩溃捕获体系,让每一个线上崩溃都能被精准定位。
3416 177
|
9月前
|
机器学习/深度学习 弹性计算 人工智能
云服务器租用价格多少钱一年?来卡看2026阿里云费用价格,难以想象的便宜!
2026年阿里云服务器价格全解析:轻量最低38元/年,ECS普惠款99元起,企业级199元/年;GPU实例按量或包年可选。涵盖包年包月、按量付费三大计费模式,详解续费同价/折扣规则及升级补差机制,助您精准控本、避坑省钱。(239字)
818 6
|
算法 Java C语言
汉诺塔问题
汉诺塔问题源自印度古老传说,涉及将一组圆盘从一根柱子移动到另一根,遵循特定规则。文章详细介绍了该问题的背景、解决思路以及如何使用分治算法实现,同时提供了C语言、Java和Python的代码示例。
851 0
|
11月前
|
存储 SQL NoSQL
RAG系统的随机失败问题排查:LLM的非确定性与表格处理的工程实践
本文揭秘RAG系统在真实场景中的三大隐藏陷阱:LLM非确定性输出、重复表格数据干扰与模糊提示导致的解析错误。通过锁定温度参数、过滤冗余分块、重写硬性Prompt,并采用混合检索架构,实现稳定准确的生产级RAG系统。
548 7
RAG系统的随机失败问题排查:LLM的非确定性与表格处理的工程实践
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
1827 2
|
资源调度 JavaScript 前端开发
Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想
嗨,大家好,我是小华同学。今天为大家介绍一个基于Vue.js开发的导航组件库——Van-Nav。它支持响应式设计、多级菜单、丰富的配置选项和多种动画效果,适用于企业官网、电商平台、内容管理系统和个人博客等多种场景。轻松集成到Vue项目中,提供清晰有序的导航体验。关注我们获取更多优质开源项目和高效工作学习方法。
1630 68