仅需不到50行代码!ThingJS把这种常用效果加入官方示例

简介: 地图的信息窗口会提供当前的地址信息,提示用户后续操作或者完成浏览

地图的信息窗口会提供当前的地址信息,提示用户后续操作或者完成浏览。ThingJS提供了基于JS语法的基础示例。

无论是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把这种常用的效果加入官方示例,每个显示仅需不到50行代码!

相关文章
|
4月前
|
小程序 开发者
【产品上新】示例代码更清晰,开放平台文档功能更新!
【产品上新】示例代码更清晰,开放平台文档功能更新!
45 10
|
移动开发 JavaScript
mpvue项目(组件)迁移指南、示例及资源汇总
首先,为什么要从mpvue转uni-app?因为uni-app对vue语法支持更全面(如支持过滤器)、性能更高、支持平台更多(支持H5和App)。这里有详细的评测https://juejin.im/post/5ca1736af265da30ae314248 然后进入正题。
2468 0
序---在开发的过程中首先写开发文档,查一查开发文档怎么写,开发一个流程标准化页面
序---在开发的过程中首先写开发文档,查一查开发文档怎么写,开发一个流程标准化页面
|
4月前
|
XML 存储 数据格式
使用自定义模板和示例项目开发LabVIEW项目
使用自定义模板和示例项目开发LabVIEW项目
33 1
|
10月前
|
小程序
微信小程序从零开始开发步骤(四)自定义分享的功能
微信小程序从零开始开发步骤(四)自定义分享的功能
166 0
|
存储 数据可视化 Ubuntu
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
|
XML Java 数据格式
HarmonyOS学习路之开发基础——快速入门(编写第一个页面)
在Java UI框架中,提供了两种编写布局的方式:在XML中声明UI布局和在代码中创建布局。这两种方式创建出的布局没有本质差别,为了熟悉两种方式,我们将通过XML的方式编写第一个页面,通过代码的方式编写第二个页面。
|
存储 Serverless
微信小游戏制作工具中的函数应该如何使用
在微信小游戏制作工具中是没有私有函数这个概念的,也就是说所有的函数都是公共的,大家都可以使用,而且函数也没有返回值的概念,想拿到函数运行的结果只能通过设置一个全局变量,将结果存储在全局变量中,然后通过这个全局变量来使用。这种方法有很多的弊端,尤其是在有大量的克隆体存在时,每个克隆体都使用同一个函数,都去设置同一个全局变量,就会造成意想不到的结果。
275 0
|
JavaScript
移动端也能兼容的web页面制作1:MDBootstrap演示Demo运行演示
移动端也能兼容的web页面制作1:MDBootstrap演示Demo运行演示
265 0
|
数据处理 C#
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码