您现在的位置: 首页 > SDK开发 > 开发指南


纯文字标注、图片+文字标注 绘制 易景地图文字标注易景地图文字标注

1.创建一个纯文字标注

纯文字标注

第一步:新建一个文字标注图层(以下代码都要在地图加载完成后调用map.on('loadComplete')


map.on('loadComplete',function(){
	var layer = new esmap.ESLayer(esmap.ESLayerType.TEXT_MARKER);
	//可以给图层添加自定义name
	layer.name = 'mylayer';
})

第二步:创建一个文字标注实例


var tm = new esmap.ESTextMarker({
	x: gpos.x - 30,
	y: gpos.y - 30,
	id: 2017,   //id,可自定义
	name: "测试标签2",
	spritify:true,//跟随地图缩放变化大小,默认为true,可选参数
	height:1,    //距离地面高度
	showLevel: 20,  //地图缩放等级达到多少时隐藏,可选参数
	scale:1,	//文字等级缩放默认为1,可选参数,0.1表明缩小10倍
	fillcolor: "255,0,0",    //填充色
	fontsize: "12.0",        //字体大小
	strokecolor: "255,255,0", //边框色
	strokewidth:2 //边框厚度  0表示无边框
});

第三步:添加到楼层对象


map.on('loadComplete',function(){
	var floorLayer = map.getFloor(1)   //获取第一层的楼层对象
	layer.addMarker(tm);               //将文字标注添加到图层
	floorLayer.addLayer(layer);        //将图层添加到楼层对象
})

根据名字创建同一类型不同名字的图层


map.on('loadComplete',function(){
	//通过名字区别创建不同的layer
	var floorLayer = map.getFloor(1);  //获取第一层的楼层对象
	var layer=floorLayer.getOrCreateLayerByName("camera",esmap.ESLayerType.TEXT_MARKER);
})

根据名字搜索一楼层里面的图层


map.on('loadComplete',function(){
	//通过名字区别创建不同的layer
	var floorLayer = map.getFloor(1);  //获取第一层的楼层对象
	//返回图层数组,可一次查询一个名字,也可以多个名字
	var layers1=floorLayer.getLayersByNames(['camera']);
	var layers2=floorLayer.getLayersByNames(['camera','device']);
})

删除文字标注

您可以删除一整个文字标注图层:

//楼层上根据类型删除图层
floorLayer.removeLayersByTypes(esmap.ESLayerType.TEXT_MARKER);
//楼层上根据名字删除图层
floorLayer.removeLayersByNames("name");
也可以从文字标注图层中删除标注:

layer.remove(tm);   //删除某个标注
layer.removeAll();   //删除所有标注

标注动画


//1.跳跃动画
tm.jump({
	times: 100,    //跳跃执行100次
	duration: 1,   //间隔1秒
	delay: 0.5,    //0.5秒后执行
	height: 10	    //跳跃的地图高度
});

//停止跳跃
tm.stopJump();

//2.闪烁动画(缓慢放大后缩小)
tm.flash();   
tm.stopFlash();
	

2.创建一个图片+文字标注实例(图片方位left,top,right,bottom)

纯文字标注 纯文字标注

var tm = new esmap.ESTextMarker({
	x: gpos.x - 30,
	y: gpos.y - 30,
	id: 2017,   //id,可自定义
	image: 'image/user.png',  //图片标注的图片地址
	imageAlign:'bottom',	//图片方位left,top,right,bottom
	imageSize:64,		//图片大小
	name: "图片文字标注",	//文字名称
	spritify:true,		//跟随地图缩放变化大小,默认为true,可选参数
	scale:1,			//文字等级缩放默认为1,可选参数,0.1表明缩小10倍
	height:1,    		//距离地面高度
	showLevel: 20,  		//地图缩放等级达到多少时隐藏,可选参数
	fillcolor: "255,0,0",    //填充色
	fontsize: "24",        //字体大小
	strokecolor: "255,255,0", //边框色
	strokewidth:2 //边框厚度  0表示无边框
});

3.移动位置


//移动位置(如果是移动到另外一层,需要自行删除此marker,然后新建立一个到另外一层layer上面)
//x,y是坐标,time=0是无动画效果移动,time=3是花费3秒钟过度效果移动过去
tm.moveTo({x: floorLayer.mapCoord.x,y: floorLayer.mapCoord.y+10,time:0}) 

4.动态更改标注内容


tm.name = "new content"