document.write(''); /** * 定位标签管理 */ //显示列表 var tagCollection = []; function showTags(data){ var content = ''; for (var i = 0; i < data.length; i++) { var poiArr = data[i].tagLabelPoi.split(','); var point = Cesium.Cartesian3.fromDegrees(Number(poiArr[0]),Number(poiArr[1]),Number(poiArr[2])+10); var textlength = data[i].tagName.length; var imgurl = ''; if(textlength<5){ imgurl = '../images/pinimg/33S.png'; }else if(4
' + '
'; } $('#taglayer').html(content); } //清除标签 function clearTags(){ for (var i = 0; i < tagCollection.length; i++) { viewer.entities.remove(tagCollection[i]); } tagCollection.length = 0; } //并获取当前视角 function addTag(viewertag){ var camPoi, camHeading, camPitch, poiStr; var addTagHandler = new Cesium.ScreenSpaceEventHandler(viewertag.scene.canvas); addTagHandler.setInputAction(function(movement) { var cartesian = viewertag.scene.pickPosition(movement.position); if (Cesium.defined(cartesian)) { var cartographic = Cesium.Cartographic.fromCartesian(cartesian); var testheight = cartographic.height; if(Number(testheight)<0){ var ray = viewertag.camera.getPickRay(movement.position); cartesian = viewertag.scene.globe.pick(ray,viewertag.scene); } cartographic = Cesium.Cartographic.fromCartesian(cartesian); var lng = Cesium.Math.toDegrees(cartographic.longitude); var lat = Cesium.Math.toDegrees(cartographic.latitude); var height = cartographic.height;//模型高度 poiStr = lng+','+lat+','+height; var camPoiR = viewertag.camera.position; var camCartographic = Cesium.Cartographic.fromCartesian(camPoiR); var camlng = Cesium.Math.toDegrees(camCartographic.longitude); var camlat = Cesium.Math.toDegrees(camCartographic.latitude); var camheight = camCartographic.height;//模型高度 camPoi = camlng+","+camlat+","+camheight; camHeading = viewertag.camera.heading; camPitch = viewertag.camera.pitch; } //创建标注 var pinBuilder = new Cesium.PinBuilder(); var addPin = viewertag.entities.getById("addTagPinId"); if(addPin == undefined){ viewertag.entities.add({ id :"addTagPinId", position :cartesian.clone(), billboard : { image : pinBuilder.fromText('新',Cesium.Color.BLUE,36).toDataURL(), verticalOrigin : Cesium.VerticalOrigin.BOTTOM }, }); }else{ addPin.position = cartesian.clone(); } }, Cesium.ScreenSpaceEventType.LEFT_CLICK); addTagHandler.setInputAction(function(movement) { if($('#tagName').val().length!=0){ if(camPoi!=undefined){ addTagHandler = addTagHandler && addTagHandler.destroy(); var obj = { 'tagId':'0', 'tagPoi':camPoi, 'tagHeading':camHeading.toString(), 'tagPitch':camPitch.toString(), 'tagName':$('#tagName').val(), 'tagLabelPoi':poiStr, }; insertTag(obj); viewertag.entities.removeById("addTagPinId"); isaddtag = true; }else{ swal("请定位标签!","请重试!","error"); } }else{ swal("请填写标签名称!","请重试!","error"); } }, Cesium.ScreenSpaceEventType.RIGHT_CLICK); } //控制添加按钮,防止冲突 var isaddtag = true; function ctrladdtag(){ if(isaddtag){ addTag(viewer); isaddtag = false; } }