surprise
2024-01-08 7e6b37afd1295c71bca1de595426330aff88420d
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
import store from "../../../store";
const mapInfo = {
    listArr: [
        '桩号_Point',
    ],
    mssageInfo: 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
    },
    setGeoJsonInfo(res) {
        if (res.projectId && res.frameNo) {
            this.setRestLayer();
            
            store.state.showZhaiHaiImg = res;
            store.state.isshowZhaiHai = true;
        } else {
            var val_name = 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)
            }
            if (val.length == 0) return
            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;