m30_echarts_line_ru.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0" />
  6. <meta name="author" content="火星科技 http://mars3d.cn " />
  7. <meta name="apple-touch-fullscreen" content="yes" />
  8. <meta name="apple-mobile-web-app-capable" content="yes" />
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black" />
  10. <meta name="format-detection" content="telephone=no" />
  11. <meta name="x5-fullscreen" content="true" />
  12. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
  13. <!-- 标题及搜索关键字 -->
  14. <meta name="keywords" content="火星科技,cesium,3D,GIS,marsgis,三维,地球,地图,开发,框架,系统,示例,资料,模型,离线,外包,合肥,安徽,中国" />
  15. <meta
  16. name="description"
  17. content="火星科技 合肥火星 合肥火星科技 合肥火星科技有限公司 leaflet leaflet框架 leaflet开发 cesium cesium开发 cesium框架 三维 地球 模型 gis marsgis 地图离线 地图开发 地图框架 地图外包 框架 开发 外包 地图离线 二维地图 三维地图 全景漫游 地理信息系统 云GIS 三维GIS GIS平台 WebGIS"
  18. />
  19. <link rel="shortcut icon" type="image/x-icon" href="" />
  20. <title>流入线 | Echarts扩展支持|三维地图 </title>
  21. <!--第三方lib-->
  22. <script
  23. type="text/javascript"
  24. src="../lib/include-lib.js"
  25. libpath="../lib/"
  26. include="jquery,font-awesome,bootstrap,layer,haoutil,turf,mars3d,mars3d-echarts"
  27. ></script>
  28. <link href="css/style.css" rel="stylesheet" />
  29. </head>
  30. <body class="dark">
  31. <!--加载前进行操作提示,优化用户体验-->
  32. <div id="mask" class="signmask" onclick="removeMask()"></div>
  33. <div id="mars3dContainer" class="mars3d-container"></div>
  34. <script src="./js/common.js"></script>
  35. <script type="text/javascript">
  36. "use script"; //开发环境建议开启严格模式
  37. var map;
  38. function initMap(options) {
  39. //合并属性参数,可覆盖config.json中的对应配置
  40. var mapOptions = mars3d.Util.merge(options, {
  41. scene: {
  42. center: { lat: 26.197302, lng: 112.783136, alt: 5933911, heading: 356, pitch: -80 },
  43. },
  44. });
  45. //创建三维地球场景
  46. map = new mars3d.Map("mars3dContainer", mapOptions);
  47. //创建Echarts图层
  48. createEchartsLayer();
  49. }
  50. function createEchartsLayer() {
  51. /*var geoCoorddata = {
  52. 武汉: [114.30539299999998, 30.593099],
  53. 深圳: [114.05786499999999, 22.543096],
  54. 北京: [116.40739499999995, 39.904211],
  55. 阿克苏: [80.26338699999997, 41.167548],
  56. };*/
  57. var options = getEchartsOption();
  58. var echartsLayer = new mars3d.layer.EchartsLayer(options);
  59. map.addLayer(echartsLayer);
  60. }
  61. function getEchartsOption() {
  62. var geoCoordMap = {
  63. 上海: [121.4648, 31.2891],
  64. 东莞: [113.8953, 22.901],
  65. 东营: [118.7073, 37.5513],
  66. 中山: [113.4229, 22.478],
  67. 临汾: [111.4783, 36.1615],
  68. 临沂: [118.3118, 35.2936],
  69. 丹东: [124.541, 40.4242],
  70. 丽水: [119.5642, 28.1854],
  71. 乌鲁木齐: [87.9236, 43.5883],
  72. 佛山: [112.8955, 23.1097],
  73. 保定: [115.0488, 39.0948],
  74. 兰州: [103.5901, 36.3043],
  75. 包头: [110.3467, 41.4899],
  76. 北京: [116.4551, 40.2539],
  77. 北海: [109.314, 21.6211],
  78. 南京: [118.8062, 31.9208],
  79. 南宁: [108.479, 23.1152],
  80. 南昌: [116.0046, 28.6633],
  81. 赣州: [116.0046, 25.6633],
  82. 南通: [121.1023, 32.1625],
  83. 厦门: [118.1689, 24.6478],
  84. 台州: [121.1353, 28.6688],
  85. 合肥: [117.29, 32.0581],
  86. 呼和浩特: [111.4124, 40.4901],
  87. 咸阳: [108.4131, 34.8706],
  88. 哈尔滨: [127.9688, 45.368],
  89. 唐山: [118.4766, 39.6826],
  90. 嘉兴: [120.9155, 30.6354],
  91. 大同: [113.7854, 39.8035],
  92. 大连: [122.2229, 39.4409],
  93. 天津: [117.4219, 39.4189],
  94. 太原: [112.3352, 37.9413],
  95. 威海: [121.9482, 37.1393],
  96. 宁波: [121.5967, 29.6466],
  97. 宝鸡: [107.1826, 34.3433],
  98. 宿迁: [118.5535, 33.7775],
  99. 宿州: [117.5535, 33.7775],
  100. 常州: [119.4543, 31.5582],
  101. 广州: [113.5107, 23.2196],
  102. 廊坊: [116.521, 39.0509],
  103. 延安: [109.1052, 36.4252],
  104. 张家口: [115.1477, 40.8527],
  105. 徐州: [117.5208, 34.3268],
  106. 德州: [116.6858, 37.2107],
  107. 惠州: [114.6204, 23.1647],
  108. 成都: [103.9526, 30.7617],
  109. 扬州: [119.4653, 32.8162],
  110. 承德: [117.5757, 41.4075],
  111. 拉萨: [91.1865, 30.1465],
  112. 无锡: [120.3442, 31.5527],
  113. 日照: [119.2786, 35.5023],
  114. 昆明: [102.9199, 25.4663],
  115. 杭州: [119.5313, 29.8773],
  116. 枣庄: [117.323, 34.8926],
  117. 曲阜: [117.323, 35.8926],
  118. 柳州: [109.3799, 24.9774],
  119. 株洲: [113.5327, 27.0319],
  120. 武汉: [114.3896, 30.6628],
  121. 汕头: [117.1692, 23.3405],
  122. 江门: [112.6318, 22.1484],
  123. 沈阳: [123.1238, 42.1216],
  124. 沧州: [116.8286, 38.2104],
  125. 河源: [114.917, 23.9722],
  126. 泉州: [118.3228, 25.1147],
  127. 泰安: [117.0264, 36.0516],
  128. 泰州: [120.0586, 32.5525],
  129. 济南: [117.1582, 36.8701],
  130. 济宁: [116.8286, 35.3375],
  131. 海口: [110.3893, 19.8516],
  132. 淄博: [118.0371, 36.6064],
  133. 淮安: [118.927, 33.4039],
  134. 深圳: [114.5435, 22.5439],
  135. 清远: [112.9175, 24.3292],
  136. 温州: [120.498, 27.8119],
  137. 渭南: [109.7864, 35.0299],
  138. 湖州: [119.8608, 30.7782],
  139. 湘潭: [112.5439, 27.7075],
  140. 滨州: [117.8174, 37.4963],
  141. 潍坊: [119.0918, 36.524],
  142. 烟台: [120.7397, 37.5128],
  143. 玉溪: [101.9312, 23.8898],
  144. 珠海: [113.7305, 22.1155],
  145. 盐城: [120.2234, 33.5577],
  146. 盘锦: [121.9482, 41.0449],
  147. 石家庄: [114.4995, 38.1006],
  148. 福州: [119.4543, 25.9222],
  149. 秦皇岛: [119.2126, 40.0232],
  150. 绍兴: [120.564, 29.7565],
  151. 聊城: [115.9167, 36.4032],
  152. 肇庆: [112.1265, 23.5822],
  153. 舟山: [122.2559, 30.2234],
  154. 苏州: [120.6519, 31.3989],
  155. 莱芜: [117.6526, 36.2714],
  156. 菏泽: [115.6201, 35.2057],
  157. 营口: [122.4316, 40.4297],
  158. 葫芦岛: [120.1575, 40.578],
  159. 衡水: [115.8838, 37.7161],
  160. 衢州: [118.6853, 28.8666],
  161. 西宁: [101.4038, 36.8207],
  162. 西安: [109.1162, 34.2004],
  163. 贵阳: [106.6992, 26.7682],
  164. 连云港: [119.1248, 34.552],
  165. 邢台: [114.8071, 37.2821],
  166. 邯郸: [114.4775, 36.535],
  167. 郑州: [113.4668, 34.6234],
  168. 鄂尔多斯: [108.9734, 39.2487],
  169. 重庆: [107.7539, 30.1904],
  170. 金华: [120.0037, 29.1028],
  171. 铜川: [109.0393, 35.1947],
  172. 银川: [106.3586, 38.1775],
  173. 镇江: [119.4763, 31.9702],
  174. 长春: [125.8154, 44.2584],
  175. 长沙: [113.0823, 28.2568],
  176. 长治: [112.8625, 36.4746],
  177. 阳泉: [113.4778, 38.0951],
  178. 青岛: [120.4651, 36.3373],
  179. 韶关: [113.7964, 24.7028],
  180. };
  181. var BJData = [
  182. [
  183. {
  184. name: "北京",
  185. value: 100,
  186. },
  187. {
  188. name: "无锡",
  189. },
  190. ],
  191. [
  192. {
  193. name: "上海",
  194. value: 30,
  195. },
  196. {
  197. name: "无锡",
  198. },
  199. ],
  200. [
  201. {
  202. name: "广州",
  203. value: 20,
  204. },
  205. {
  206. name: "无锡",
  207. },
  208. ],
  209. [
  210. {
  211. name: "大连",
  212. value: 10,
  213. },
  214. {
  215. name: "无锡",
  216. },
  217. ],
  218. [
  219. {
  220. name: "青岛",
  221. value: 20,
  222. },
  223. {
  224. name: "无锡",
  225. },
  226. ],
  227. [
  228. {
  229. name: "石家庄",
  230. value: 20,
  231. },
  232. {
  233. name: "无锡",
  234. },
  235. ],
  236. [
  237. {
  238. name: "南昌",
  239. value: 10,
  240. },
  241. {
  242. name: "无锡",
  243. },
  244. ],
  245. [
  246. {
  247. name: "合肥",
  248. value: 30,
  249. },
  250. {
  251. name: "无锡",
  252. },
  253. ],
  254. [
  255. {
  256. name: "呼和浩特",
  257. value: 10,
  258. },
  259. {
  260. name: "无锡",
  261. },
  262. ],
  263. [
  264. {
  265. name: "宿州",
  266. value: 10,
  267. },
  268. {
  269. name: "无锡",
  270. },
  271. ],
  272. [
  273. {
  274. name: "曲阜",
  275. value: 10,
  276. },
  277. {
  278. name: "无锡",
  279. },
  280. ],
  281. [
  282. {
  283. name: "杭州",
  284. value: 10,
  285. },
  286. {
  287. name: "无锡",
  288. },
  289. ],
  290. [
  291. {
  292. name: "武汉",
  293. value: 10,
  294. },
  295. {
  296. name: "无锡",
  297. },
  298. ],
  299. [
  300. {
  301. name: "深圳",
  302. value: 10,
  303. },
  304. {
  305. name: "无锡",
  306. },
  307. ],
  308. [
  309. {
  310. name: "珠海",
  311. value: 10,
  312. },
  313. {
  314. name: "无锡",
  315. },
  316. ],
  317. [
  318. {
  319. name: "福州",
  320. value: 20,
  321. },
  322. {
  323. name: "无锡",
  324. },
  325. ],
  326. [
  327. {
  328. name: "西安",
  329. value: 60,
  330. },
  331. {
  332. name: "无锡",
  333. },
  334. ],
  335. [
  336. {
  337. name: "赣州",
  338. value: 10,
  339. },
  340. {
  341. name: "无锡",
  342. },
  343. ],
  344. ];
  345. //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';
  346. var convertData = function (data) {
  347. var res = [];
  348. for (var i = 0; i < data.length; i++) {
  349. var dataItem = data[i];
  350. var fromCoord = geoCoordMap[dataItem[0].name];
  351. var toCoord = geoCoordMap[dataItem[1].name];
  352. if (fromCoord && toCoord) {
  353. res.push({
  354. fromName: dataItem[0].name,
  355. toName: dataItem[1].name,
  356. coords: [fromCoord, toCoord],
  357. });
  358. }
  359. }
  360. return res;
  361. };
  362. // var covertColor = function (data) {
  363. // data.map(function (dataItem) {
  364. // console.log(dataItem[0]);
  365. // let value = dataItem[0].value;
  366. // let color = "red";
  367. // if (value > 80) {
  368. // color = "red";
  369. // } else if (value > 60) {
  370. // color = "#56e88c";
  371. // } else if (value > 40) {
  372. // color = "#ffa022";
  373. // } else if (value > 20) {
  374. // color = "#46bee9";
  375. // }
  376. // return color;
  377. // });
  378. // };
  379. var series = [];
  380. [["北京", BJData]].forEach(function (item, i) {
  381. series.push(
  382. {
  383. name: item[0],
  384. type: "lines",
  385. coordinateSystem: "mars3dMap",
  386. zlevel: 2,
  387. effect: {
  388. show: true,
  389. period: 6,
  390. trailLength: 0.1,
  391. // symbol: planePath,
  392. symbol: "arrow",
  393. symbolSize: 5,
  394. },
  395. lineStyle: {
  396. normal: {
  397. // color: covertColor(item[1]), // TODO : 无法奏效
  398. color: "#56e88c",
  399. width: 1,
  400. opacity: 0.4,
  401. curveness: 0.2,
  402. },
  403. },
  404. data: convertData(item[1]),
  405. },
  406. {
  407. // name: item[1],
  408. type: "effectScatter",
  409. coordinateSystem: "mars3dMap",
  410. zlevel: 2,
  411. rippleEffect: {
  412. brushType: "stroke",
  413. },
  414. label: {
  415. normal: {
  416. show: true,
  417. position: "right",
  418. formatter: "{b}",
  419. },
  420. },
  421. symbolSize: function (val) {
  422. return 3 + val[2] / 10;
  423. },
  424. itemStyle: {
  425. normal: {
  426. color: "#60ff44",
  427. },
  428. },
  429. data: item[1].map(function (dataItem) {
  430. return {
  431. name: dataItem[0].name,
  432. value: geoCoordMap[dataItem[0].name].concat([dataItem[0].value]),
  433. };
  434. }),
  435. }
  436. );
  437. });
  438. var option = {
  439. animation: false,
  440. //title: {
  441. // text: 'EasyOP集群分布图',
  442. // subtext: '集群分布图',
  443. // left: 'center',
  444. // textStyle: {
  445. // color: '#222'
  446. // }
  447. //},
  448. tooltip: {
  449. trigger: "item",
  450. },
  451. series: series,
  452. };
  453. return option;
  454. }
  455. </script>
  456. </body>
  457. </html>