From 05affc703e81728cc58cc89c1815407ad4997dfe Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 07 Nov 2024 20:15:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/main'
---
src/store/router.js | 14 +
src/views/sub/components/scomponents/tool/exportScene.vue | 4
src/views/survey/components/box/fireSource.vue | 4
src/views/layout/components/scomponents/tool/exportScene.vue | 4
src/views/layout/components/scomponents/tool/location.vue | 5
src/assets/json/yqfw.json | 1
src/assets/json/line.json | 199 ++++++++++++++++++++++
src/views/layout/components/scomponents/toolList.vue | 6
src/router/index.js | 4
src/views/layout/index.vue | 44 +++-
src/hooks/initMap.js | 23 +-
src/views/layout/components/mainMenu.vue | 8
src/views/sub/components/scomponents/layersControl.vue | 11
src/views/sub/components/scomponents/tool/location.vue | 5
src/assets/json/qyfw.json | 1
src/views/sub/components/scomponents/baseMap.vue | 10
src/views/layout/components/scomponents/baseMap.vue | 10
src/views/layout/components/scomponents/layersControl.vue | 131 +++++++++++--
src/views/sub/components/scomponents/toolList.vue | 2
19 files changed, 396 insertions(+), 90 deletions(-)
diff --git a/src/assets/json/line.json b/src/assets/json/line.json
new file mode 100644
index 0000000..df3468b
--- /dev/null
+++ b/src/assets/json/line.json
@@ -0,0 +1,199 @@
+{
+ "type": "FeatureCollection",
+ "crs": {
+ "type": "name",
+ "properties": {
+ "name": "EPSG:4326"
+ }
+ },
+ "features": [
+ {
+ "type": "Feature",
+ "id": 57,
+ "geometry": {
+ "type": "LineString",
+ "coordinates": [
+ [
+ 115.10461040047922,
+ 27.281078877097464,
+ 0,
+ null
+ ],
+ [
+ 115.10464090315097,
+ 27.28107880221026,
+ 0,
+ null
+ ],
+ [
+ 115.10466508923437,
+ 27.281077627638659,
+ 0,
+ null
+ ],
+ [
+ 115.1046843544291,
+ 27.281077213815163,
+ 0,
+ null
+ ],
+ [
+ 115.10586493854272,
+ 27.281078948625922,
+ 0,
+ null
+ ],
+ [
+ 115.10589924840097,
+ 27.281077197506569,
+ 0,
+ null
+ ],
+ [
+ 115.1059320012201,
+ 27.281079347878013,
+ 0,
+ null
+ ],
+ [
+ 115.1059590684595,
+ 27.281076426788974,
+ 0,
+ null
+ ],
+ [
+ 115.10598853885008,
+ 27.281075498966288,
+ 0,
+ null
+ ],
+ [
+ 115.10602139104803,
+ 27.281072387748527,
+ 0,
+ null
+ ],
+ [
+ 115.10605008975703,
+ 27.281071041903218,
+ 0,
+ null
+ ],
+ [
+ 115.10608320942517,
+ 27.28106434617083,
+ 0,
+ null
+ ],
+ [
+ 115.10611179106,
+ 27.281060357311965,
+ 0,
+ null
+ ],
+ [
+ 115.10613870466824,
+ 27.28105824050715,
+ 0,
+ null
+ ],
+ [
+ 115.10616647306541,
+ 27.28105575599216,
+ 0,
+ null
+ ],
+ [
+ 115.10619853811008,
+ 27.281051685428043,
+ 0,
+ null
+ ],
+ [
+ 115.10622496278687,
+ 27.28104710901933,
+ 0,
+ null
+ ],
+ [
+ 115.10625207764062,
+ 27.281043898740862,
+ 0,
+ null
+ ],
+ [
+ 115.10628758471823,
+ 27.281040667205243,
+ 0,
+ null
+ ],
+ [
+ 115.10631463522355,
+ 27.281037078430725,
+ 0,
+ null
+ ],
+ [
+ 115.10634226500582,
+ 27.281035894381475,
+ 0,
+ null
+ ],
+ [
+ 115.10636907279104,
+ 27.281033291092918,
+ 0,
+ null
+ ],
+ [
+ 115.10639842822866,
+ 27.281028917062844,
+ 0,
+ null
+ ],
+ [
+ 115.10643098298807,
+ 27.281026367567595,
+ 0,
+ null
+ ],
+ [
+ 115.10645410440925,
+ 27.281025787644804,
+ 0,
+ null
+ ],
+ [
+ 115.10648229093607,
+ 27.281023714847549,
+ 0,
+ null
+ ],
+ [
+ 115.1065152373021,
+ 27.281022975986783,
+ 0,
+ null
+ ],
+ [
+ 115.106550028393,
+ 27.281020079022472,
+ 0,
+ null
+ ]
+ ]
+ },
+ "properties": {
+ "FID": 57,
+ "FID_": 0,
+ "Entity": "LWPolyline",
+ "Layer": "中压燃气",
+ "Color": 5,
+ "Linetype": "Continuous",
+ "Elevation": 0,
+ "LineWt": 25,
+ "RefName": " "
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/assets/json/qyfw.json b/src/assets/json/qyfw.json
new file mode 100644
index 0000000..7ee71da
--- /dev/null
+++ b/src/assets/json/qyfw.json
@@ -0,0 +1 @@
+{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","id":0,"geometry":{"type":"Polygon","coordinates":[[[115.10434358316422,27.289239134618413],[115.10433644478121,27.288394425961485],[115.10618925938729,27.288396806166475],[115.10618989228033,27.289064992726082],[115.1060092058683,27.289243893540572],[115.10434358316422,27.289239134618413]]]},"properties":{"FID":0,"Id":0,"name":"江西森钥新材料科技有限公司"}},{"type":"Feature","id":1,"geometry":{"type":"Polygon","coordinates":[[[115.10618308750384,27.287754488717439],[115.10618925938729,27.288396806166475],[115.10439182445339,27.288394497104719],[115.10433186684133,27.288318420975884],[115.10433662576338,27.287792560093578],[115.10438659444446,27.287764006561588],[115.10618308750384,27.287754488717439]]]},"properties":{"FID":1,"Id":0,"name":"江西利鑫环保再生资源有限公司"}},{"type":"Feature","id":2,"geometry":{"type":"Polygon","coordinates":[[[115.10365372045464,27.294652942750361],[115.10364420261055,27.293334721353062],[115.10374889889488,27.293239542912829],[115.10587137811206,27.293239542912829],[115.10601890469445,27.293291891054821],[115.10620926157492,27.293429899793296],[115.10616643127685,27.294662460594282],[115.10365372045464,27.294652942750361]]]},"properties":{"FID":2,"Id":0,"name":"江西东玕科技有限公司"}},{"type":"Feature","id":3,"geometry":{"type":"Polygon","coordinates":[[[115.10433554072858,27.287753448832859],[115.10432459520791,27.286752409587734],[115.1052478260782,27.286751933695541],[115.10525210910794,27.287740361797375],[115.10433554072858,27.287753448832859]]]},"properties":{"FID":3,"Id":0,"name":"江西迷斯婕生物科技有限公司"}},{"type":"Feature","id":4,"geometry":{"type":"Polygon","coordinates":[[[115.10619033058265,27.287743693042728],[115.10527468424436,27.287744486196345],[115.1052699253222,27.28674844381942],[115.10598804665392,27.286761292908864],[115.10617792764219,27.286915481981907],[115.10619220440822,27.286984010459037],[115.10619033058265,27.287743693042728]]]},"properties":{"FID":4,"Id":0,"name":"吉水县聚源堂天然香料油有限公司"}},{"type":"Feature","id":5,"geometry":{"type":"Polygon","coordinates":[[[115.10555331912792,27.283711656710693],[115.10575557331356,27.283882977903147],[115.10578888576754,27.2843130258222],[115.10589120259078,27.284941203527751],[115.10589120259078,27.285271948607601],[115.10595687571458,27.285318348097235],[115.1059644899899,27.28540210512466],[115.10259255579831,27.285403294855087],[115.102587598588,27.283847127357319],[115.10272441759582,27.283710308349441],[115.10555331912792,27.283711656710693]]]},"properties":{"FID":5,"Id":0,"name":"江西宏润香料有限公司"}},{"type":"Feature","id":6,"geometry":{"type":"Polygon","coordinates":[[[115.10271275823686,27.283572418584242],[115.10258736064179,27.283436075468614],[115.10258783653398,27.281382124728282],[115.10269253281831,27.281272669522139],[115.10380850003014,27.281272669522139],[115.10380493083869,27.283572418584242],[115.10271275823686,27.283572418584242]]]},"properties":{"FID":6,"Id":0,"name":"江西启晟化工有限公司"}},{"type":"Feature","id":7,"geometry":{"type":"Polygon","coordinates":[[[115.10555389416425,27.283570931421139],[115.10380493083881,27.283572418584242],[115.10380850003014,27.281272669522139],[115.10595927500447,27.281267359358253],[115.10611727121523,27.281436895954926],[115.10586409656423,27.282638024075993],[115.10579889933263,27.282930221887511],[115.10575567245758,27.28340341736623],[115.10555389416425,27.283570931421139]]]},"properties":{"FID":7,"Id":0,"name":"江西旭梅食品科技有限公司"}},{"type":"Feature","id":8,"geometry":{"type":"Polygon","coordinates":[[[115.10567366036821,27.281048324024027],[115.10567223269152,27.280448541219812],[115.1061785819935,27.280446637650982],[115.10617810610131,27.28105117937713],[115.10567366036821,27.281048324024027]]]},"properties":{"FID":8,"Id":0,"name":"江西赣吉化工实业有限公司"}},{"type":"Feature","id":9,"geometry":{"type":"Polygon","coordinates":[[[115.10357069273118,27.281043882363292],[115.10357842597932,27.279947545705056],[115.1061781061012,27.279958967117864],[115.1061785819935,27.280446637650982],[115.10567223269152,27.280448541219812],[115.10567366036832,27.281048324024027],[115.10357069273118,27.281043882363292]]]},"properties":{"FID":9,"Id":0,"name":"江西粤鹏环保高新技术开发有限公司"}},{"type":"Feature","id":10,"geometry":{"type":"Polygon","coordinates":[[[115.10237810687499,27.278558099108352],[115.1023824612887,27.280937940827926],[115.10225111504121,27.281055010309331],[115.10079452798652,27.281050846252697],[115.10080975653682,27.279467552899348],[115.10237810687499,27.278558099108352]]]},"properties":{"FID":10,"Id":0,"name":"江西高腾新材料有限公司"}},{"type":"Feature","id":11,"geometry":{"type":"Polygon","coordinates":[[[115.1025967317521,27.279286713862803],[115.10258642075451,27.278585129785426],[115.10273204376813,27.278363245046592],[115.1043415111925,27.278013147017248],[115.10433135882556,27.279286713862803],[115.1025967317521,27.279286713862803]]]},"properties":{"FID":11,"Id":0,"name":"江西腾龙源环保科技有限公司"}},{"type":"Feature","id":12,"geometry":{"type":"Polygon","coordinates":[[[115.10408171370818,27.273771837089612],[115.10107791881785,27.27542025331644],[115.10085603407913,27.27508950823659],[115.10165970496541,27.27462977654136],[115.1017339441488,27.274735424609958],[115.10177106374044,27.274751129052675],[115.10208459738556,27.274569885507901],[115.10162542089813,27.273839736000809],[115.10336914445224,27.272560532806949],[115.10409027976789,27.273714730025461],[115.10408171370818,27.273771837089612]]]},"properties":{"FID":12,"Id":0,"name":"吉安市高盛生物科技发展有限公司"}},{"type":"Feature","id":13,"geometry":{"type":"Polygon","coordinates":[[[115.09987224592612,27.273709579483977],[115.1010255706758,27.272872128182939],[115.10208459738556,27.274569885507901],[115.10177106374044,27.274751129052675],[115.1017339441488,27.274735424609958],[115.10165970496541,27.27462977654136],[115.10085603407913,27.27508950823659],[115.09987224592612,27.273709579483977]]]},"properties":{"FID":13,"Id":0,"name":"吉安迅达科技有限公司"}},{"type":"Feature","id":14,"geometry":{"type":"Polygon","coordinates":[[[115.10336914445224,27.272560532806949],[115.10162542089813,27.273839736000809],[115.1010255706758,27.272872128182939],[115.10137657587461,27.272606084613585],[115.10276729647444,27.271594912830437],[115.10336914445224,27.272560532806949]]]},"properties":{"FID":14,"Id":0,"name":"江西殷莱特化工有限公司"}},{"type":"Feature","id":15,"geometry":{"type":"Polygon","coordinates":[[[115.09968680164138,27.273503904823201],[115.09848833851652,27.272048769239802],[115.10004260244546,27.271068907197616],[115.10112192595784,27.272447852439711],[115.09968680164138,27.273503904823201]]]},"properties":{"FID":15,"Id":0,"name":"吉水金城新材料加工有限公司"}},{"type":"Feature","id":16,"geometry":{"type":"Polygon","coordinates":[[[115.10112192595795,27.272447852439711],[115.10019658043882,27.271265629699201],[115.10175950253438,27.270286699049393],[115.10260718551774,27.271359479044008],[115.10112192595795,27.272447852439711]]]},"properties":{"FID":16,"Id":0,"name":"江西赫信化学有限公司"}},{"type":"Feature","id":17,"geometry":{"type":"Polygon","coordinates":[[[115.10759346502846,27.273791883057356],[115.10694744136526,27.272617619050948],[115.10823235030864,27.272060825175402],[115.1083882050043,27.272083430054977],[115.1087165706233,27.273325508700111],[115.10759346502846,27.273791883057356]]]},"properties":{"FID":17,"Id":0,"name":"绿源污水处理厂"}}]}
\ No newline at end of file
diff --git a/src/assets/json/yqfw.json b/src/assets/json/yqfw.json
new file mode 100644
index 0000000..c1a9cb6
--- /dev/null
+++ b/src/assets/json/yqfw.json
@@ -0,0 +1 @@
+{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","id":1,"geometry":{"type":"Polygon","coordinates":[[[115.10365802600006,27.296649056000035],[115.10365776500009,27.296628367000039],[115.10365375100002,27.296222454000031],[115.10365354100009,27.296222456000066],[115.10364614000002,27.295473948000051],[115.1036379950001,27.294650274000048],[115.10363789500002,27.294513106000068],[115.10363775600001,27.294324430000074],[115.10363704300005,27.293351550000068],[115.10361784800011,27.29271994800007],[115.10361731400008,27.292142719000026],[115.10361631100011,27.291057846000058],[115.10361616200009,27.290897334000078],[115.10361577700007,27.290480939000076],[115.10376747700002,27.290480827000067],[115.10376747600003,27.29048064400007],[115.10376579600006,27.289678525000056],[115.10376534700004,27.289463893000061],[115.10377063700003,27.289247296000042],[115.10395248200007,27.289247162000038],[115.10395183100002,27.28918129300007],[115.10395066000001,27.289062907000073],[115.10394709800005,27.288702691000026],[115.10394504400006,27.288494962000073],[115.10392778500011,27.286749543000042],[115.10136996200004,27.286753644000044],[115.1013386190001,27.283577536000053],[115.09974306000004,27.283578677000037],[115.09917053800007,27.283579083000063],[115.09873620700012,27.283578514000055],[115.09873415300001,27.281245152000054],[115.0987308230001,27.281245742000067],[115.09873064500005,27.281043303000047],[115.09923738300006,27.281054163000078],[115.09973737100006,27.281053804000067],[115.10080638600004,27.281053031000056],[115.10080431100005,27.278743446000078],[115.10080406200007,27.278465703000052],[115.10080405100007,27.278453697000032],[115.10143086800008,27.278325042000063],[115.10196907000011,27.278214572000024],[115.1023608910001,27.27813414700006],[115.10237797500008,27.278130640000029],[115.10273747500003,27.278056847000073],[115.10275803600007,27.278052626000033],[115.10281853900005,27.27804020800005],[115.10293215100012,27.278016886000046],[115.10309802200004,27.27798283900006],[115.10313972200004,27.277974280000024],[115.10490518300003,27.277611873000069],[115.1051660280001,27.277558326000076],[115.10593080000001,27.277401328000053],[115.10604533700007,27.277377815000023],[115.10617924700011,27.27782318900006],[115.10618069000009,27.279347573000052],[115.10618208900007,27.280825655000058],[115.10618049300001,27.280856052000047],[115.10617980600011,27.280869136000035],[115.10615978900012,27.281250381000063],[115.10585756700004,27.282686498000032],[115.10582536100003,27.282853404000036],[115.10579882400009,27.283021106000035],[115.1057779790001,27.28318944800003],[115.10576284700005,27.283358276000058],[115.10575235600004,27.283884993000072],[115.10576143800006,27.284063648000028],[115.10577690500008,27.284241953000048],[115.10579874300004,27.284419725000078],[115.10582692800006,27.28459678300004],[115.10612941200009,27.286301095000056],[115.10613196100007,27.28632854500006],[115.10618787100009,27.286930579000057],[115.10618985000008,27.289019869000072],[115.10618989200009,27.289064993000068],[115.1061904390001,27.289642575000073],[115.10619071700012,27.289935975000049],[115.1061892140001,27.28993594700006],[115.1061901060001,27.290862898000057],[115.10619180000003,27.292621870000062],[115.10619258200006,27.293434095000066],[115.10619271000007,27.293566878000036],[115.10619452700007,27.295452454000042],[115.10619596000004,27.296939162000058],[115.10619891500005,27.297182842000041],[115.10594368900001,27.297183038000071],[115.10574789200007,27.297183189000066],[115.10557853600005,27.297180065000077],[115.1054094860001,27.297170440000059],[115.10524105600007,27.297154333000037],[115.10507355600009,27.297131772000057],[115.10490729700007,27.297102799000072],[115.10474258600004,27.297067468000023],[115.1045797270001,27.297025844000075],[115.10441902200012,27.296978004000039],[115.10426076700003,27.296924037000053],[115.10410525500004,27.296864043000028],[115.10395277400005,27.29679813100006],[115.10380360600004,27.296726425000031],[115.10365802600006,27.296649056000035]]]},"properties":{"OBJECTID":1,"MJ":823262.44172500004,"Shape_Length":0.053665720487927053,"Shape_Area":7.5044476659468943e-05}},{"type":"Feature","id":2,"geometry":{"type":"Polygon","coordinates":[[[115.09207716700007,27.271114555000054],[115.09209235100002,27.271098952000045],[115.09226971800001,27.270916684000042],[115.09467658500012,27.268443241000057],[115.09471025700009,27.268408636000061],[115.09479860200008,27.268318800000031],[115.09488731500005,27.268385544000068],[115.09627829600004,27.269719727000052],[115.09709618400007,27.270700950000048],[115.09834078100005,27.272148170000037],[115.10005018800007,27.271067370000026],[115.09986505500001,27.270830386000057],[115.09965144100011,27.27055671200003],[115.09956224500002,27.270442923000076],[115.10002292400009,27.270155335000027],[115.10025718300005,27.270012224000027],[115.10033286200007,27.269964324000057],[115.10038478100012,27.269932703000052],[115.10050989500007,27.269855617000076],[115.1006315410001,27.269777616000056],[115.10112449500002,27.269464868000057],[115.10116649400004,27.269514699000069],[115.10124141600011,27.269606010000075],[115.10125545000005,27.269623932000059],[115.10127760300009,27.269650547000026],[115.10171212700004,27.270199163000029],[115.10174238100001,27.270237396000027],[115.10178008700007,27.270286508000027],[115.10201330100006,27.270585269000037],[115.10206968500006,27.270658372000071],[115.10220937700001,27.270839141000067],[115.10224083600008,27.27087894400006],[115.10261014300011,27.271359640000071],[115.10261210600004,27.271363140000062],[115.10261257100001,27.271362800000077],[115.10277357400003,27.271594575000051],[115.1030422980001,27.272025620000079],[115.10304326000005,27.27202875100005],[115.10309932900009,27.272119795000037],[115.10315892400001,27.272215620000054],[115.10319632900007,27.272275759000024],[115.10355051800002,27.272840683000027],[115.1035729140001,27.272877089000076],[115.10359975000006,27.272920875000068],[115.10380431600004,27.273245475000067],[115.10383201100001,27.273289684000076],[115.1040971650001,27.273717669000064],[115.10409947100004,27.273721205000072],[115.10419686800003,27.273871690000078],[115.10422057400001,27.273908317000064],[115.10399387700011,27.27402031400004],[115.10399207000012,27.274021305000076],[115.10398816200006,27.274020392000068],[115.10318520700002,27.274460600000054],[115.10278725400008,27.274678769000047],[115.10258156600003,27.274791533000041],[115.10218512800009,27.275008868000043],[115.10134354100001,27.275470238000025],[115.10102001600001,27.27562037000007],[115.10099954900011,27.275591515000031],[115.10094369500007,27.275623492000079],[115.10093423000001,27.275628911000069],[115.10037571600003,27.275989344000038],[115.09996523100006,27.276254245000075],[115.09856978200003,27.27715476000003],[115.0985690440001,27.277155242000049],[115.09842911900012,27.27724640100007],[115.09835932800002,27.277138475000072],[115.09832419600002,27.277089667000041],[115.09828386700008,27.277033639000024],[115.09820290500011,27.276932133000059],[115.09811662600009,27.276834186000031],[115.09802522700011,27.27674002200007],[115.09799193000003,27.276708850000034],[115.09792891300003,27.276649853000038],[115.09783819800009,27.276568877000045],[115.09741155900008,27.276188038000043],[115.09681631100011,27.275656685000058],[115.0964062590001,27.275290644000052],[115.09456880300002,27.273650356000076],[115.09413908100009,27.27326673500005],[115.09342089800009,27.272625589000029],[115.09322397000005,27.272449782000024],[115.09255174400005,27.271849651000025],[115.09252413600007,27.271824237000033],[115.09246847500003,27.271769753000058],[115.09207716700007,27.271114555000054]]]},"properties":{"OBJECTID":2,"MJ":571119.26753499999,"Shape_Length":0.034800068450911062,"Shape_Area":5.2054563738287781e-05}}]}
\ No newline at end of file
diff --git a/src/hooks/initMap.js b/src/hooks/initMap.js
index 2675406..3d10d98 100644
--- a/src/hooks/initMap.js
+++ b/src/hooks/initMap.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-25 15:09:55
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-04 18:08:12
+ * @LastEditTime: 2024-11-07 19:24:27
* @FilePath: \bigScreen\src\hooks\initMap.js
* @Description:
*
@@ -11,11 +11,10 @@
let viewer = null
const { VITE_APP_BASE } = import.meta.env
import { useMap } from 'store/map'
-import { nextTick } from 'vue'
+import { nextTick, onMounted, onUnmounted } from 'vue'
export function readyViewer () {
const Cesium = DC.getLib('Cesium')
- const { appContext } = getCurrentInstance()
const store = useMap()
function initMap () {
@@ -28,10 +27,9 @@
viewer = new DC.Viewer('viewer-container')
- const global = appContext.config.globalProperties
- global.$viewer = viewer
+ window.$viewer = viewer
- global.$viewer.zoomToPosition(new DC.Position(
+ window.$viewer.zoomToPosition(new DC.Position(
115.1048036679409,
27.276835758787513,
4000,
@@ -39,15 +37,22 @@
-90,
0
), () => {
-
-
store.setLoadMap(true)
})
})
})
}
- initMap()
+ onMounted(() => {
+ initMap()
+ })
+
+ onUnmounted(() => {
+ viewer.destroy()
+ viewer = null
+ delete window.$viewer
+ store.setLoadMap(false)
+ })
return {
diff --git a/src/router/index.js b/src/router/index.js
index a7660ae..c969f66 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-25 16:35:31
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-06 10:35:00
+ * @LastEditTime: 2024-11-07 15:48:05
* @FilePath: \bigScreen\src\router\index.js
* @Description:
*
@@ -76,7 +76,7 @@
{
path: 'sub',
name: 'sub',
- component: () => import('@/views/sub/index.vue'),
+ component: defineAsyncComponent(() => import('@/views/sub/index.vue')),
redirect: '/layout/sub/companyInfo',
children: [
{
diff --git a/src/store/router.js b/src/store/router.js
index 3394630..3778575 100644
--- a/src/store/router.js
+++ b/src/store/router.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-11-06 10:46:45
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-06 10:56:14
+ * @LastEditTime: 2024-11-07 18:58:32
* @FilePath: \bigScreen\src\store\router.js
* @Description:
*
@@ -14,7 +14,8 @@
export const useRouterStore = defineStore('useRouterStore', {
// 存储状态的地方,相当于 Vuex 的 state
state: () => ({
- loadSub: false
+ loadSub: false,
+ loadSingle: false,
}),
// 相当于 Vuex 的 getters,用于计算状态
@@ -27,6 +28,10 @@
setLoadSub (flag) {
this.loadSub = flag
},
+
+ setLoadSingle (flag) {
+ this.loadSingle = flag
+ },
},
persist: {
@@ -37,6 +42,11 @@
paths: ['loadSub'],
storage: localStorage,
},
+ {
+ key: 'loadSingle',
+ paths: ['loadSingle'],
+ storage: localStorage,
+ },
]
}
})
\ No newline at end of file
diff --git a/src/views/layout/components/mainMenu.vue b/src/views/layout/components/mainMenu.vue
index 93cfe9f..238d496 100644
--- a/src/views/layout/components/mainMenu.vue
+++ b/src/views/layout/components/mainMenu.vue
@@ -12,6 +12,8 @@
import { useRouter, useRoute } from 'vue-router'
import { Search } from '@element-plus/icons-vue'
import { getTime } from '@/utils/getTime.js'
+import { useRouterStore } from 'store/router'
+const store = useRouterStore()
let router = useRouter()
let currentUrl = ref('statistics')
@@ -49,6 +51,12 @@
if (params.path) {
if (router.currentRoute.value.path == params.path) return
+
+ if (params.path == '/layout/supplies' || params.path == '/layout/rt') {
+ store.setLoadSingle(true)
+ } else {
+ store.setLoadSingle(false)
+ }
router.push(params.path)
} else {
params.childrenFlag = !params.childrenFlag
diff --git a/src/views/layout/components/scomponents/baseMap.vue b/src/views/layout/components/scomponents/baseMap.vue
index 3d8cb0d..3006ffe 100644
--- a/src/views/layout/components/scomponents/baseMap.vue
+++ b/src/views/layout/components/scomponents/baseMap.vue
@@ -257,11 +257,11 @@
keyExistBaseMap.forEach((item) => {
let curLayer = {
key: item.key,
- mapLayer: global.$viewer?.imageryLayers.addImageryProvider(item.layer),
+ mapLayer: window.$viewer?.imageryLayers.addImageryProvider(item.layer),
}
curLayer.mapLayer.show = true
- global.$viewer?.imageryLayers.lowerToBottom(curLayer.mapLayer)
+ window.$viewer?.imageryLayers.lowerToBottom(curLayer.mapLayer)
globalBaseMapLayers.push(curLayer)
})
@@ -269,7 +269,7 @@
keyNoExistBaseMap.length &&
keyNoExistBaseMap.forEach((item) => {
item.mapLayer.show = true
- global.$viewer?.imageryLayers.lowerToBottom(item.mapLayer)
+ window.$viewer?.imageryLayers.lowerToBottom(item.mapLayer)
})
curMode.value = mode
@@ -284,9 +284,9 @@
let terrain = DC.TerrainFactory.createTerrain(DC.TerrainType.XYZ, {
url: 'https://data.marsgis.cn/terrain'
})
- global.$viewer.setTerrain(terrain)
+ window.$viewer.setTerrain(terrain)
} else {
- global.$viewer.setTerrain()
+ window.$viewer.setTerrain()
}
}
</script>
diff --git a/src/views/layout/components/scomponents/layersControl.vue b/src/views/layout/components/scomponents/layersControl.vue
index 03da5ab..90afd1f 100644
--- a/src/views/layout/components/scomponents/layersControl.vue
+++ b/src/views/layout/components/scomponents/layersControl.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-31 10:47:29
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-05 18:36:54
+ * @LastEditTime: 2024-11-07 17:17:21
* @FilePath: \bigScreen\src\views\layout\components\scomponents\layersControl.vue
* @Description:
*
@@ -49,10 +49,11 @@
import { getPage } from '@/api/indParkInfo'
import { getList } from "@/api/space/space"
import { getList as getRiskList } from "@/api/riskSource/riskSource"
+import yqfw from "@/assets/json/yqfw"
+import pipeLine from "@/assets/json/line"
+import { onUnmounted } from 'vue'
const { VITE_APP_BASE } = import.meta.env
-import { getViewer } from 'utils/getViewer'
-const globalViewer = getViewer()
const treeRef = ref(null)
@@ -191,6 +192,24 @@
showParams: 'category',
layerName: 'fxy'
},
+
+ {
+ id: '5',
+ label: '园区范围',
+ type: 'layer',
+ subType: 'geojsonWall',
+ layerName: 'yqfw',
+ source: yqfw
+ },
+
+ {
+ id: '6',
+ label: '地下管网',
+ type: 'layer',
+ subType: 'geojsonPipe',
+ layerName: 'dxgw',
+ source: pipeLine
+ },
]
const defaultProps = {
@@ -235,7 +254,7 @@
let addTileLayers = {}
let tileLayers = new DC.TilesetLayer('tileLayers')
-globalViewer.addLayer(tileLayers)
+window.$viewer.addLayer(tileLayers)
const handleCheckChange = (data, options) => {
collectedNodes.value = []
@@ -248,9 +267,11 @@
addTileLayers[item.layerName] = new DC.Tileset(
item.url,
{
+ maximumMemoryUsage: 128,
+ progressiveResolutionHeightFraction: 0.5,
+ dynamicScreenSpaceErrorDensity: 0.1,
cullWithChildrenBounds: false,
maximumScreenSpaceError: 256,
- maximumMemoryUsage: 1024,
skipLevelOfDetail: true,
preferLeaves: true
})
@@ -260,50 +281,112 @@
addTileLayers[item.layerName].show = true
}
- console.log(addTileLayers[item.layerName], 11111111)
-
- globalViewer.flyTo(addTileLayers[item.layerName])
+ window.$viewer.flyTo(addTileLayers[item.layerName])
} else if (item.subType == 'labelPoint') {
if (!addTileLayers[item.layerName]) {
addTileLayers[item.layerName] = new DC.HtmlLayer(addTileLayers[item.layerName])
- globalViewer.addLayer(addTileLayers[item.layerName])
- }
+ window.$viewer.addLayer(addTileLayers[item.layerName])
- item.method(item.params).then(res => {
- let data = res.data.data.records
+ item.method(item.params).then(res => {
+ let data = res.data.data.records
- data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
- let divIcon = new DC.DivIcon(
- new DC.Position(i.lng, i.lat, 0),
- `<div class="public-map-popup">
+ data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
+ let divIcon = new DC.DivIcon(
+ new DC.Position(i.lng, i.lat, 0),
+ `<div class="public-map-popup">
<div class="marsBlueGradientPnl">
<div>${i[item.showParams] || i.name}</div>
</div>
</div>`
+ )
+
+ addTileLayers[item.layerName].addOverlay(divIcon)
+ })
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
+ } else if (item.subType == 'geojsonWall') {
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
+
+ item.source.features.forEach(i => {
+ let wall = new DC.Wall(
+ i.geometry.coordinates[0].map(d => [...d, 200].join(',')).join(';')
)
- addTileLayers[item.layerName].addOverlay(divIcon)
+ wall.setStyle({
+ material: new DC.WallTrailMaterialProperty({
+ color: DC.Color.GREEN,
+ speed: 2
+ })
+ })
+ addTileLayers[item.layerName].addOverlay(wall)
})
- })
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
+ } else if (item.subType == 'geojsonPipe') {
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
+
+ function computeCircle (radius) {
+ var positions = []
+ for (var i = 0; i < 1080; i++) {
+ var radians = DC.Math.toRadians(i)
+ positions.push({
+ x: radius * Math.cos(radians),
+ y: radius * Math.sin(radians),
+ })
+ }
+ return positions
+ }
+
+ item.source.features.forEach(i => {
+ let polylineVolume = new DC.PolylineVolume(
+ i.geometry.coordinates.map(d => [d[0], d[1], 0.0].join(',')).join(';'),
+ computeCircle(0.3)
+ )
+
+ polylineVolume.setStyle({
+ material: DC.Color.RED
+ })
+ addTileLayers[item.layerName].addOverlay(polylineVolume)
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
}
} else {
if (addTileLayers[item.layerName]) {
if (item.subType == '3Dtile') {
addTileLayers[item.layerName].show = false
} else if (item.subType == 'labelPoint') {
- globalViewer.removeLayer(addTileLayers[item.layerName])
+ addTileLayers[item.layerName].show = false
+ } else if (item.subType == 'geojsonWall') {
+ addTileLayers[item.layerName].show = false
+ } else if (item.subType == 'geojsonPipe') {
+ addTileLayers[item.layerName].show = false
}
-
- delete addTileLayers[item.layerName]
}
}
})
}
onMounted(() => {
- // handleCheckChange(data.filter(i => i.id == '1'), {
- // checkedKeys: ['1']
- // })
+ handleCheckChange(data.filter(i => i.id == '1'), {
+ checkedKeys: ['1']
+ })
+})
+
+onUnmounted(() => {
+ tileLayers && window.$viewer.removeLayer(tileLayers)
+ let arr = Object.keys(addTileLayers)
+ arr.forEach(i => {
+ addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
+ })
})
</script>
diff --git a/src/views/layout/components/scomponents/tool/exportScene.vue b/src/views/layout/components/scomponents/tool/exportScene.vue
index 68bd080..f139255 100644
--- a/src/views/layout/components/scomponents/tool/exportScene.vue
+++ b/src/views/layout/components/scomponents/tool/exportScene.vue
@@ -2,9 +2,7 @@
</template>
<script setup>
-import { getViewer } from 'utils/getViewer'
-const globalViewer = getViewer()
-globalViewer.exportScene()
+window.$viewer.exportScene()
const emit = defineEmits(['closeChild'])
emit('closeChild')
</script>
diff --git a/src/views/layout/components/scomponents/tool/location.vue b/src/views/layout/components/scomponents/tool/location.vue
index 6642fd8..a531121 100644
--- a/src/views/layout/components/scomponents/tool/location.vue
+++ b/src/views/layout/components/scomponents/tool/location.vue
@@ -46,11 +46,8 @@
const latitude = ref(0)
const height = ref(0)
-import { getViewer } from 'utils/getViewer'
-const globalViewer = getViewer()
-
const flyTo = () => {
- globalViewer.flyToPosition(new DC.Position(longitude.value, latitude.value, height.value, 0, -90, 0), () => { }, 3)
+ window.$viewer.flyToPosition(new DC.Position(longitude.value, latitude.value, height.value, 0, -90, 0), () => { }, 3)
}
</script>
diff --git a/src/views/layout/components/scomponents/toolList.vue b/src/views/layout/components/scomponents/toolList.vue
index 1ad59ca..d0de80f 100644
--- a/src/views/layout/components/scomponents/toolList.vue
+++ b/src/views/layout/components/scomponents/toolList.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-29 14:20:49
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-29 17:21:51
+ * @LastEditTime: 2024-11-07 16:23:56
* @FilePath: \bigScreen\src\views\layout\components\scomponents\toolList.vue
* @Description:
*
@@ -10,7 +10,7 @@
-->
<template>
<ul v-show="moreToolShow" class="tool-list-box">
- <li @click="showComponent(item.component)" v-for="item, index in components" :key="index">
+ <li @click="showComponent(item.component)" v-for="(item, index) in components" :key="index">
<i :class="item.icon"></i> {{ item.title }}
</li>
</ul>
@@ -28,10 +28,8 @@
})
import location from './tool/location.vue'
import exportScene from './tool/exportScene.vue'
-import { getViewer } from 'utils/getViewer'
import component from 'element-plus/es/components/tree-select/src/tree-select-option.mjs'
const emit = defineEmits(['close'])
-const globalViewer = getViewer()
let currentComponent = shallowRef(null)
const components = [
diff --git a/src/views/layout/index.vue b/src/views/layout/index.vue
index e9ffbcb..ddcde80 100644
--- a/src/views/layout/index.vue
+++ b/src/views/layout/index.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2022-08-18 16:18:24
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-06 11:05:46
+ * @LastEditTime: 2024-11-07 19:24:45
* @FilePath: \bigScreen\src\views\layout\index.vue
* @Description:
*
@@ -10,11 +10,35 @@
-->
<template>
<div class="wrapper">
- <map-container ref="MapContainer">
+ <div v-if="showSinglePage" class="main-content" id="MainContent">
+ <div class="w100 h100">
+ <div class="main-header">
+ <div class="title">吉水化工园区“一园一策一图”VR平台</div>
+
+ <div class="login-out" @click="signOut">
+ <img :src="loginOutBg" class="img" />
+ <span>退出</span>
+ </div>
+ </div>
+
+ <div class="main-container">
+ <!-- 地图区域 -->
+ <router-view></router-view>
+ </div>
+
+ <main-menu></main-menu>
+ </div>
+ </div>
+
+ <map-container v-if="!showSinglePage" ref="MapContainer">
<template #content>
<div v-if="showContent" :class="[showSubLayout ? 'main-content-sub' : 'main-content']" id="MainContent">
<main-search></main-search>
<main-tool></main-tool>
+
+ <div v-if="showSubLayout" class="w100 h100">
+ <router-view></router-view>
+ </div>
<div v-if="!showSubLayout" class="w100 h100">
<div class="main-header">
@@ -32,10 +56,6 @@
</div>
<main-menu></main-menu>
- </div>
-
- <div v-if="showSubLayout" class="w100 h100">
- <router-view></router-view>
</div>
</div>
</template>
@@ -60,20 +80,18 @@
const storeRouter = useRouterStore()
const showContent = ref(false)
const showSubLayout = ref(false)
-
+const showSinglePage = ref(false)
// 监听createB的变化
watch(
[
() => store.loadMap,
() => storeRouter.loadSub,
+ () => storeRouter.loadSingle,
],
- ([newLoadMap, newLoadSub]) => {
- if (newLoadMap) {
- showContent.value = true
- }
-
- console.log(newLoadSub, 5555)
+ ([newLoadMap, newLoadSub, newLoadSingle]) => {
+ showContent.value = newLoadMap
showSubLayout.value = newLoadSub
+ showSinglePage.value = newLoadSingle
},
{ immediate: true } // 设置immediate为true以便在组件挂载时立即检查createB的值
)
diff --git a/src/views/sub/components/scomponents/baseMap.vue b/src/views/sub/components/scomponents/baseMap.vue
index 3d8cb0d..3006ffe 100644
--- a/src/views/sub/components/scomponents/baseMap.vue
+++ b/src/views/sub/components/scomponents/baseMap.vue
@@ -257,11 +257,11 @@
keyExistBaseMap.forEach((item) => {
let curLayer = {
key: item.key,
- mapLayer: global.$viewer?.imageryLayers.addImageryProvider(item.layer),
+ mapLayer: window.$viewer?.imageryLayers.addImageryProvider(item.layer),
}
curLayer.mapLayer.show = true
- global.$viewer?.imageryLayers.lowerToBottom(curLayer.mapLayer)
+ window.$viewer?.imageryLayers.lowerToBottom(curLayer.mapLayer)
globalBaseMapLayers.push(curLayer)
})
@@ -269,7 +269,7 @@
keyNoExistBaseMap.length &&
keyNoExistBaseMap.forEach((item) => {
item.mapLayer.show = true
- global.$viewer?.imageryLayers.lowerToBottom(item.mapLayer)
+ window.$viewer?.imageryLayers.lowerToBottom(item.mapLayer)
})
curMode.value = mode
@@ -284,9 +284,9 @@
let terrain = DC.TerrainFactory.createTerrain(DC.TerrainType.XYZ, {
url: 'https://data.marsgis.cn/terrain'
})
- global.$viewer.setTerrain(terrain)
+ window.$viewer.setTerrain(terrain)
} else {
- global.$viewer.setTerrain()
+ window.$viewer.setTerrain()
}
}
</script>
diff --git a/src/views/sub/components/scomponents/layersControl.vue b/src/views/sub/components/scomponents/layersControl.vue
index 0826c86..0e2e2ca 100644
--- a/src/views/sub/components/scomponents/layersControl.vue
+++ b/src/views/sub/components/scomponents/layersControl.vue
@@ -51,9 +51,6 @@
import { getList as getRiskList } from "@/api/riskSource/riskSource"
const { VITE_APP_BASE } = import.meta.env
-import { getViewer } from 'utils/getViewer'
-const globalViewer = getViewer()
-
const treeRef = ref(null)
const treeProps = {
@@ -235,7 +232,7 @@
let addTileLayers = {}
let tileLayers = new DC.TilesetLayer('tileLayers')
-globalViewer.addLayer(tileLayers)
+window.$viewer.addLayer(tileLayers)
const handleCheckChange = (data, options) => {
collectedNodes.value = []
@@ -262,11 +259,11 @@
console.log(addTileLayers[item.layerName], 11111111)
- globalViewer.flyTo(addTileLayers[item.layerName])
+ window.$viewer.flyTo(addTileLayers[item.layerName])
} else if (item.subType == 'labelPoint') {
if (!addTileLayers[item.layerName]) {
addTileLayers[item.layerName] = new DC.HtmlLayer(addTileLayers[item.layerName])
- globalViewer.addLayer(addTileLayers[item.layerName])
+ window.$viewer.addLayer(addTileLayers[item.layerName])
}
item.method(item.params).then(res => {
@@ -291,7 +288,7 @@
if (item.subType == '3Dtile') {
addTileLayers[item.layerName].show = false
} else if (item.subType == 'labelPoint') {
- globalViewer.removeLayer(addTileLayers[item.layerName])
+ window.$viewer.removeLayer(addTileLayers[item.layerName])
}
delete addTileLayers[item.layerName]
diff --git a/src/views/sub/components/scomponents/tool/exportScene.vue b/src/views/sub/components/scomponents/tool/exportScene.vue
index 68bd080..f139255 100644
--- a/src/views/sub/components/scomponents/tool/exportScene.vue
+++ b/src/views/sub/components/scomponents/tool/exportScene.vue
@@ -2,9 +2,7 @@
</template>
<script setup>
-import { getViewer } from 'utils/getViewer'
-const globalViewer = getViewer()
-globalViewer.exportScene()
+window.$viewer.exportScene()
const emit = defineEmits(['closeChild'])
emit('closeChild')
</script>
diff --git a/src/views/sub/components/scomponents/tool/location.vue b/src/views/sub/components/scomponents/tool/location.vue
index 6642fd8..a531121 100644
--- a/src/views/sub/components/scomponents/tool/location.vue
+++ b/src/views/sub/components/scomponents/tool/location.vue
@@ -46,11 +46,8 @@
const latitude = ref(0)
const height = ref(0)
-import { getViewer } from 'utils/getViewer'
-const globalViewer = getViewer()
-
const flyTo = () => {
- globalViewer.flyToPosition(new DC.Position(longitude.value, latitude.value, height.value, 0, -90, 0), () => { }, 3)
+ window.$viewer.flyToPosition(new DC.Position(longitude.value, latitude.value, height.value, 0, -90, 0), () => { }, 3)
}
</script>
diff --git a/src/views/sub/components/scomponents/toolList.vue b/src/views/sub/components/scomponents/toolList.vue
index 1ad59ca..82496ad 100644
--- a/src/views/sub/components/scomponents/toolList.vue
+++ b/src/views/sub/components/scomponents/toolList.vue
@@ -28,10 +28,8 @@
})
import location from './tool/location.vue'
import exportScene from './tool/exportScene.vue'
-import { getViewer } from 'utils/getViewer'
import component from 'element-plus/es/components/tree-select/src/tree-select-option.mjs'
const emit = defineEmits(['close'])
-const globalViewer = getViewer()
let currentComponent = shallowRef(null)
const components = [
diff --git a/src/views/survey/components/box/fireSource.vue b/src/views/survey/components/box/fireSource.vue
index fc0cb66..dcfe864 100644
--- a/src/views/survey/components/box/fireSource.vue
+++ b/src/views/survey/components/box/fireSource.vue
@@ -70,7 +70,7 @@
})
// 获取详情
-function getData() {
+function getData () {
getDetail().then(res => {
state.parkInfo = res.data.data
parkInfoList.forEach(item => {
@@ -84,8 +84,6 @@
console.log(err)
})
}
-
-
</script>
<template>
--
Gitblit v1.9.3