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;
}
}