zhanmingkan
2022-05-17 e8d9f2bb15b9e2a0aedafa2e7d56e741b2296f8a
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
$(document).ready(function(){
    var topValue = $(document.body).height() / 2 - 150;
    var leftValue = $(document.body).width() / 2 + 230;
    $('.loginbox').css("top",topValue);
    $('.loginbox').css("left",leftValue);
    $('.loginboxunder').css("top",topValue);
    $('.loginboxunder').css("left",leftValue);
    var mValue = $(document.body).height();
    $('.map').css("height",mValue);
    if(window.top !== window.self){ window.top.location = window.location;}
        
    var geoCoordMap = {
        '上海': [121.4648,31.2891],
        '东莞': [113.8953,22.901],
        '东营': [118.7073,37.5513],
        '中山': [113.4229,22.478],
        '临汾': [111.4783,36.1615],
        '临沂': [118.3118,35.2936],
        '丹东': [124.541,40.4242],
        '丽水': [119.5642,28.1854],
        '乌鲁木齐': [87.9236,43.5883],
        '佛山': [112.8955,23.1097],
        '保定': [115.0488,39.0948],
        '兰州': [103.5901,36.3043],
        '包头': [110.3467,41.4899],
        '北京': [116.4551,40.2539],
        '北海': [109.314,21.6211],
        '南京': [118.8062,31.9208],
        '南宁': [108.479,23.1152],
        '南昌': [116.0046,28.6633],
        '南通': [121.1023,32.1625],
        '厦门': [118.1689,24.6478],
        '台州': [121.1353,28.6688],
        '合肥': [117.29,32.0581],
        '呼和浩特': [111.4124,40.4901],
        '咸阳': [108.4131,34.8706],
        '哈尔滨': [127.9688,45.368],
        '唐山': [118.4766,39.6826],
        '嘉兴': [120.9155,30.6354],
        '大同': [113.7854,39.8035],
        '大连': [122.2229,39.4409],
        '天津': [117.4219,39.4189],
        '太原': [112.3352,37.9413],
        '威海': [121.9482,37.1393],
        '宁波': [121.5967,29.6466],
        '宝鸡': [107.1826,34.3433],
        '宿迁': [118.5535,33.7775],
        '常州': [119.4543,31.5582],
        '广州': [113.5107,23.2196],
        '廊坊': [116.521,39.0509],
        '延安': [109.1052,36.4252],
        '张家口': [115.1477,40.8527],
        '徐州': [117.5208,34.3268],
        '德州': [116.6858,37.2107],
        '惠州': [114.6204,23.1647],
        '成都': [103.9526,30.7617],
        '扬州': [119.4653,32.8162],
        '承德': [117.5757,41.4075],
        '拉萨': [91.1865,30.1465],
        '无锡': [120.3442,31.5527],
        '日照': [119.2786,35.5023],
        '昆明': [102.9199,25.4663],
        '杭州': [119.5313,29.8773],
        '枣庄': [117.323,34.8926],
        '柳州': [109.3799,24.9774],
        '株洲': [113.5327,27.0319],
        '武汉': [114.3896,30.6628],
        '汕头': [117.1692,23.3405],
        '江门': [112.6318,22.1484],
        '沈阳': [123.1238,42.1216],
        '沧州': [116.8286,38.2104],
        '河源': [114.917,23.9722],
        '泉州': [118.3228,25.1147],
        '泰安': [117.0264,36.0516],
        '泰州': [120.0586,32.5525],
        '济南': [117.1582,36.8701],
        '济宁': [116.8286,35.3375],
        '海口': [110.3893,19.8516],
        '淄博': [118.0371,36.6064],
        '淮安': [118.927,33.4039],
        '深圳': [114.5435,22.5439],
        '清远': [112.9175,24.3292],
        '温州': [120.498,27.8119],
        '渭南': [109.7864,35.0299],
        '湖州': [119.8608,30.7782],
        '湘潭': [112.5439,27.7075],
        '滨州': [117.8174,37.4963],
        '潍坊': [119.0918,36.524],
        '烟台': [120.7397,37.5128],
        '玉溪': [101.9312,23.8898],
        '珠海': [113.7305,22.1155],
        '盐城': [120.2234,33.5577],
        '盘锦': [121.9482,41.0449],
        '石家庄': [114.4995,38.1006],
        '福州': [119.4543,25.9222],
        '秦皇岛': [119.2126,40.0232],
        '绍兴': [120.564,29.7565],
        '聊城': [115.9167,36.4032],
        '肇庆': [112.1265,23.5822],
        '舟山': [122.2559,30.2234],
        '苏州': [120.6519,31.3989],
        '莱芜': [117.6526,36.2714],
        '菏泽': [115.6201,35.2057],
        '营口': [122.4316,40.4297],
        '葫芦岛': [120.1575,40.578],
        '衡水': [115.8838,37.7161],
        '衢州': [118.6853,28.8666],
        '西宁': [101.4038,36.8207],
        '西安': [109.1162,34.2004],
        '贵阳': [106.6992,26.7682],
        '连云港': [119.1248,34.552],
        '邢台': [114.8071,37.2821],
        '邯郸': [114.4775,36.535],
        '郑州': [113.4668,34.6234],
        '鄂尔多斯': [108.9734,39.2487],
        '重庆': [107.7539,30.1904],
        '金华': [120.0037,29.1028],
        '铜川': [109.0393,35.1947],
        '银川': [106.3586,38.1775],
        '镇江': [119.4763,31.9702],
        '长春': [125.8154,44.2584],
        '长沙': [113.0823,28.2568],
        '长治': [112.8625,36.4746],
        '阳泉': [113.4778,38.0951],
        '青岛': [120.4651,36.3373],
        '韶关': [113.7964,24.7028]
    };
 
    var BJData = [
        [{name:'北京'}, {name:'上海',value:95}],
        [{name:'北京'}, {name:'广州',value:90}],
        [{name:'北京'}, {name:'大连',value:80}],
        [{name:'北京'}, {name:'南宁',value:70}],
        [{name:'北京'}, {name:'南昌',value:60}],
        [{name:'北京'}, {name:'拉萨',value:50}],
        [{name:'北京'}, {name:'长春',value:40}],
        [{name:'北京'}, {name:'包头',value:30}],
        [{name:'北京'}, {name:'重庆',value:20}],
        [{name:'北京'}, {name:'常州',value:10}],
        [{name:'北京'}, {name:'哈尔滨',value:5}],
        [{name:'北京'}, {name:'乌鲁木齐',value:5}],
    ];
 
    var SHData = [
        [{name:'上海'},{name:'包头',value:95}],
        [{name:'上海'},{name:'昆明',value:90}],
        [{name:'上海'},{name:'广州',value:80}],
        [{name:'上海'},{name:'郑州',value:70}],
        [{name:'上海'},{name:'长春',value:60}],
        [{name:'上海'},{name:'重庆',value:50}],
        [{name:'上海'},{name:'长沙',value:40}],
        [{name:'上海'},{name:'北京',value:30}],
        [{name:'上海'},{name:'丹东',value:20}],
        [{name:'上海'},{name:'大连',value:10}],
        [{name:'上海'},{name:'兰州',value:10}],
    ];
 
    var GZData = [
        [{name:'广州'},{name:'福州',value:95}],
        [{name:'广州'},{name:'太原',value:90}],
        [{name:'广州'},{name:'长春',value:80}],
        [{name:'广州'},{name:'重庆',value:70}],
        [{name:'广州'},{name:'西安',value:60}],
        [{name:'广州'},{name:'成都',value:50}],
        [{name:'广州'},{name:'常州',value:40}],
        [{name:'广州'},{name:'北京',value:30}],
        [{name:'广州'},{name:'北海',value:20}],
        [{name:'广州'},{name:'海口',value:10}],
        [{name:'广州'},{name:'银川',value:10}],
    ];
 
    var planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.'
                +'521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,'
                +'121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,'
                +'241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,'
                +'42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
 
    var convertData = function (data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var dataItem = data[i];
            var fromCoord = geoCoordMap[dataItem[0].name];
            var toCoord = geoCoordMap[dataItem[1].name];
            if (fromCoord && toCoord) {
                res.push({
                    fromName: dataItem[0].name,
                    toName: dataItem[1].name,
                    coords: [fromCoord, toCoord]
                });
            }
        }
        return res;
    };
 
    var color = ['#a6c84c', '#ffa022', '#46bee9'];
    var series = [];
    [['北京', BJData], ['上海', SHData], ['广州', GZData]].forEach(function (item, i) {
        series.push({//连接实线
            name: item[0] + ' Top10',
            type: 'lines',
            coordinateSystem: 'geo',
            zlevel: 1,
            effect: {
                show: true,
                period: 6,
                trailLength: 0.7,
                color: '#fff',
                symbolSize: 3
            },
            lineStyle: {
                normal: {
                    color: color[i],
                    width: 0,
                    curveness: 0.2
                }
            },
            data: convertData(item[1])
        },
        {//流动线
            name: item[0] + ' Top10',
            type: 'lines',
            coordinateSystem: 'geo',
            zlevel: 2,
            symbol: ['none', 'arrow'],
            symbolSize: 10,
            effect: {
                show: true,
                period: 6,
                trailLength: 0,
                symbol: planePath,
                symbolSize: 15
            },
            lineStyle: {
                normal: {
                    color: color[i],
                    width: 1,
                    opacity: 0.6,
                    curveness: 0.2
                }
            },
            data: convertData(item[1])
        },
        {//城市点
            name: item[0] + ' Top10',
            type: 'effectScatter',
            coordinateSystem: 'geo',
            zlevel: 3,
            rippleEffect: {
                brushType: 'stroke'
            },
            label: {
                normal: {
                    show: true,
                    position: 'right',
                    formatter: '{b}'
                }
            },
            symbolSize: function (val) {
                return val[2] / 8;
            },
            itemStyle: {
                normal: {
                    color: color[i]
                }
            },
            data: item[1].map(function (dataItem) {
                return {
                    name: dataItem[1].name,
                    value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])
                };
            })
        });
    });
    
    var myoption = {
        backgroundColor: '#081634',//#031D42,#081634',
        tooltip : {
            trigger: 'item',
            formatter:function(params, ticket, callback){
                if(params.seriesType=="effectScatter") {
                    return "线路:"+params.data.name+""+params.data.value[2];
                }else if(params.seriesType=="lines"){
                    return params.data.fromName+">"+params.data.toName+"<br />"+params.data.value;
                }else{
                    return params.name;
                }
            }
        },
        legend: {
            orient: 'vertical',
            top: 'bottom',
            show:false,
            left: 'right',
            data:['北京 Top10', '上海 Top10', '广州 Top10'],
            textStyle: {
                color: '#fff'
            },
            selectedMode: 'multiple',
        },
        geo: {
            map: 'china',
            label: {
                emphasis: {
                    show: true,
                    color:'#fff'
                }
            },
            center: [120.98561551896913, 33.205000490896193],
            zoom: 1.5,
            roam: true,
            itemStyle: {
                normal: {
                    areaColor: 'rgba(2,242,252,0.05)',
                    borderColor: '#EEEEEE',
                    //shadowBlur: 1,
                    shadowColor: 'rgba(2,242,252, 0.8)',
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        },
        series: series
    };
    var mychart = echarts.init(document.getElementById("map"), 'dark');
    mychart.setOption(myoption);
});
 
//登录
function toIndex(){
    this.location.href='index.html';
}
//版本说明
function showversion(){
    var content = '<ul style="color:#000;width:100%;font-size:15px;margin:10px 0px;text-align:left">'
        +'<li>@@@easy3D核心研发者:mty198566,核心决策者:sunhengyu</li>'
        +'<li>@@1.0版:2017年9月26日-2017年12月31日</li>'
        +'<li>曾用名:police3d</li>'
        +'<li>(1)SSM+Cesium API+jquery UI框架搭建</li>'
        +'<li>(2)针对公安业务+大数据可视化特点设计UI</li>'
        +'<li>(3)选择图们公安为试验试点,开展业务调研设计、业务数据制作与基础功能研发</li>'
        +'<li>--感谢:cd、cgz、cj</li>'
        +'<li>@@1.1版:2018年1月1日-2018年2月14日</li>'
        +'<li>(1)公安案件功能研发:定位、多媒体信息查询、案件按类型、时序、网格分布统计</li>'
        +'<li>(2)测面、测距、测高等基本测量工具研发</li>'
        +'<li>(3)二三维警车、警员定位与信息查询</li>'
        +'<li>--感谢:cd、cgz、cj</li>'
        +'<li>@@1.2版:2018年2月15日-2018年3月30日</li>'
        +'<li>(1)二三维大数据统计分析,包括二维热力图等</li>'
        +'<li>(2)应急对象分组调度的前端交互功能</li>'
        +'<li>(3)根据公安业务研发公安一张图功能,实现一标三实、治安网格、巡逻路线等公安图层信息管理</li>'
        +'<li>--感谢:cd、cgz、cj</li>'
        +'<li>@@1.3版:2018年4月1日-2018年5月3日</li>'
        +'<li>(1)街景地图引入并与实景三维地图联动</li>'
        +'<li>(2)引入视频监控rtsp协议信号,采用贴地幕布方法实现视频监控贴地与拼接</li>'
        +'<li>(3)利用spring实现多数据库访问,结合808车辆定位平台,实现基于实景三维场景的车辆定位、轨迹回放</li>'
        +'<li>--感谢:cd、cj、cgz</li>'
        +'<li>@@1.4版:2018年5月4日-2018年8月30日</li>'
        +'<li>(1)代码整合清理,将数据请求与地图交互效果分离,明确各文件目的,修复已查明若干BUG</li>'
        +'<li>(2)放弃二维相关功能,全力实现三维功能</li>'
        +'<li>(3)针对目前全部业务,研发完整的后台管理平台(police3dm)</li>'
        +'<li>(4)对接执法一号移动执法仪设备接口(smarteye),实现人员定位、执法仪4G视频图传</li>'
        +'<li>(5)吉林省延边自治州图们市巡逻大队项目落地,视频拼接</li>'
        +'<li>--感谢:cj、cgz、bailu、hurongqiang(天津)</li>'
        +'<li>@@1.5版:2018年9月1日-2019年1月15日</li>'
        +'<li>(1)采用视频投影融合方法实现立面与地面的一体化视频监控贴地融合与拼接,并实现视频监控视锥体参数的后台管理</li>'
        +'<li>(2)根据公安接处警业务逻辑,结合postgis的空间分析方法,实现接处警应急的警力、视频智能获取</li>'
        +'<li>(3)扩展城管事件、部件、网格、工地管理等功能</li>'
        +'<li>(4)实践移动端访问小块儿数据与移动端手势操作等功能</li>'
        +'<li>(5)修复已查明若干BUG,完善各项功能交互的易用性</li>'
        +'<li>--感谢:vtxf(北京)、bailu、wyq</li>'
        +'<li>@@2.0版:2019年1月16日-2019年4月15日</li>'
        +'<li>(1)利用java+内置Nginx+vlc实现rtsp协议视频监控画面动态转码、动态接入技术,降低视频服务器90%以上负载压力</li>'
        +'<li>(2)引入水面效果,补充水面漏洞</li>'
        +'<li>(3)大范围整理底层代码,修复已查明若干BUG,完善各项功能交互的易用性</li>'
        +'<li>(4)新疆阿勒泰地区青河县项目落地,一键报警、执法仪4G视频图传定制升级</li>'
        +'<li>--感谢:bailu、zj、duyuxing、hurongqiang(天津)</li>'
        +'<li>@@2.1版:2019年4月16日-2019年5月15日</li>'
        +'<li>(1)研发实景三维数据优化工具,实现3dtiles索引的优化,三维数据质量可选高中低三档,降低低配显卡应用平台的门槛</li>'
        +'<li>(2)升级cesium到1.59版,升级java到1.8版,并调整对应SSM框架,升级tomcat到9.0,并做相关优化,提高平台响应效率</li>'
        +'<li>(3)实现大数据可视化热力图贴地、流动线、白膜、动画等效果</li>'
        +'<li>--感谢:vtxf(北京)</li>'
        +'<li>@@2.2版:2019年5月16日-2019年6月15日</li>'
        +'<li>(1)完善视频贴地效果观看的最佳角度锁定、定点环视等交互,提高视频投影融合的表达效果</li>'
        +'<li>(2)基于实景三维的空间规划表达、管理、实施监督功能设计与实践</li>'
        +'<li>(3)实现案件散点聚合功能,可优化大量案件表达响应效率</li>'
        +'<li>--感谢:(cgz)</li>'
        +'<li>@@2.3版:2018年6月16日-2019年7月15日</li>'
        +'<li>(1)深度优化后台管理代码,完善点线面的绘制方法,地形模型同时可取点,优化线面绘制可视化效果</li>'
        +'<li>(2)接入百度路径导航(带路况)、实现通视分析、环视分析、卷帘分析等分析功能,并优化多种测量功能</li>'
        +'<li>(3)修复已查明若干BUG,完善各项功能交互的易用性</li>'
        +'<li>@@2.4版:2018年7月16日-2019年8月31日</li>'
        +'<li>(1)整合引入手头约63G的3dtiles数据,测试数据承载量,并实现对三维数据的后台管理</li>'
        +'<li>(2)实现平台运行所需所有参数在后台管理,深度优化初始化过程,加载更合理,无需修改代码</li>'
        +'<li>(3)实现机场净空区管理项目落地,实现驻村信息管理平台项目落地,并整合三维简模、气泡标签、缓冲区绘制等相关特色功能</li>'
        +'<li>--感谢:bailu、zj、duyuxing、zns、ql</li>'
        +'<li>@@3.0版:2018年9月1日-2019年11月1日</li>'
        +'<li>正式定名:easy3d</li>'
        +'<li>(1)整合深圳拆迁大片区改造平台(建筑物管理统计分析、shp文件导入、标签定位、动态测量经纬度和动态相机姿态)</li>'
        +'<li>(2)基于shp矢量生成3dtiles,实现建筑物的分层分户查询</li>'
        +'<li>(3)整合海军三维战术指挥平台(模型定位、移动动画、雷达、导弹、气泡、干扰球)相关功能</li>'
        +'<li>(4)页面全面优化,实现页面科技感动态效果,最大化实景三维场景</li>'
        +'<li>(5)整合石化站demo,实现多气泡,同时展示多路视频监控画面及其在三维场景中的准确位置,并挂接视频贴地</li>'
        +'<li>--感谢:bailu、chenbaoshuo(深圳)</li>'
        +'<li>@@3.1版:2019年11月11日-2019年12月9日</li>'
        +'<li>(1)优化平台架构,内置Nginx管理发布3dtiles等静态资源文件,提高20%场景加载响应速度</li>'
        +'<li>(2)实现多气泡,同时展示多个执法仪4G视频图传,并实现不影响视频播放的气泡的位置更新</li>'
        +'<li>(3)实现人工智能识别业务前端效果,包括人脸与车辆识别报警与追踪、及其记录回查,身份证刷卡轨迹</li>'
        +'<li>(4)底层引擎CesiumJS版本升级到1.64</li>'
        +'<li>(5)修复已查明若干BUG,完善各项功能交互的易用性</li>'
        +'<li>--感谢:chenxuanhao(重庆)</li>'
        +'<li>@@3.2版:2020年1月1日-2020年4月1日</li>'
        +'<li>(1)新增人员与车辆装备管理功能,通过装备快速评定执行任务的适宜性</li>'
        +'<li>(2)一键报警案件直接录入案件列表,完善案件多媒体资料管理</li>'
        +'<li>(3)新增陆军坦克实时定位动画</li>'
        +'<li>(4)优化一键报警、人脸识别、人员与车辆监督、统计分析的交互体验、响应速度、实现效果</li>'
        +'<li>(5)以超链接方式接入青河公安平台与机场净空区管理平台,向用户展示成熟应用案例</li>'
        +'<li>(6)修复已查明若干BUG,完善各项功能交互的易用性</li>'
        +'<li>--感谢:bailu、zkb、zns、ql</li>'
        +'<li>@@4.0版:2020年3月1日-2020年4月10日</li>'
        +'<li>(1)优化平台框架、分离前后端程序、分离出3d、3dm、api三个部分,为前后端的专项升级奠定基础</li>'
        +'<li>(2)成功研发4G执法仪服务器接口程序,接收、解析、存储实时定位与历史定位数据,转发视频数据,支撑截图等扩展功能</li>'
        +'<li>(3)完善4G执法仪定位与视频上传功能效果,定位数据直接从数据库中获取,视频延迟优化到2-5秒</li>'
        +'<li>(4)修复已查明若干BUG,完善各项功能交互的易用性</li>'
        +'<li>--感谢:bailu、zkb、zns、ql</li>'
        +'<li>@@4.1版:2020年4月10日-2020年6月10日</li>'
        +'<li>(1)分层分户查询与商用性绘制工具,实现分层分户真正商业化应用</li>'
        +'<li>(2)实现路径漫游功能,可绘制、预览、保存路径</li>'
        +'<li>(3)进一步优化平台框架,将公共引用的js-lib包转入easyAPI程序</li>'
        +'<li>(4)完善功能实现效果,修复已查明若干BUG,完善各项功能交互的易用性</li>'
        +'<li>(5)总有效代码量达到109102行</li>'
        +'<li>--感谢:bailu、zkb、zns、ql</li>'
        +'</ul>';
    layer.open({
        skin : 'demo-class',
        title : [ 'easy3d实景三维综合应用平台-版本说明', 'font-size:20px;'],
        type : 1,
        area : ['900px', '722px'],
        shadeClose : true,
        content : content
    });
}