第二节 光波标注

效果

1.简单的实例

1.1样式

1.1.1颜色

var waveCircle = new WaveCircle(viewer);

    waveCircle.createByPosition({//通过点创建波纹

           lng:x,//经度

           lat:y,//纬度

           radius:Math.random() * 200,//波纹的半径

           color:Cesium.Color.RED//颜色

});

 1.1.2扫描

var  objInit=new geo_radioscan();//geo_radioscan(); geo_circlescan

  // var color = Cesium.Color.fromRgba(0x67ADDFFF);

  var color = new Cesium.Color(0, 1, 0, 0.7);

  objInit.scanColor=color;//new Cesium.Color(1.0, 0.0, 0.0, 1);

  objInit.radius=50;// 半径

  objInit.duration=3000; // 执行毫秒

  objInit.addCircleScan(x,y);  // 需要判断是否加过

1.1.3光环

var  objInit=new geo_circlescan();//geo_radioscan(); geo_circlescan

objInit.scanColor= new Cesium.Color(1.0, 0.0, 0.0, 0.5);

objInit.radius=130;// 半径

objInit.duration=3000; // 执行毫秒

objInit.addCircleScan(x,y);  // 需要判断是否加过

viewer.camera.flyTo({   

        destination: Cesium.Cartesian3.fromDegrees(x,y, 200) //x  ,y  , 距离地面高度

});

2.正式代码

2.1循环数据

init: function(type) {
		var temp = {
			type:3,
		};
		var options = new Object();
				
		options.url = "/manage-api/baseJcdw/getJcdw";
		
		options.type = "GET";
		options.data = temp;
		options.errorback = akglobe_config.errBack;
		options.callback = function(data) {
			if(!data) return;
			   var rows = data.rows;
			   ak_right_populationTrq.top3CallBack(rows);
		}
		akglobe_config.ajaxQuery(options);
	
	},

2.2标注

top3CallBack: function(data) {
		ak_nav.clearEntines();
		var result = data;
		console.log(result);
		this.labels = viewer.scene.primitives.add(new Cesium.LabelCollection());
		this.billboards = scene.primitives.add(new Cesium.BillboardCollection());
		for (var i = 0; i < result.length; i++) {
			var db = result[i];
			var obj = new Object();
			var id = Number((new Date()).getTime() + "" + Number(Math.random() * 1000).toFixed(0));
			obj.id = id;
			obj.name = db.name;
			obj.address = db.address;
			obj.lat = db.longitude;
			obj.lng = db.latitude;
			var x = parseFloat(obj.lat);
			var y = parseFloat(obj.lng);
			obj.addtypemarker = config.addtypemarker.tzhbTrq;
			obj.id = "tzhbWr;" + config.addtypemarker.tzhbTrq + ";" + db.name + ";" + db.id;
			var proper = new Cesium.PropertyBag(obj);
			var color = Cesium.Color.RED;

			var met = ak_marker.getArrowMaterial();
			
			var src = config.markerImgProejctdcTr; //mark4
		 	obj.src = src;
			obj.width = config.markerImgProejctdcSyjtWidth;
			obj.height = config.markerImgProejctdcSyjtHeight;
			obj.addtypemarker = config.addtypemarker.tzhbTrq;
			
			//设置光波 name:名称 latitude,longitude:坐标  radius:光波半径 color:颜色
			ak_commonQuery.clicklabelNew2({     
				"name": obj.name,
				"x": x,
				"y": y,
				"radius": config.syj,
				"color": Cesium.Color.RED,
			});
			
			ak_pm_tool.addPoint(this.billboards, obj);
			
			
		}
	},

ak_commonQuery中的方法

// 只是标注光环
clicklabelNew2: function(feature) {
		var x = null;
		var y = null;
		if (!net_tool.isBlank(feature.x) && !net_tool.isBlank(feature.y)) {
			x = parseFloat(feature.x); // x 轴
			y = parseFloat(feature.y); // y 轴
		}
        if (!net_tool.isBlank(feature.lat) && !net_tool.isBlank(feature.lng)) {
			x = parseFloat(feature.lat); // x 轴
			y = parseFloat(feature.lng); // y 轴			 
		}
		if (!x) {
			net_tool.errorBack("没有坐标信息,无法定位");
			return;
		}


		var waveCircle = new WaveCircle(viewer);
		//waveCircle.draw();
		var obj = {};
		obj.x = x;
		obj.y = y;
		obj.color = feature.color || Cesium.Color.RED;
		waveCircle.createByPosition({
			lng: obj.x,
			lat: obj.y,
			radius: feature.radius || 50,
			color: obj.color
		});
		ak_commonQuery.waveCircleArr.push(waveCircle);
	},

2.3清除

清除可分在循环标注当前类里面或单个清除;

当前类(循环数据的js):

clear: function() {
		viewer.scene.primitives.remove(this.billboards);   //清除点
		viewer.scene.primitives.remove(this.labels);   //清除文本
        //清除光环
		for (var i = 0; i < this.gztArr.length; i++) {
			var objEntine = this.gztArr[i];
			objEntine.destroy();
		}
	},

单个清除(ak_commonQuery.js):

/**
	 * 清除光波
	 */
clear: function() {
	for (var i = 0; i < ak_commonQuery.waveCircleArr.length; i++) {
		var marker = ak_commonQuery.waveCircleArr[i];
		marker.destroy();
	}
	ak_commonQuery.waveCircleArr = [];
},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

akglobe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值