鼠标点击的位置弹出信息框

在鼠标的MOUSE_DOWM事件中, 根据鼠标点击的位置, 动态的创建<div>元素, 显示数据信息.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
		window.onload=function(){
		    document.onmousedown=function(ev){
		    	
		    	var mDiv = document.getElementById('carBox');
		    	if(mDiv){
		    		document.body.removeChild(mDiv);	
		    	}
		        var oEvent=ev||event;
		        var oDiv=document.createElement('div');
		        oDiv.id = "carBox";
		        oDiv.style.left=(oEvent.clientX-130)+'px';  // 指定创建的DIV在文档中距离左侧的位置
		        oDiv.style.top=(oEvent.clientY-145)+'px';  // 指定创建的DIV在文档中距离顶部的位置
		        oDiv.style.border='1px solid #0000FF'; // 设置边框
		        oDiv.style.borderRadius = '25px';
		        oDiv.style.background='rgba(0,0,0,0.5)';
		        oDiv.style.position='absolute'; // 为新创建的DIV指定绝对定位
		        oDiv.style.width='260px'; // 指定宽度
		        oDiv.style.height='135px'; // 指定高度
		        var content = '<div style="padding: 10px;color: #FFF;font-size: 10px;">'+
		        '<div style="width:100%;height:100px;overflow:auto;">'+
		        '<table style="float:top;width:100%;height:100%;">'+
		        '<tr><td style="width:60px;">设备号:</td><td>设备号2</td></tr>'+
		        '<tr><td style="width:60px;">当前位置:</td><td>北京市顺义区军营南街10号</td></tr>'+
		        '<tr><td style="width:60px;">更新时间:</td><td>2018-11-20 09:39:20</td></tr>'+
		        '</table>'+
		        '</div>'+
		        '<div style="float:bottom;width:100%;">'+
		        '<a href="./a.html" style="float:left;margin-left:30px;">历史轨迹</a>'+
		        '<a href="./a.html" style="float:right;margin-right:30px;">视频查看</a>'+
		        '</div>'+
		        '</div>';
		        oDiv.innerHTML = content;
		        document.body.appendChild(oDiv); 
		    }
		}
</script>
	</body>
</html>

运行效果


接下来在Cesium中显示车辆信息

将后端获取到的车辆数据作为标注显示到地图上

点击图标, 弹出信息框, 显示车辆信息

代码实现

function loadScreenHandler(){
		handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
		var clickPosition = undefined;
		//LEFT_DOWN
		handler.setInputAction(function(movement) {
			clickPosition = movement.position;
			//如果carBox正在显示, 则移除
			removeCarBox();
		}, Cesium.ScreenSpaceEventType.LEFT_DOWN);

		//LEFT_UP
		handler.setInputAction(function(movement) {
				if((clickPosition.x - movement.position.x > 3) || (clickPosition.x - movement.position.x < -3) ||
					(clickPosition.y - movement.position.y > 3) || (clickPosition.y - movement.position.y < -3)) {
					clickPosition = undefined;
					return;
				}

		    	
		    	//获取点击的车辆
				var pick = viewer.scene.pick(movement.position);

				if(Cesium.defined(pick)) {
					/*点击标注*/
					if(pick.id) {
				        var oDiv=document.createElement('div');
				        oDiv.id = "carBox";
				        oDiv.style.left=(movement.position.x-130)+'px';  // 指定创建的DIV在文档中距离左侧的位置
				        oDiv.style.top=(movement.position.y-135)+'px';  // 指定创建的DIV在文档中距离顶部的位置
				        oDiv.style.border='1px solid #0000FF'; // 设置边框
				        oDiv.style.borderRadius = '25px';
				        oDiv.style.background='rgba(0,0,0,0.5)';
				        oDiv.style.position='absolute'; // 为新创建的DIV指定绝对定位
				        oDiv.style.width='260px'; // 指定宽度
				        oDiv.style.height='135px'; // 指定高度
				        var content = '<div id="carBox" style="padding: 10px;color: #FFF;font-size: 10px;">'+
				        '<div style="width:100%;height:100px;overflow:auto;">'+
				        '<table style="float:top;width:100%;height:100%;">'+
				        '<tr><td style="width:60px;">设备号:</td><td>'+pick.id.carNum+'</td></tr>'+
				        '<tr><td style="width:60px;">当前位置:</td><td>'+pick.id.carLocation+'</td></tr>'+
				        '<tr><td style="width:60px;">更新时间:</td><td>'+pick.id.carTime+'</td></tr>'+
				        '</table>'+
				        '</div>'+
				        '<div style="float:bottom;width:100%;">'+
				        '<a href="javascript:void(0);" style="float:left;margin-left:30px;">历史轨迹</a>'+
				        '<a href="javascript:void(0);" style="float:right;margin-right:30px;">视频查看</a>'+
				        '</div>'+
				        '</div>';
				        oDiv.innerHTML = content;
				        document.body.appendChild(oDiv); 
					}
				}
			}, Cesium.ScreenSpaceEventType.LEFT_UP);
	}
	
	
	/**
	 * 移除carBox
	 */
	function removeCarBox(){
		var mDiv = document.getElementById('carBox');
    	if(mDiv){
    		document.body.removeChild(mDiv);	
    	}
	}
	

 

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值