三维可视化场景绘制卡片标注
第一步:新建一个卡片标注图层
(以下代码都要在
map.on('loadComplete') 中调用)
// 根据ID为test666锁定三维场景建筑,并取得楼层对象
var floor = map.getBuildingById('test666').getFloor(1);
// 在此楼层上新建卡片标注图层
self.cardLayer = floor.getOrCreateLayerByName("cards", esmap.ESLayerType.CARD_MARKER);
第二步:配置卡片标注
var config = {
id: 1, // 标注id
name: "myCardMarker", // 标注名称
x:122465.123, // 标注坐标(使用三维场景墨卡托坐标)
y:12345.123,
scale: 2, // 标注缩放比例
showLevel: 20, // 显示级别
height: 10, // 标注高度偏移
opacity: 1, // 标注透明度
animateHeight: 3, // 动画高度起伏 /m
animateTime: 0.7, // 动画时间 /s
// url图片和template内容任选其一展示
url: "./image/cardMarker.png", // 标注图片标注
template:"<div>卡片标注支持HTML代码</div>" // 卡片标注的内容,需要引入html2canvas插件
}
第三步:创建卡片标注,并且添加到三维场景
var cardMarker = new esmap.ESCardMarker(config);
self.cardLayer.addMarker(cardMarker);
标注常用配置和方法
参数说明:
名称 |
类型 |
描述 |
id |
string |
标注id |
name |
string |
标注名称 |
url |
string |
标注图片地址 |
coord |
object |
标注坐标属性名称类型描述x number标注x坐标y number标注y坐标
|
scale |
number |
标注缩放比例 |
showLevel |
number | Array |
显示级别,可以是一个数组(区间显隐),也可以是一个数字(到达指定级别才显示) |
height |
number |
标注高度偏移 |
opacity |
number |
标注透明度 |
template |
string |
template和url参数任选其一展示卡片标注的内容,template支持HTML代码(需要引入html2canvas插件)
|
cardMarker.hide() // 隐藏卡片标注
cardMarker.show() // 显示卡片标注