surprise
2024-01-15 87e98d5b5efeb7a9cf6330ae03e6dd53699b7ef1
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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;
        store.state.isireamUrl = null;
        store.state.isShowMenuCount = false;
 
    },
    setTileSetInfo(res) {
        var propertyNames = res.getPropertyIds();
        if(!propertyNames || propertyNames.length<=0)return;
        this.setRestLayer();
        var val = [];
        for(var i = 0; i <propertyNames.length;i++){
            var name= propertyNames[i]
            var obj = {
                name: name,
                value:  res.getProperty(name)
            }
            val.push(obj)
        }
        this.showMapInfo(val);
    },
    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 = [];
            var enName = ['ZH', 'HY', 'YH', 'HZ', 'Lh', 'R', 'QZ', 'CORNER', 'SL', 'WIDEN']
            var cnName = [
                '前缓和曲线起点',
                '圆曲线起点',
                '圆曲线止点',
                '后缓和曲线止点',
                '缓和曲线长度',
                '平曲线半径',
                '圆曲线中心点',
                '转角',
                '超高值',
                '加宽值'
 
            ]
            for (var i = 0; i < val_name.length; i++) {
                var name = val_name[i]
                if (enName.indexOf(name) > -1) {
                    name = cnName[enName.indexOf(name)]
                }
                var obj = {
                    name: name,
                    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;