Layer.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. /**
  2. * 图层加载工具类
  3. */
  4. import {setBoat} from '@/utils/map/Boat'
  5. import {addLayer,setOpacity} from "@/utils/map/ArcgisUtil";
  6. import {setCenter,setSxdxCamera} from '@/utils/map/Common'
  7. // let layerList = ['cb','mt','jjq','dtq','md','sszh','hb','hd','sxdx','2023.1','2022.1','2022.2','2021.1','2021.2','2020.1','2020.2']
  8. let layerList = []
  9. let defaultLayerList = [
  10. {
  11. // 水上客运
  12. id: 'waterPassenger',
  13. title: 'waterPassenger',
  14. type: 'feature',
  15. url:'http://10.83.68.109:6080/arcgis/rest/services/water_passenger_3857/MapServer',
  16. visible: false,
  17. opacity: 1,
  18. token: '',
  19. is_goto: false
  20. },
  21. {
  22. // 数字孪生图层
  23. id: 'digitalTwain',
  24. title: 'digitalTwain',
  25. type: 'feature',
  26. url:'http://10.83.68.109:6080/arcgis/rest/services/digitalTwain_3857/MapServer',
  27. visible: false,
  28. opacity: 1,
  29. token: '',
  30. is_goto: false
  31. },
  32. {
  33. // 地图查询图层
  34. id: 'ghjgCxall',
  35. title: 'ghjgCxall',
  36. type: 'shc_map',
  37. url:'http://10.83.68.109:6080/arcgis/rest/services/ghjg_cxall/MapServer',
  38. visible: false,
  39. opacity: 1,
  40. token: '',
  41. is_goto: false
  42. }
  43. ]
  44. export function addDefaultServer(){
  45. for (let i = 0; i < defaultLayerList.length; i++) {
  46. let layerObject = defaultLayerList[i];
  47. addLayer({
  48. id: layerObject.id,
  49. title: layerObject.title,
  50. type: layerObject.type,
  51. url: layerObject.url,
  52. visible: layerObject.visible,
  53. opacity: layerObject.opacity,
  54. token: layerObject.token,
  55. is_goto: layerObject.is_goto
  56. })
  57. }
  58. }
  59. export function closeAllLayer() {
  60. for (let i = layerList.length-1; i >=0;i--) {
  61. addLayerByName(layerList[i],false)
  62. }
  63. }
  64. export function addLayerByName(name,isShow,opacity){
  65. // 存储到打开图层列表
  66. if(isShow){
  67. let isExist = false
  68. for(let i = layerList.length-1; i >=0;i--){
  69. if(layerList[i] == name){
  70. isExist = true
  71. }
  72. }
  73. if(!isExist){
  74. layerList.push(name)
  75. }
  76. }else{
  77. for(let i = layerList.length-1; i >=0;i--){
  78. if(layerList[i] == name){
  79. layerList.splice(i,1)
  80. }
  81. }
  82. }
  83. console.log(layerList)
  84. switch (name) {
  85. // 船舶
  86. case 'cb':
  87. setBoat(isShow)
  88. break
  89. // 码头泊位
  90. case 'mt':
  91. addLayer({
  92. id: 'portLayer',
  93. title: 'portLayer',
  94. type: 'feature',
  95. url: 'http://10.83.68.109:6080/arcgis/rest/services/digitalTwain_3857/MapServer/0',
  96. visible: isShow,
  97. opacity: opacity?opacity:1,
  98. token: '',
  99. is_goto: true
  100. })
  101. break
  102. // 警戒区
  103. case 'jjq':
  104. addLayer({
  105. id: 'jjqIconLayer',
  106. title: 'jjqIconLayer',
  107. type: 'scene',
  108. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/警戒区图标/SceneServer',
  109. visible: isShow,
  110. opacity: opacity?opacity:1,
  111. token: '',
  112. is_goto: true
  113. })
  114. addLayer({
  115. id: 'jjqAreaLayer',
  116. title: 'jjqAreaLayer',
  117. type: 'feature',
  118. url: 'http://10.83.68.109:6080/arcgis/rest/services/jingjiequ/MapServer',
  119. visible: isShow,
  120. opacity: opacity?opacity:0.5,
  121. token: '',
  122. is_goto: true
  123. })
  124. break
  125. // 掉头区
  126. case 'dtq':
  127. addLayer({
  128. id: 'dtqIconLayer',
  129. title: 'dtqIconLayer',
  130. type: 'scene',
  131. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/掉头区图标/SceneServer',
  132. visible: isShow,
  133. opacity: opacity?opacity:1,
  134. token: '',
  135. is_goto: true
  136. })
  137. addLayer({
  138. id: 'dtqAreaLayer',
  139. title: 'dtqAreaLayer',
  140. type: 'feature',
  141. url: 'http://10.83.68.109:6080/arcgis/rest/services/backArea/MapServer',
  142. visible: isShow,
  143. opacity: opacity?opacity:0.5,
  144. token: '',
  145. is_goto: true
  146. })
  147. break
  148. // 锚地
  149. case 'md':
  150. addLayer({
  151. id: 'mdIconLayer',
  152. title: 'mdIconLayer',
  153. type: 'scene',
  154. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/锚地图标/SceneServer',
  155. visible: isShow,
  156. opacity: opacity?opacity:1,
  157. token: '',
  158. is_goto: true
  159. })
  160. addLayer({
  161. id: 'mdAreaLayer',
  162. title: 'mdAreaLayer',
  163. type: 'feature',
  164. url: 'http://10.83.68.109:6080/arcgis/rest/services/maodi/MapServer',
  165. visible: isShow,
  166. opacity: opacity?opacity:0.5,
  167. token: '',
  168. is_goto: true
  169. })
  170. break
  171. // 水上综合绿色服务器
  172. case 'sszh':
  173. addLayer({
  174. id: 'ssfwqIconLayer',
  175. title: 'ssfwqIconLayer',
  176. type: 'scene',
  177. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/水上绿色综合服务区图标/SceneServer',
  178. visible: isShow,
  179. opacity: opacity?opacity:1,
  180. token: '',
  181. is_goto: true
  182. })
  183. addLayer({
  184. id: 'ssfwqAreaLayer',
  185. title: 'ssfwqAreaLayer',
  186. type: 'feature',
  187. url: 'http://10.83.68.109:6080/arcgis/rest/services/shuishangfuququ/MapServer',
  188. visible: isShow,
  189. opacity: opacity?opacity:0.5,
  190. token: '',
  191. is_goto: true
  192. })
  193. break
  194. // 航标
  195. case 'hb':
  196. addLayer({
  197. id: 'hbSceneLayer',
  198. title: 'hbSceneLayer',
  199. type: 'scene',
  200. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/航标/SceneServer',
  201. visible: isShow,
  202. opacity: opacity?opacity:1,
  203. token: '',
  204. is_goto: true
  205. })
  206. break
  207. // 航道
  208. case 'hd':
  209. addLayer({
  210. id: 'channelLayer',
  211. title: 'channelLayer',
  212. type: 'feature',
  213. url: 'http://10.83.68.109:6080/arcgis/rest/services/digitalTwain_3857/MapServer/2',
  214. visible: isShow,
  215. opacity: opacity?opacity:1,
  216. token: '',
  217. is_goto: true
  218. })
  219. break
  220. // 水下地形
  221. case 'sxdx':
  222. addLayer({
  223. id: 'dbsLayer',
  224. title: 'dbsLayer',
  225. type: 'scene',
  226. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer',
  227. visible: isShow,
  228. opacity: opacity?opacity:1,
  229. token: '',
  230. is_goto: true
  231. })
  232. // if(isShow){
  233. // setOpacity(0.4)
  234. // setSxdxCamera()
  235. // }else{
  236. // setOpacity(1)
  237. // setCenter()
  238. // }
  239. break
  240. case '2023.1':
  241. addLayer({
  242. id: 'deepthLayer202301',
  243. title: 'deepthLayer202301',
  244. type: 'scene',
  245. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer',
  246. visible: isShow,
  247. opacity: opacity?opacity:1,
  248. token: '',
  249. is_goto: true
  250. })
  251. break
  252. case '2022.1':
  253. addLayer({
  254. id: 'deepthLayer202201',
  255. title: 'deepthLayer202201',
  256. type: 'scene',
  257. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2022/SceneServer',
  258. visible: isShow,
  259. opacity: opacity?opacity:1,
  260. token: '',
  261. is_goto: false
  262. })
  263. break
  264. case '2022.2':
  265. addLayer({
  266. id: 'deepthLayer202202',
  267. title: 'deepthLayer202202',
  268. type: 'scene',
  269. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第二期2022/SceneServer',
  270. visible: isShow,
  271. opacity: 1,
  272. token: '',
  273. is_goto: false
  274. })
  275. break
  276. case '2021.1':
  277. addLayer({
  278. id: 'deepthLayer202101',
  279. title: 'deepthLayer202101',
  280. type: 'scene',
  281. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2021/SceneServer',
  282. visible: isShow,
  283. opacity: 1,
  284. token: '',
  285. is_goto: false
  286. })
  287. break
  288. case '2021.2':
  289. addLayer({
  290. id: 'deepthLayer202102',
  291. title: 'deepthLayer202102',
  292. type: 'scene',
  293. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第二期2021/SceneServer',
  294. visible: isShow,
  295. opacity: 1,
  296. token: '',
  297. is_goto: false
  298. })
  299. break
  300. case '2020.1':
  301. addLayer({
  302. id: 'deepthLayer202001',
  303. title: 'deepthLayer202001',
  304. type: 'scene',
  305. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2020/SceneServer',
  306. visible: isShow,
  307. opacity: 1,
  308. token: '',
  309. is_goto: false
  310. })
  311. break
  312. case '2020.2':
  313. addLayer({
  314. id: 'deepthLayer202002',
  315. title: 'deepthLayer202002',
  316. type: 'scene',
  317. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第二期2020/SceneServer',
  318. visible: isShow,
  319. opacity: 1,
  320. token: '',
  321. is_goto: false
  322. })
  323. break
  324. // 两岸白膜
  325. case 'bm':
  326. addLayer({
  327. id: 'hpj500mBuildingLayer',
  328. title: 'hpj500mBuildingLayer',
  329. type: 'scene',
  330. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/黄浦江周边建筑500m/SceneServer',
  331. visible: isShow,
  332. opacity: 1,
  333. token: '',
  334. is_goto: false
  335. })
  336. addLayer({
  337. id: 'pxBuildingLayer',
  338. title: 'pxBuildingLayer',
  339. type: 'scene',
  340. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/浦西核心段白膜/SceneServer',
  341. visible: isShow,
  342. opacity: 1,
  343. token: '',
  344. is_goto: false
  345. })
  346. break
  347. // 两岸精膜
  348. case 'jm':
  349. addLayer({
  350. id: 'jmBuildingLayer',
  351. title: 'jmBuildingLayer',
  352. type: 'scene',
  353. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/黄浦江沿岸精模/SceneServer',
  354. visible: isShow,
  355. opacity: 1,
  356. token: '',
  357. is_goto: false
  358. })
  359. break
  360. // 客运码头
  361. case 'kymt':
  362. addLayer({
  363. id: 'kymtLayer',
  364. title: 'kymtLayer',
  365. type: 'scene',
  366. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/客运码头/SceneServer',
  367. visible: isShow,
  368. opacity: 1,
  369. token: '',
  370. is_goto: false
  371. })
  372. break
  373. // 淤积预警
  374. case 'yjyj':
  375. addLayer({
  376. id: 'yjyjLayer',
  377. title: 'yjyjLayer',
  378. type: 'scene',
  379. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2023淤积/SceneServer',
  380. visible: isShow,
  381. opacity: opacity?opacity:1,
  382. token: '',
  383. is_goto: true
  384. })
  385. if(isShow){
  386. addLayer({
  387. id: 'dbsLayer',
  388. title: 'dbsLayer',
  389. type: 'scene',
  390. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer',
  391. visible: false,
  392. opacity: 1,
  393. token: '',
  394. is_goto: true
  395. })
  396. addLayer({
  397. id: 'dbsLayer',
  398. title: 'dbsLayer',
  399. type: 'scene',
  400. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer',
  401. visible: true,
  402. opacity: 0.4,
  403. token: '',
  404. is_goto: false
  405. })
  406. }else{
  407. addLayer({
  408. id: 'dbsLayer',
  409. title: 'dbsLayer',
  410. type: 'scene',
  411. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer',
  412. visible: false,
  413. opacity: 1,
  414. token: '',
  415. is_goto: true
  416. })
  417. addLayer({
  418. id: 'dbsLayer',
  419. title: 'dbsLayer',
  420. type: 'scene',
  421. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer',
  422. visible: true,
  423. opacity: 1,
  424. token: '',
  425. is_goto: false
  426. })
  427. }
  428. break
  429. // 疏浚前_22年陆家嘴弯道
  430. case '2022LjzBefore':
  431. addLayer({
  432. id: '2022LjzBefore',
  433. title: '2022LjzBefore',
  434. type: 'scene',
  435. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/疏浚前_22年陆家嘴弯道/SceneServer',
  436. visible: isShow,
  437. opacity: 1,
  438. token: '',
  439. is_goto: false
  440. })
  441. break
  442. // 疏浚后_22年陆家嘴弯道
  443. case '2022LjzAfter':
  444. addLayer({
  445. id: '2022LjzAfterLayer',
  446. title: '2022LjzAfterLayer',
  447. type: 'scene',
  448. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/疏浚后_22年陆家嘴弯道/SceneServer',
  449. visible: isShow,
  450. opacity: 1,
  451. token: '',
  452. is_goto: false
  453. })
  454. break
  455. // 危险品码头
  456. case 'wxpmt':
  457. addLayer({
  458. id: 'dangerPortLayer',
  459. title: 'dangerPortLayer',
  460. type: 'scene',
  461. url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/危险品码头/SceneServer',
  462. visible: isShow,
  463. opacity: opacity?opacity:1,
  464. token: '',
  465. elevationInfo: {
  466. "mode": "absolute-height",
  467. "offset": 1
  468. }
  469. })
  470. break
  471. }
  472. }