BaoXs
2022-05-14 ef260dff5d38c36272a2ac97d40db70ab3f8c2cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 // 创建弹窗对象的方法
 var Popup = function(info){
    this.constructor(info);
}
Popup.prototype.id=0;
Popup.prototype.dom=[];
Popup.prototype.constructor = function(info){
    var _this = this;
    _this.viewer = info.viewer;//弹窗创建的viewer
    _this.geometry = info.geometry;//弹窗挂载的位置
    _this.id = info.id;
    _this.entity=info.entity;
    _this.ctn = $("<div class='bx-popup-ctn' id =  '"+_this.id+"'>");
    
    var entity={"id":_this.id,"dom":_this.ctn};
    Popup.prototype.dom.push(entity);
 
    $(_this.viewer.container).append( _this.ctn);
    //测试弹窗内容
    var testConfig = {
        header:_this.entity._name,
        content:'<img class="image" style="width:100%;height:100%;max-width:200px;max-height:150px" src=""></img>'
    }
    _this.ctn.append(_this.createHtml(testConfig.header,testConfig.content,_this.id));
    
    _this.render(_this.geometry);
    _this.eventListener = _this.viewer.clock.onTick.addEventListener(function(clock) {
        _this.render(_this.geometry);
    })
}
// 实时刷新
Popup.prototype.render = function(geometry){
    var _this = this;
    var position = Cesium.SceneTransforms.wgs84ToWindowCoordinates(_this.viewer.scene,geometry)
    if(position!=null){
        _this.ctn.css("left",position.x- _this.ctn.get(0).offsetWidth/2);
        _this.ctn.css("top",position.y- _this.ctn.get(0).offsetHeight - 10);
    }
}
// 动态生成内容
Popup.prototype.createHtml = function(header,content,id){
        var html = '<div class="bx-popup-header-ctn">'+
        header+
        '</div>'+
        '<div class="bx-popup-content-ctn" >'+
        '<div class="bx-popup-content">'+    
        content+
        '</div>'+
        '</div>'+
        '<div class="bx-popup-tip-container" >'+
        '<div class="bx-popup-tip" >'+
        '</div>'+
    '</div>'+
    '<a class="leaflet-popup-close-button" onClick="Popup.prototype.close(\''+id+'\')">X</a>';
    return html;
}
// 关闭弹窗按钮
Popup.prototype.close=function(id){
    var _this = this;
    for(let i=0;i<_this.dom.length;i++){
        if(_this.dom[i].id==id){
            _this.dom[i].dom.hide();
            // _this.dom.splice(i,1)
        }
    }
}