Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0">
  6. <title>dc-example</title>
  7. <script src='http://dc.dvgis.cn/libs/echarts/echarts.min.js'></script>
  8. <script src='/libs/dc-sdk/dc.base.min.js'></script>
  9. <script src='/libs/dc-sdk/dc.core.min.js'></script>
  10. <script src='/libs/dc-sdk/dc.chart.min.js'></script>
  11. <script>DC.baseUrl='../libs/dc-sdk/resources/'</script>
  12. <link href='/libs/dc-sdk/dc.core.min.css' type='text/css' rel='stylesheet'>
  13. <link href='../index.css' type='text/css' rel='stylesheet'>
  14. <style>
  15. *{
  16. margin: 0;
  17. padding: 0;
  18. }
  19. html,body,#viewer-container{
  20. width: 100%;
  21. height: 100%;
  22. overflow: hidden;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="viewer-container"></div>
  28. <script>
  29. let viewer = undefined
  30. function initViewer() {
  31. viewer = new DC.Viewer('viewer-container')
  32. viewer.scene.canvas.setAttribute('tabIndex', 0)
  33. let baselayer = DC.ImageryLayerFactory.createAmapImageryLayer()
  34. baselayer.defaultBrightness = 0.1
  35. viewer.addBaseLayer(baselayer)
  36. viewer.flyToPosition(
  37. new DC.Position(108.198353, 20.758452, 10733735.96, 0, -90, 0),
  38. () => {
  39. let chartLayer = new DC.ChartLayer('layer').addTo(viewer)
  40. chartLayer.setOption(getOption())
  41. }
  42. )
  43. }
  44. function getOption(e) {
  45. var chinaGeoCoordMap = {
  46. 黑龙江: [127.9688, 45.368],
  47. 大庆: [126.9688, 45.868],
  48. 内蒙古: [110.3467, 41.4899],
  49. 吉林: [125.8154, 44.2584],
  50. 北京: [116.4551, 40.2539],
  51. 辽宁: [123.1238, 42.1216],
  52. 河北: [114.4995, 38.1006],
  53. 天津: [117.4219, 39.4189],
  54. 山西: [112.3352, 37.9413],
  55. 陕西: [109.1162, 34.2004],
  56. 甘肃: [103.5901, 36.3043],
  57. 宁夏: [106.3586, 38.1775],
  58. 青海: [101.4038, 36.8207],
  59. 新疆: [87.9236, 43.5883],
  60. 西藏: [91.11, 29.97],
  61. 四川: [103.9526, 30.7617],
  62. 重庆: [108.384366, 30.439702],
  63. 山东: [117.1582, 36.8701],
  64. 河南: [113.4668, 34.6234],
  65. 江苏: [118.8062, 31.9208],
  66. 安徽: [117.29, 32.0581],
  67. 湖北: [114.3896, 30.6628],
  68. 浙江: [119.5313, 29.8773],
  69. 福建: [119.4543, 25.9222],
  70. 江西: [116.0046, 28.6633],
  71. 湖南: [113.0823, 28.2568],
  72. 贵州: [106.6992, 26.7682],
  73. 云南: [102.9199, 25.4663],
  74. 广东: [113.12244, 23.009505],
  75. 广西: [108.479, 23.1152],
  76. 海南: [110.3893, 19.8516],
  77. 上海: [121.4648, 31.2891]
  78. }
  79. var chinaDatas = [
  80. [
  81. {
  82. name: '黑龙江',
  83. value: 0.88
  84. }
  85. ],
  86. [
  87. {
  88. name: '内蒙古',
  89. value: 0.12
  90. }
  91. ],
  92. [
  93. {
  94. name: '吉林',
  95. value: 0.89
  96. }
  97. ],
  98. [
  99. {
  100. name: '辽宁',
  101. value: 0.86
  102. }
  103. ],
  104. [
  105. {
  106. name: '河北',
  107. value: 0.88
  108. }
  109. ],
  110. [
  111. {
  112. name: '北京',
  113. value: 0.83
  114. }
  115. ],
  116. [
  117. {
  118. name: '天津',
  119. value: 0.71
  120. }
  121. ],
  122. [
  123. {
  124. name: '山西',
  125. value: 0.63
  126. }
  127. ],
  128. [
  129. {
  130. name: '陕西',
  131. value: 0.56
  132. }
  133. ],
  134. [
  135. {
  136. name: '宁夏',
  137. value: 0.17
  138. }
  139. ],
  140. [
  141. {
  142. name: '云南',
  143. value: 0.11
  144. }
  145. ],
  146. [
  147. {
  148. name: '四川',
  149. value: 1
  150. }
  151. ],
  152. [
  153. {
  154. name: '重庆',
  155. value: 0.8
  156. }
  157. ],
  158. [
  159. {
  160. name: '山东',
  161. value: 0.77
  162. }
  163. ],
  164. [
  165. {
  166. name: '河南',
  167. value: 0.75
  168. }
  169. ],
  170. [
  171. {
  172. name: '江苏',
  173. value: 0.88
  174. }
  175. ],
  176. [
  177. {
  178. name: '安徽',
  179. value: 0.73
  180. }
  181. ],
  182. [
  183. {
  184. name: '湖北',
  185. value: 0.75
  186. }
  187. ],
  188. [
  189. {
  190. name: '浙江',
  191. value: 0.82
  192. }
  193. ],
  194. [
  195. {
  196. name: '福建',
  197. value: 0.67
  198. }
  199. ],
  200. [
  201. {
  202. name: '江西',
  203. value: 0.71
  204. }
  205. ],
  206. [
  207. {
  208. name: '湖南',
  209. value: 0.75
  210. }
  211. ],
  212. [
  213. {
  214. name: '广东',
  215. value: 0.78
  216. }
  217. ],
  218. [
  219. {
  220. name: '海南',
  221. value: 0.1
  222. }
  223. ],
  224. [
  225. {
  226. name: '新疆',
  227. value: 0
  228. }
  229. ],
  230. [
  231. {
  232. name: '上海',
  233. value: 0.91
  234. }
  235. ]
  236. ]
  237. var convertData = function(data) {
  238. var res = []
  239. for (var i = 0; i < data.length; i++) {
  240. var dataItem = data[i]
  241. var fromCoord = chinaGeoCoordMap[dataItem[0].name]
  242. var toCoord = [126.9688, 45.868]
  243. if (fromCoord && toCoord) {
  244. res.push([
  245. {
  246. coord: fromCoord,
  247. value: dataItem[0].value
  248. },
  249. {
  250. coord: toCoord
  251. }
  252. ])
  253. }
  254. }
  255. return res
  256. }
  257. var series = []
  258. var colors = ['#f44336', '#fc9700', '#ffde00', '#ffde00', '#00eaff']
  259. ;[['大庆', chinaDatas]].forEach(function(item, i) {
  260. let color = colors[Math.floor(Math.random() * colors.length)]
  261. series.push(
  262. {
  263. type: 'lines',
  264. zlevel: 2,
  265. coordinateSystem: 'GLMap',
  266. effect: {
  267. show: true,
  268. period: 4, //箭头指向速度,值越小速度越快
  269. trailLength: 0.02, //特效尾迹长度[0,1]值越大,尾迹越长重
  270. symbol: 'arrow', //箭头图标
  271. symbolSize: 5 //图标大小
  272. },
  273. lineStyle: {
  274. normal: {
  275. width: 1, //尾迹线条宽度
  276. opacity: 1, //尾迹线条透明度
  277. curveness: 0.3, //尾迹线条曲直度
  278. color: color
  279. }
  280. },
  281. data: convertData(item[1])
  282. },
  283. {
  284. type: 'effectScatter',
  285. coordinateSystem: 'GLMap',
  286. zlevel: 2,
  287. rippleEffect: {
  288. //涟漪特效
  289. period: 4, //动画时间,值越小速度越快
  290. brushType: 'stroke', //波纹绘制方式 stroke, fill
  291. scale: 4 //波纹圆环最大限制,值越大波纹越大
  292. },
  293. label: {
  294. normal: {
  295. show: true,
  296. position: 'right', //显示位置
  297. offset: [5, 0], //偏移设置
  298. formatter: function(params) {
  299. //圆环显示文字
  300. return params.data.name
  301. },
  302. fontSize: 13
  303. },
  304. emphasis: {
  305. show: true
  306. }
  307. },
  308. symbol: 'circle',
  309. symbolSize: function(val) {
  310. return 5 + val[2] * 5 //圆环大小
  311. },
  312. itemStyle: {
  313. normal: {
  314. show: false,
  315. color: color
  316. }
  317. },
  318. data: item[1].map(function(dataItem) {
  319. return {
  320. name: dataItem[0].name,
  321. value: chinaGeoCoordMap[dataItem[0].name].concat([
  322. dataItem[0].value
  323. ])
  324. }
  325. })
  326. },
  327. //被攻击点
  328. {
  329. type: 'scatter',
  330. coordinateSystem: 'GLMap',
  331. zlevel: 2,
  332. rippleEffect: {
  333. period: 4,
  334. brushType: 'stroke',
  335. scale: 4
  336. },
  337. label: {
  338. normal: {
  339. show: true,
  340. position: 'right',
  341. //offset:[5, 0],
  342. color: '#0f0',
  343. formatter: '{b}',
  344. textStyle: {
  345. color: '#0f0'
  346. }
  347. },
  348. emphasis: {
  349. show: true,
  350. color: '#f60'
  351. }
  352. },
  353. symbol: 'pin',
  354. symbolSize: 50,
  355. data: [
  356. {
  357. name: item[0],
  358. value: chinaGeoCoordMap[item[0]].concat([10])
  359. }
  360. ]
  361. }
  362. )
  363. })
  364. return {
  365. animation: false,
  366. GLMap: {},
  367. series: series
  368. }
  369. }
  370. DC.ready(initViewer)
  371. </script>
  372. </body>
  373. </html>
  374. </body>
  375. </html>