surprise
2024-01-09 9398f14feea7ad8b7d00ce7d2bb2e5362cec59d3
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import store from "../../../store";
const mapInfo = {
    listArr: [
        '桩号_Point',
    ],
    mssageInfo: null,
    propertyNames:null,
    Init(html) {
 
        if (!html) return;
        var xmlDoc = this.getXMLNode(html)
        if (xmlDoc.length == 0) return
        this.showMapInfo(xmlDoc);
 
    },
    setRestLayer() {
        store.state.showZhaiHaiImg = null;
        store.state.isshowZhaiHai = false;
        store.state.showMessageInfo = false;
        this.mssageInfo = null;
           store.state.isShowImgUpDate = false; 
        store.state.isShowImgUrl= null;
        this.propertyNames=null
     
    },
    setGeoJsonInfo(res) {
        if (res.projectId && res.frameNo) {
            this.setRestLayer();      
            store.state.showZhaiHaiImg = res;
            store.state.isshowZhaiHai = true;
        }else if(res.sourceType && res.sourceType._value == "imgUp"){
            this.setRestLayer();
    
            setTimeout(() => {
                store.state.isShowImgUrl= res._path._value;
                store.state.isShowImgUpDate = true;  
            }, 100);
         
        }else {
            var val_name = res._propertyNames;
            this.propertyNames =res._propertyNames;
            var val = [];
            for (var i = 0; i < val_name.length; i++) {
                var obj = {
                    name: val_name[i],
                    value: res[val_name[i]]._value,
                }
                val.push(obj)
            }
       
            this.showMapInfo(val);
        }
    },
    showMapInfo(res) {
        this.setRestLayer();
        setTimeout(() => {
            this.mssageInfo = res;
            store.state.showMessageInfo = true;
        }, 100);
    },
    getXMLNode(html) {
        let str = html;
        //创建文档对象
        let xmlDoc = new DOMParser().parseFromString(str, "text/xml");
        let finds = xmlDoc.getElementsByTagName('Featureinfo');
        var val = []//获取find节点
        for (let i = 0; i < finds.length; i++) {     //循环节点
            let finder = finds[i];
            this.getfun(finder, val);
        }
        return val
    },
    getfun(res, val) {
        var child = res.childNodes;
        for (var i = 0; i < child.length; i++) {
            var node = child[i].childNodes;
            if (node.length > 1) {
                this.getfun(child[i], val)
            } else {
                val.push({
                    name: child[i].nodeName,
                    value: child[i].childNodes[0].nodeValue
                })
            }
 
        }
        return val;
    }
 
}
export default mapInfo;