Browse Source

no message

DESKTOP-GBVU60Q\dell 2 years ago
parent
commit
7225dbb0b3

+ 3142 - 0
public/datafiles/fanweixian2.json

@@ -0,0 +1,3142 @@
+{
+  "type" : "FeatureCollection",
+  "features" : [
+    {
+      "type" : "Feature",
+      "id" : 1,
+      "geometry" : {
+        "type" : "LineString",
+        "coordinates" : [
+          [
+            117.47336308200011,
+            36.352529570000058
+          ],
+          [
+            117.47336308500007,
+            36.352528874000029
+          ],
+          [
+            117.47339541500003,
+            36.352528954000036
+          ],
+          [
+            117.47384343100009,
+            36.352530056000035
+          ],
+          [
+            117.47384294400001,
+            36.352520489000028
+          ],
+          [
+            117.47395964800012,
+            36.352518281000073
+          ],
+          [
+            117.47395441800006,
+            36.352136155000039
+          ],
+          [
+            117.47394918900011,
+            36.351754028000073
+          ],
+          [
+            117.47394749300008,
+            36.351630140000054
+          ],
+          [
+            117.47394740700008,
+            36.351623891000031
+          ],
+          [
+            117.47461353600011,
+            36.351574719000041
+          ],
+          [
+            117.47463257400011,
+            36.351573313000074
+          ],
+          [
+            117.47465221000004,
+            36.351572092000026
+          ],
+          [
+            117.47469385300008,
+            36.351569501000029
+          ],
+          [
+            117.47472376500002,
+            36.351567640000042
+          ],
+          [
+            117.47507317100008,
+            36.35154590500008
+          ],
+          [
+            117.47514949600009,
+            36.351541157000042
+          ],
+          [
+            117.47542164200001,
+            36.351524227000027
+          ],
+          [
+            117.47542140000007,
+            36.351507294000044
+          ],
+          [
+            117.4754207520001,
+            36.35146194400005
+          ],
+          [
+            117.47545306600011,
+            36.351434404000031
+          ],
+          [
+            117.4755319620001,
+            36.351425708000079
+          ],
+          [
+            117.47557390100008,
+            36.35141486100008
+          ],
+          [
+            117.47590710500003,
+            36.35136921700007
+          ],
+          [
+            117.47597634200008,
+            36.351367010000047
+          ],
+          [
+            117.47600454000008,
+            36.351363311000057
+          ],
+          [
+            117.47613873100011,
+            36.351341808000029
+          ],
+          [
+            117.47677775300008,
+            36.351257174000068
+          ],
+          [
+            117.47717299700003,
+            36.351208103000033
+          ],
+          [
+            117.47756824200007,
+            36.351159032000055
+          ],
+          [
+            117.47801430600009,
+            36.351101570000026
+          ],
+          [
+            117.47801842600006,
+            36.35109736000004
+          ],
+          [
+            117.47801879500003,
+            36.351095281000028
+          ],
+          [
+            117.47801355500008,
+            36.35107780800007
+          ],
+          [
+            117.47790372600002,
+            36.350758370000051
+          ],
+          [
+            117.47779389600009,
+            36.350438932000031
+          ],
+          [
+            117.47778569900004,
+            36.350415092000048
+          ],
+          [
+            117.47777401600001,
+            36.350381111000047
+          ],
+          [
+            117.47756529200001,
+            36.34977402800007
+          ],
+          [
+            117.47753655500003,
+            36.349689827000077
+          ],
+          [
+            117.47753337200004,
+            36.349680500000034
+          ],
+          [
+            117.47752370000001,
+            36.349652160000062
+          ],
+          [
+            117.47751752800002,
+            36.349634076000029
+          ],
+          [
+            117.47734132700009,
+            36.349117791000026
+          ],
+          [
+            117.47716512800002,
+            36.348601505000033
+          ],
+          [
+            117.47710428300002,
+            36.348373135000031
+          ],
+          [
+            117.47707709800011,
+            36.348245120000058
+          ],
+          [
+            117.47706911200009,
+            36.34820751400008
+          ],
+          [
+            117.47706337900001,
+            36.348180521000074
+          ],
+          [
+            117.47699304700006,
+            36.34784932000008
+          ],
+          [
+            117.47698611700002,
+            36.347816685000055
+          ],
+          [
+            117.47700193900005,
+            36.34781640500006
+          ],
+          [
+            117.47705876700002,
+            36.347815397000033
+          ],
+          [
+            117.47765875700009,
+            36.347804753000048
+          ],
+          [
+            117.47825874800003,
+            36.347794106000038
+          ],
+          [
+            117.4788587380001,
+            36.347783456000059
+          ],
+          [
+            117.47888711400003,
+            36.347782952000045
+          ],
+          [
+            117.47892456300008,
+            36.34778228700003
+          ],
+          [
+            117.47892675500009,
+            36.347782289000065
+          ],
+          [
+            117.47893486700002,
+            36.347794467000028
+          ],
+          [
+            117.47893919100011,
+            36.347808729000064
+          ],
+          [
+            117.47895124500008,
+            36.347830516000045
+          ],
+          [
+            117.47896611500005,
+            36.347843221000062
+          ],
+          [
+            117.4789926630001,
+            36.347846691000029
+          ],
+          [
+            117.47903687400003,
+            36.347846514000025
+          ],
+          [
+            117.47920190500008,
+            36.347842276000051
+          ],
+          [
+            117.47934051700008,
+            36.34783870900003
+          ],
+          [
+            117.47934242100007,
+            36.347251976000052
+          ],
+          [
+            117.47964942300007,
+            36.347251697000047
+          ],
+          [
+            117.48010845400006,
+            36.347251278000044
+          ],
+          [
+            117.48012104000009,
+            36.347251266000058
+          ],
+          [
+            117.48015595000004,
+            36.347251235000044
+          ],
+          [
+            117.4801631360001,
+            36.347251229000051
+          ],
+          [
+            117.48019089000002,
+            36.347251203000042
+          ],
+          [
+            117.48039008000001,
+            36.347251021000034
+          ],
+          [
+            117.48043647200006,
+            36.346703091000052
+          ],
+          [
+            117.48048286300002,
+            36.34615516100007
+          ],
+          [
+            117.48052925400009,
+            36.345607231000031
+          ],
+          [
+            117.48057780700003,
+            36.345033760000035
+          ],
+          [
+            117.48062635800011,
+            36.344460290000029
+          ],
+          [
+            117.48067491100005,
+            36.343886818000044
+          ],
+          [
+            117.48072346100003,
+            36.343313347000048
+          ],
+          [
+            117.48077201000001,
+            36.342739876000053
+          ],
+          [
+            117.4808205600001,
+            36.342166405000057
+          ],
+          [
+            117.48133297300001,
+            36.341725729000075
+          ],
+          [
+            117.48184538100008,
+            36.341285053000036
+          ],
+          [
+            117.48235778200001,
+            36.340844373000039
+          ],
+          [
+            117.48287017700011,
+            36.340403692000052
+          ],
+          [
+            117.48338256700004,
+            36.339963008000041
+          ],
+          [
+            117.48389495200001,
+            36.33952232200005
+          ],
+          [
+            117.48440733000007,
+            36.339081633000035
+          ],
+          [
+            117.48485984200011,
+            36.338668928000061
+          ],
+          [
+            117.48531234800009,
+            36.338256221000051
+          ],
+          [
+            117.48576485000001,
+            36.337843511000074
+          ],
+          [
+            117.4862173460001,
+            36.33743080000005
+          ],
+          [
+            117.48667853500001,
+            36.337010156000076
+          ],
+          [
+            117.48713971800009,
+            36.336589509000078
+          ],
+          [
+            117.48714487700011,
+            36.336583266000048
+          ],
+          [
+            117.4871533490001,
+            36.336568258000057
+          ],
+          [
+            117.48737024700006,
+            36.336114830000042
+          ],
+          [
+            117.48758714300004,
+            36.335661401000038
+          ],
+          [
+            117.48758349400009,
+            36.335518360000037
+          ],
+          [
+            117.48747491600011,
+            36.335105492000025
+          ],
+          [
+            117.48736633800002,
+            36.334692622000034
+          ],
+          [
+            117.48725776100002,
+            36.334279752000043
+          ],
+          [
+            117.48707090300002,
+            36.333911466000075
+          ],
+          [
+            117.48688404500001,
+            36.333543180000049
+          ],
+          [
+            117.48697565000009,
+            36.33353730400006
+          ],
+          [
+            117.48714648400005,
+            36.333526346000042
+          ],
+          [
+            117.48720095200008,
+            36.333522853000034
+          ],
+          [
+            117.48751148600002,
+            36.33350293500007
+          ],
+          [
+            117.48768828900006,
+            36.333491594000066
+          ],
+          [
+            117.48795433600003,
+            36.333474527000078
+          ],
+          [
+            117.48797512400006,
+            36.33347223100003
+          ],
+          [
+            117.48799963600004,
+            36.333469524000066
+          ],
+          [
+            117.48856469900011,
+            36.333407100000045
+          ],
+          [
+            117.48856644300008,
+            36.333414404000052
+          ],
+          [
+            117.48861369200006,
+            36.333670865000045
+          ],
+          [
+            117.48863217200005,
+            36.333771175000038
+          ],
+          [
+            117.48866782300001,
+            36.333964674000072
+          ],
+          [
+            117.48879484400004,
+            36.333947993000038
+          ],
+          [
+            117.48954414400009,
+            36.333864991000041
+          ],
+          [
+            117.48948395400009,
+            36.333485913000061
+          ],
+          [
+            117.48945580900011,
+            36.333308653000074
+          ],
+          [
+            117.48944653100011,
+            36.333230912000033
+          ],
+          [
+            117.48954771900003,
+            36.333220277000066
+          ],
+          [
+            117.48939917400003,
+            36.332807238000044
+          ],
+          [
+            117.48921832800011,
+            36.332304381000029
+          ],
+          [
+            117.48903748500004,
+            36.331801523000024
+          ],
+          [
+            117.48902804500005,
+            36.331775272000073
+          ],
+          [
+            117.48888483500002,
+            36.331377054000029
+          ],
+          [
+            117.48886573600009,
+            36.331323945000065
+          ],
+          [
+            117.48878409300005,
+            36.33109692000005
+          ],
+          [
+            117.48874162600009,
+            36.330978835000053
+          ],
+          [
+            117.4887319720001,
+            36.330951992000053
+          ],
+          [
+            117.48869524200006,
+            36.330849855000054
+          ],
+          [
+            117.48868551100009,
+            36.330822793000038
+          ],
+          [
+            117.48859619200005,
+            36.330574421000051
+          ],
+          [
+            117.48858984000003,
+            36.33057444700006
+          ],
+          [
+            117.48856153800011,
+            36.330542947000026
+          ],
+          [
+            117.48853770500011,
+            36.330493555000032
+          ],
+          [
+            117.48841291000008,
+            36.330059126000037
+          ],
+          [
+            117.4882765750001,
+            36.329664068000056
+          ],
+          [
+            117.48826290800002,
+            36.329624461000037
+          ],
+          [
+            117.48826094300011,
+            36.329618770000025
+          ],
+          [
+            117.48815764500011,
+            36.329664457000035
+          ],
+          [
+            117.48778461600011,
+            36.32980619600005
+          ],
+          [
+            117.48764765700002,
+            36.32983617900004
+          ],
+          [
+            117.48738324200008,
+            36.329537192000032
+          ],
+          [
+            117.4871188300001,
+            36.329238203000045
+          ],
+          [
+            117.48657260000004,
+            36.329662666000047
+          ],
+          [
+            117.48602636400005,
+            36.33008712600008
+          ],
+          [
+            117.48567054000011,
+            36.330066444000067
+          ],
+          [
+            117.48555137200003,
+            36.330059517000052
+          ],
+          [
+            117.48554238500003,
+            36.330058995000059
+          ],
+          [
+            117.48536664900007,
+            36.330066104000025
+          ],
+          [
+            117.48527515800004,
+            36.33006980600004
+          ],
+          [
+            117.48509822400001,
+            36.330076964000057
+          ],
+          [
+            117.48495281800001,
+            36.330082846000039
+          ],
+          [
+            117.48488719600005,
+            36.330085500000052
+          ],
+          [
+            117.48440774300002,
+            36.330104893000055
+          ],
+          [
+            117.48439606900001,
+            36.330084258000056
+          ],
+          [
+            117.48417891500003,
+            36.330088362000026
+          ],
+          [
+            117.48398359700002,
+            36.330092053000044
+          ],
+          [
+            117.48363989000006,
+            36.330098547000034
+          ],
+          [
+            117.48348686300005,
+            36.330093807000026
+          ],
+          [
+            117.48347339700001,
+            36.330093390000059
+          ],
+          [
+            117.48345765900001,
+            36.330092824000076
+          ],
+          [
+            117.48341909500004,
+            36.329417608000028
+          ],
+          [
+            117.48346040700005,
+            36.329415813000026
+          ],
+          [
+            117.48364368900002,
+            36.329407849000063
+          ],
+          [
+            117.48416816700001,
+            36.329385058000071
+          ],
+          [
+            117.48416779600007,
+            36.329378775000066
+          ],
+          [
+            117.48416619900001,
+            36.329351727000073
+          ],
+          [
+            117.48413003000007,
+            36.328739084000063
+          ],
+          [
+            117.48409386300011,
+            36.328126443000031
+          ],
+          [
+            117.48409303000005,
+            36.32811231900007
+          ],
+          [
+            117.48409070100001,
+            36.328072868000049
+          ],
+          [
+            117.48406485200007,
+            36.327634995000039
+          ],
+          [
+            117.48406325400003,
+            36.327607945000068
+          ],
+          [
+            117.48403900200003,
+            36.32719712100004
+          ],
+          [
+            117.48403777100009,
+            36.327176283000028
+          ],
+          [
+            117.48337054800004,
+            36.327194298000052
+          ],
+          [
+            117.48336889300003,
+            36.327171612000029
+          ],
+          [
+            117.483328873,
+            36.326623006000034
+          ],
+          [
+            117.48328885400008,
+            36.326074399000049
+          ],
+          [
+            117.48328859300011,
+            36.326070823000066
+          ],
+          [
+            117.48270826700002,
+            36.326083609000079
+          ],
+          [
+            117.48212794100004,
+            36.326096393000057
+          ],
+          [
+            117.48209046600005,
+            36.326095098000053
+          ],
+          [
+            117.48208885500003,
+            36.326063960000056
+          ],
+          [
+            117.4820618440001,
+            36.325511898000059
+          ],
+          [
+            117.4820607150001,
+            36.325490897000066
+          ],
+          [
+            117.48205911800005,
+            36.325461162000067
+          ],
+          [
+            117.4820434180001,
+            36.325168862000055
+          ],
+          [
+            117.48203412900011,
+            36.32505352000004
+          ],
+          [
+            117.48203117000003,
+            36.325016776000041
+          ],
+          [
+            117.48207359700007,
+            36.325015540000038
+          ],
+          [
+            117.48205992500004,
+            36.324882151000054
+          ],
+          [
+            117.4820440630001,
+            36.324839611000073
+          ],
+          [
+            117.48201355500009,
+            36.324798056000077
+          ],
+          [
+            117.48200690900001,
+            36.324717441000075
+          ],
+          [
+            117.48174597700006,
+            36.324386787000037
+          ],
+          [
+            117.48172866100003,
+            36.324296336000032
+          ],
+          [
+            117.48165615200003,
+            36.323921508000069
+          ],
+          [
+            117.48150119700006,
+            36.323291924000046
+          ],
+          [
+            117.48144804100002,
+            36.32329496400007
+          ],
+          [
+            117.48144983900011,
+            36.323352038000053
+          ],
+          [
+            117.48139832100003,
+            36.323315925000031
+          ],
+          [
+            117.48134848300003,
+            36.323300736000078
+          ],
+          [
+            117.48109596300003,
+            36.323203268000043
+          ],
+          [
+            117.48102354000002,
+            36.323204971000052
+          ],
+          [
+            117.48098227200001,
+            36.323205942000072
+          ],
+          [
+            117.48087363500008,
+            36.323208498000042
+          ],
+          [
+            117.48085018800009,
+            36.323000082000078
+          ],
+          [
+            117.48084527500009,
+            36.322956402000045
+          ],
+          [
+            117.48071067000001,
+            36.322968652000043
+          ],
+          [
+            117.48070545400003,
+            36.322952210000039
+          ],
+          [
+            117.4800351130001,
+            36.323001729000055
+          ],
+          [
+            117.4800497760001,
+            36.322992017000047
+          ],
+          [
+            117.48004798300008,
+            36.322982701000058
+          ],
+          [
+            117.48001090500009,
+            36.322983989000079
+          ],
+          [
+            117.47999229800007,
+            36.32283239700007
+          ],
+          [
+            117.48026616600009,
+            36.322814423000068
+          ],
+          [
+            117.48028043200009,
+            36.322813409000048
+          ],
+          [
+            117.48024062700006,
+            36.322532384000056
+          ],
+          [
+            117.48025512000004,
+            36.322529982000049
+          ],
+          [
+            117.48025528000005,
+            36.322531001000073
+          ],
+          [
+            117.48042097500002,
+            36.322514432000048
+          ],
+          [
+            117.48037921800005,
+            36.322231900000077
+          ],
+          [
+            117.48021641700007,
+            36.322244840000053
+          ],
+          [
+            117.48018870700002,
+            36.322247043000061
+          ],
+          [
+            117.48018523100006,
+            36.322247319000041
+          ],
+          [
+            117.48016999300012,
+            36.322109169000043
+          ],
+          [
+            117.48000183700003,
+            36.322112297000047
+          ],
+          [
+            117.47999435400004,
+            36.321936024000024
+          ],
+          [
+            117.47991077000006,
+            36.321938369000065
+          ],
+          [
+            117.47988271400004,
+            36.321939155000052
+          ],
+          [
+            117.47929542300005,
+            36.321955621000029
+          ],
+          [
+            117.47929747500007,
+            36.321898522000026
+          ],
+          [
+            117.4792975040001,
+            36.321897720000038
+          ],
+          [
+            117.47927750000008,
+            36.321898160000046
+          ],
+          [
+            117.47927898300009,
+            36.321792412000036
+          ],
+          [
+            117.47922324600006,
+            36.321793994000075
+          ],
+          [
+            117.47922328800007,
+            36.321792831000039
+          ],
+          [
+            117.47922428400011,
+            36.321765109000069
+          ],
+          [
+            117.47897945700004,
+            36.321772148000036
+          ],
+          [
+            117.47897948200011,
+            36.321409061000054
+          ],
+          [
+            117.47897932800004,
+            36.321378324000079
+          ],
+          [
+            117.47802617100001,
+            36.321408294000037
+          ],
+          [
+            117.47776850800005,
+            36.321405847000051
+          ],
+          [
+            117.47777155000006,
+            36.321439947000044
+          ],
+          [
+            117.47779039500006,
+            36.321652810000046
+          ],
+          [
+            117.47783773300011,
+            36.322673341000041
+          ],
+          [
+            117.47779958300009,
+            36.322716205000063
+          ],
+          [
+            117.47725771300009,
+            36.322723736000057
+          ],
+          [
+            117.47725747000004,
+            36.322739365000075
+          ],
+          [
+            117.47726606700007,
+            36.323146377000057
+          ],
+          [
+            117.47727466300012,
+            36.323553387000061
+          ],
+          [
+            117.47702725300007,
+            36.323573310000029
+          ],
+          [
+            117.4770223270001,
+            36.323602686000072
+          ],
+          [
+            117.47700851700006,
+            36.323643700000048
+          ],
+          [
+            117.47699723200003,
+            36.323692961000063
+          ],
+          [
+            117.47696405700003,
+            36.323702272000048
+          ],
+          [
+            117.47694560000002,
+            36.324596749000079
+          ],
+          [
+            117.47691828400002,
+            36.324595438000074
+          ],
+          [
+            117.47667805200001,
+            36.324651379000045
+          ],
+          [
+            117.47628975500004,
+            36.324730095000064
+          ],
+          [
+            117.47564487000011,
+            36.324709214000052
+          ],
+          [
+            117.47534999200002,
+            36.324596582000027
+          ],
+          [
+            117.47510378400011,
+            36.324520308000046
+          ],
+          [
+            117.47493198900008,
+            36.324510107000037
+          ],
+          [
+            117.47462220300008,
+            36.324404911000045
+          ],
+          [
+            117.47462267300011,
+            36.324435869000069
+          ],
+          [
+            117.47462536500007,
+            36.324646619000077
+          ],
+          [
+            117.4746300920001,
+            36.325016709000067
+          ],
+          [
+            117.47464329400009,
+            36.325028309000061
+          ],
+          [
+            117.47468255900003,
+            36.325039487000026
+          ],
+          [
+            117.47467716600011,
+            36.32504061800006
+          ],
+          [
+            117.47467536000011,
+            36.325042462000056
+          ],
+          [
+            117.47465314500005,
+            36.325065161000055
+          ],
+          [
+            117.47464839500003,
+            36.325070014000062
+          ],
+          [
+            117.47463780600003,
+            36.325080833000072
+          ],
+          [
+            117.47463532300003,
+            36.325089459000026
+          ],
+          [
+            117.47470221100002,
+            36.325091957000041
+          ],
+          [
+            117.47469229000001,
+            36.325102094000044
+          ],
+          [
+            117.47467612200001,
+            36.325158269000042
+          ],
+          [
+            117.4746704370001,
+            36.325194560000057
+          ],
+          [
+            117.47463415600009,
+            36.325229110000066
+          ],
+          [
+            117.47455228700005,
+            36.325254014000052
+          ],
+          [
+            117.47452609300001,
+            36.325264115000039
+          ],
+          [
+            117.47450781700002,
+            36.325271164000071
+          ],
+          [
+            117.47444336100011,
+            36.325278722000064
+          ],
+          [
+            117.47443911300002,
+            36.325278725000032
+          ],
+          [
+            117.47428180600002,
+            36.325278823000076
+          ],
+          [
+            117.47398594000003,
+            36.325284600000032
+          ],
+          [
+            117.47382223400007,
+            36.325287796000055
+          ],
+          [
+            117.47373607400004,
+            36.325266871000053
+          ],
+          [
+            117.47366713400004,
+            36.32524666900008
+          ],
+          [
+            117.47356143600007,
+            36.325220123000065
+          ],
+          [
+            117.47353258500004,
+            36.325199971000075
+          ],
+          [
+            117.47350221700003,
+            36.325172671000075
+          ],
+          [
+            117.47348150700009,
+            36.32511617800003
+          ],
+          [
+            117.47348198400005,
+            36.325051396000049
+          ],
+          [
+            117.47348204000002,
+            36.325050769000029
+          ],
+          [
+            117.47348008300003,
+            36.325048709000043
+          ],
+          [
+            117.47343950300001,
+            36.325039307000054
+          ],
+          [
+            117.47338114500008,
+            36.32504582200005
+          ],
+          [
+            117.47272190100011,
+            36.325039741000069
+          ],
+          [
+            117.47272025800009,
+            36.325048343000049
+          ],
+          [
+            117.47264719600003,
+            36.325048050000078
+          ],
+          [
+            117.47264922700003,
+            36.32503674000003
+          ],
+          [
+            117.4719659540001,
+            36.325025941000035
+          ],
+          [
+            117.47194262200003,
+            36.325025516000039
+          ],
+          [
+            117.47192354100002,
+            36.325025168000025
+          ],
+          [
+            117.47188024000002,
+            36.32502437800008
+          ],
+          [
+            117.47140405900006,
+            36.325015691000033
+          ],
+          [
+            117.47115598100004,
+            36.325011165000035
+          ],
+          [
+            117.47110439700009,
+            36.325025305000054
+          ],
+          [
+            117.4710801010001,
+            36.325040581000053
+          ],
+          [
+            117.47105772400005,
+            36.325063443000033
+          ],
+          [
+            117.47105394300002,
+            36.325075938000055
+          ],
+          [
+            117.47105228300006,
+            36.32507964000007
+          ],
+          [
+            117.47101152100004,
+            36.32508182600003
+          ],
+          [
+            117.47096736600008,
+            36.325084193000066
+          ],
+          [
+            117.47090413400008,
+            36.325087583000027
+          ],
+          [
+            117.4704172810001,
+            36.325113682000051
+          ],
+          [
+            117.46993042800011,
+            36.32513977900004
+          ],
+          [
+            117.46961763600007,
+            36.325293860000045
+          ],
+          [
+            117.4689359460001,
+            36.32532294300006
+          ],
+          [
+            117.46886905500003,
+            36.325325796000072
+          ],
+          [
+            117.46812104300011,
+            36.325357704000055
+          ],
+          [
+            117.46737303000009,
+            36.325389607000034
+          ],
+          [
+            117.46737304400006,
+            36.325392003000047
+          ],
+          [
+            117.46737349600005,
+            36.325467641000046
+          ],
+          [
+            117.46737378300008,
+            36.325515634000055
+          ],
+          [
+            117.4673747600001,
+            36.325679555000079
+          ],
+          [
+            117.46737579100011,
+            36.325852153000028
+          ],
+          [
+            117.46737952800004,
+            36.326478124000062
+          ],
+          [
+            117.46681973800003,
+            36.326493654000046
+          ],
+          [
+            117.46625994800002,
+            36.326509181000063
+          ],
+          [
+            117.466260852,
+            36.326661063000074
+          ],
+          [
+            117.46558468000001,
+            36.326679087000059
+          ],
+          [
+            117.46490850800001,
+            36.326697108000076
+          ],
+          [
+            117.4649109500001,
+            36.326796340000044
+          ],
+          [
+            117.46423395700003,
+            36.326817055000049
+          ],
+          [
+            117.46392881600002,
+            36.326826391000054
+          ],
+          [
+            117.46371567600011,
+            36.326832911000054
+          ],
+          [
+            117.46355696300009,
+            36.32683776600004
+          ],
+          [
+            117.46287996900003,
+            36.326858473000073
+          ],
+          [
+            117.46292341800006,
+            36.32738203100007
+          ],
+          [
+            117.46291199100006,
+            36.327382140000054
+          ],
+          [
+            117.46273122000002,
+            36.327382839000052
+          ],
+          [
+            117.46245226000008,
+            36.327347510000038
+          ],
+          [
+            117.46208766000007,
+            36.327363146000039
+          ],
+          [
+            117.46188213700009,
+            36.32737196000005
+          ],
+          [
+            117.46184256400011,
+            36.327373657000066
+          ],
+          [
+            117.46181719600008,
+            36.327375292000056
+          ],
+          [
+            117.46181479600011,
+            36.327375841000048
+          ],
+          [
+            117.46182271100008,
+            36.327405251000073
+          ],
+          [
+            117.46133618500005,
+            36.327430510000056
+          ],
+          [
+            117.46138050800005,
+            36.327922306000062
+          ],
+          [
+            117.46138422200011,
+            36.328552375000072
+          ],
+          [
+            117.46131759500008,
+            36.328558025000063
+          ],
+          [
+            117.4613217110001,
+            36.329256238000028
+          ],
+          [
+            117.46132198600003,
+            36.329269302000057
+          ],
+          [
+            117.46096475200011,
+            36.329333080000026
+          ],
+          [
+            117.46096496200005,
+            36.32936870900005
+          ],
+          [
+            117.46051511300004,
+            36.329415470000072
+          ],
+          [
+            117.46032639800001,
+            36.329435054000044
+          ],
+          [
+            117.46007395600009,
+            36.329461174000073
+          ],
+          [
+            117.45995167100011,
+            36.329529940000043
+          ],
+          [
+            117.45985660300005,
+            36.329557754000064
+          ],
+          [
+            117.4596802210001,
+            36.329607988000078
+          ],
+          [
+            117.45948692000002,
+            36.329663038000035
+          ],
+          [
+            117.45947412600003,
+            36.329669387000024
+          ],
+          [
+            117.45909254900005,
+            36.329855165000026
+          ],
+          [
+            117.4590499740001,
+            36.32942354000005
+          ],
+          [
+            117.45900740000002,
+            36.328991913000038
+          ],
+          [
+            117.45879459000002,
+            36.32899726200003
+          ],
+          [
+            117.45879598300007,
+            36.329234866000036
+          ],
+          [
+            117.45858093300001,
+            36.329262672000027
+          ],
+          [
+            117.45825333100004,
+            36.329305028000078
+          ],
+          [
+            117.45771067800001,
+            36.329375187000039
+          ],
+          [
+            117.45716802400011,
+            36.329445343000032
+          ],
+          [
+            117.4571579410001,
+            36.329446647000054
+          ],
+          [
+            117.45715864200008,
+            36.329566773000067
+          ],
+          [
+            117.45714639900007,
+            36.329567380000071
+          ],
+          [
+            117.45674650500007,
+            36.329587174000039
+          ],
+          [
+            117.45634661100007,
+            36.329606966000028
+          ],
+          [
+            117.45633193300011,
+            36.329607692000025
+          ],
+          [
+            117.45600376300001,
+            36.32962393300005
+          ],
+          [
+            117.45598202700012,
+            36.32962500900004
+          ],
+          [
+            117.45594431400002,
+            36.329564491000042
+          ],
+          [
+            117.45594079300008,
+            36.329565817000059
+          ],
+          [
+            117.45576419500003,
+            36.329614569000057
+          ],
+          [
+            117.45568835300003,
+            36.329646332000038
+          ],
+          [
+            117.45560026300006,
+            36.329693956000028
+          ],
+          [
+            117.45520215900001,
+            36.330275759000074
+          ],
+          [
+            117.45519418900005,
+            36.330284860000063
+          ],
+          [
+            117.45510779600011,
+            36.33037339100008
+          ],
+          [
+            117.45511347100012,
+            36.330377036000073
+          ],
+          [
+            117.4551083880001,
+            36.330382830000076
+          ],
+          [
+            117.45505609500003,
+            36.33044244000007
+          ],
+          [
+            117.45505346800007,
+            36.33044374900004
+          ],
+          [
+            117.45487784000011,
+            36.330531239000038
+          ],
+          [
+            117.45486133800011,
+            36.330554839000058
+          ],
+          [
+            117.45478929600006,
+            36.330657872000074
+          ],
+          [
+            117.45530655100004,
+            36.331051656000056
+          ],
+          [
+            117.45531552200009,
+            36.33120346700008
+          ],
+          [
+            117.45518336400005,
+            36.331254781000041
+          ],
+          [
+            117.45518373100003,
+            36.331317927000043
+          ],
+          [
+            117.45530918300005,
+            36.331467738000072
+          ],
+          [
+            117.45531251900002,
+            36.331471721000071
+          ],
+          [
+            117.45531031600001,
+            36.331471898000075
+          ],
+          [
+            117.45531198800006,
+            36.331478035000032
+          ],
+          [
+            117.45502454000007,
+            36.331494785000075
+          ],
+          [
+            117.45465333900006,
+            36.331505615000026
+          ],
+          [
+            117.45429302900004,
+            36.33151570900003
+          ],
+          [
+            117.45399502400005,
+            36.331548500000054
+          ],
+          [
+            117.45358894800006,
+            36.331594753000047
+          ],
+          [
+            117.4532424030001,
+            36.331606476000047
+          ],
+          [
+            117.45278415200005,
+            36.331621977000054
+          ],
+          [
+            117.45263608100004,
+            36.331614693000063
+          ],
+          [
+            117.45224109700007,
+            36.331573075000051
+          ],
+          [
+            117.45184100100005,
+            36.331593415000043
+          ],
+          [
+            117.45166379000011,
+            36.331643407000058
+          ],
+          [
+            117.45157976300004,
+            36.331652228000053
+          ],
+          [
+            117.45134869500009,
+            36.331680021000068
+          ],
+          [
+            117.45102079500009,
+            36.331670275000079
+          ],
+          [
+            117.45067198600009,
+            36.331650053000033
+          ],
+          [
+            117.45067020400006,
+            36.331664162000038
+          ],
+          [
+            117.45065416200009,
+            36.331662832000063
+          ],
+          [
+            117.45061806500007,
+            36.331659838000064
+          ],
+          [
+            117.45061016900002,
+            36.331782238000073
+          ],
+          [
+            117.45057747200008,
+            36.331841036000071
+          ],
+          [
+            117.45054952400005,
+            36.331871481000064
+          ],
+          [
+            117.45053475700001,
+            36.331883541000025
+          ],
+          [
+            117.45051861800005,
+            36.331890147000024
+          ],
+          [
+            117.45048542800009,
+            36.331894053000042
+          ],
+          [
+            117.45040014800009,
+            36.331884863000028
+          ],
+          [
+            117.45032510500005,
+            36.331892740000058
+          ],
+          [
+            117.45025262800004,
+            36.331905491000043
+          ],
+          [
+            117.45019797600003,
+            36.331923663000055
+          ],
+          [
+            117.45016389700004,
+            36.331953042000066
+          ],
+          [
+            117.45014835400002,
+            36.331989681000039
+          ],
+          [
+            117.4501757920001,
+            36.332142565000026
+          ],
+          [
+            117.45019316900004,
+            36.33216709900006
+          ],
+          [
+            117.45020108900007,
+            36.332178282000029
+          ],
+          [
+            117.45022158200004,
+            36.332183774000043
+          ],
+          [
+            117.45019709300004,
+            36.332193807000067
+          ],
+          [
+            117.45007723700007,
+            36.332177566000041
+          ],
+          [
+            117.44987035400004,
+            36.332165949000057
+          ],
+          [
+            117.44951301100002,
+            36.332145883000067
+          ],
+          [
+            117.44903792200012,
+            36.332119202000058
+          ],
+          [
+            117.44894878600007,
+            36.332114196000077
+          ],
+          [
+            117.44841461100009,
+            36.332058091000079
+          ],
+          [
+            117.44836429000009,
+            36.332283234000045
+          ],
+          [
+            117.44835617800004,
+            36.332315206000033
+          ],
+          [
+            117.44832238100003,
+            36.332448408000062
+          ],
+          [
+            117.4483088720001,
+            36.33250165100003
+          ],
+          [
+            117.44822540400003,
+            36.332589261000066
+          ],
+          [
+            117.44822290500008,
+            36.332591884000067
+          ],
+          [
+            117.44814858600012,
+            36.332669890000034
+          ],
+          [
+            117.44812704300011,
+            36.332930741000041
+          ],
+          [
+            117.44798318000005,
+            36.332949907000057
+          ],
+          [
+            117.44782235800005,
+            36.333025015000032
+          ],
+          [
+            117.44769862800001,
+            36.33329715800005
+          ],
+          [
+            117.44776693300003,
+            36.33332976500003
+          ],
+          [
+            117.44791709100002,
+            36.333388090000028
+          ],
+          [
+            117.44792281500008,
+            36.333454986000049
+          ],
+          [
+            117.44785823200004,
+            36.333521709000024
+          ],
+          [
+            117.44793411400008,
+            36.333562874000052
+          ],
+          [
+            117.4479369500001,
+            36.33356374400006
+          ],
+          [
+            117.44803844500007,
+            36.33359486300003
+          ],
+          [
+            117.44808691200001,
+            36.333690500000046
+          ],
+          [
+            117.44808976200011,
+            36.333696125000074
+          ],
+          [
+            117.4484684900001,
+            36.333697298000061
+          ],
+          [
+            117.44848144400009,
+            36.333697338000036
+          ],
+          [
+            117.44847924500004,
+            36.333719444000053
+          ],
+          [
+            117.44847239300009,
+            36.333788322000032
+          ],
+          [
+            117.44846513700008,
+            36.333861256000034
+          ],
+          [
+            117.4483707710001,
+            36.334112005000065
+          ],
+          [
+            117.44837081500009,
+            36.334112118000064
+          ],
+          [
+            117.44842152100011,
+            36.334243595000032
+          ],
+          [
+            117.44845019400009,
+            36.334317942000041
+          ],
+          [
+            117.44850755400012,
+            36.33446667000004
+          ],
+          [
+            117.44854586300005,
+            36.334566000000052
+          ],
+          [
+            117.44857726400005,
+            36.334647420000067
+          ],
+          [
+            117.44859097000005,
+            36.33468295800003
+          ],
+          [
+            117.44830669800001,
+            36.33480636400003
+          ],
+          [
+            117.44830729500006,
+            36.334910568000055
+          ],
+          [
+            117.44830745600007,
+            36.334938695000062
+          ],
+          [
+            117.44830761600008,
+            36.33496669200008
+          ],
+          [
+            117.44848943400007,
+            36.335091485000078
+          ],
+          [
+            117.44878173400002,
+            36.335177582000028
+          ],
+          [
+            117.44897993500001,
+            36.335259169000039
+          ],
+          [
+            117.44955066400007,
+            36.335493755000073
+          ],
+          [
+            117.44955121500004,
+            36.335494330000074
+          ],
+          [
+            117.44955133000008,
+            36.335494377000032
+          ],
+          [
+            117.44991135200007,
+            36.335850082000036
+          ],
+          [
+            117.45027137700004,
+            36.33620578600005
+          ],
+          [
+            117.45047184400005,
+            36.336403845000063
+          ],
+          [
+            117.4509036820001,
+            36.336830490000068
+          ],
+          [
+            117.45105291800007,
+            36.336977930000046
+          ],
+          [
+            117.45111231400006,
+            36.337036612000077
+          ],
+          [
+            117.45156962900001,
+            36.337488419000067
+          ],
+          [
+            117.45155745200009,
+            36.337496820000069
+          ],
+          [
+            117.45155933100011,
+            36.337498577000076
+          ],
+          [
+            117.45193822700003,
+            36.337852888000043
+          ],
+          [
+            117.45194246900007,
+            36.337856854000051
+          ],
+          [
+            117.45194330200002,
+            36.337857971000062
+          ],
+          [
+            117.45194716200001,
+            36.337877543000047
+          ],
+          [
+            117.45202084100004,
+            36.338251004000028
+          ],
+          [
+            117.45203391400003,
+            36.338317268000026
+          ],
+          [
+            117.45214516800002,
+            36.338881176000029
+          ],
+          [
+            117.45225642300011,
+            36.339445083000044
+          ],
+          [
+            117.45226539800001,
+            36.339451451000059
+          ],
+          [
+            117.45230561000005,
+            36.339479985000025
+          ],
+          [
+            117.452411299,
+            36.33955497900007
+          ],
+          [
+            117.45258948700007,
+            36.339681416000076
+          ],
+          [
+            117.45229102900009,
+            36.339930378000076
+          ],
+          [
+            117.45228708000002,
+            36.339933673000075
+          ],
+          [
+            117.45219178100001,
+            36.340085572000078
+          ],
+          [
+            117.4521655420001,
+            36.340127395000025
+          ],
+          [
+            117.45202415100005,
+            36.340352759000041
+          ],
+          [
+            117.45211409400008,
+            36.340521914000078
+          ],
+          [
+            117.45214622100002,
+            36.340582336000068
+          ],
+          [
+            117.45270728900005,
+            36.340663864000078
+          ],
+          [
+            117.45254532100012,
+            36.34099210800008
+          ],
+          [
+            117.45203554300008,
+            36.34099403700003
+          ],
+          [
+            117.45174325000005,
+            36.340995142000054
+          ],
+          [
+            117.45201652700007,
+            36.341157779000071
+          ],
+          [
+            117.45224077700004,
+            36.341291239000043
+          ],
+          [
+            117.45229933600001,
+            36.341326089000063
+          ],
+          [
+            117.4522998220001,
+            36.341326183000035
+          ],
+          [
+            117.45238134500005,
+            36.341341917000079
+          ],
+          [
+            117.45309259600003,
+            36.341479181000068
+          ],
+          [
+            117.45313981900006,
+            36.341483452000034
+          ],
+          [
+            117.45350551600006,
+            36.341551692000053
+          ],
+          [
+            117.45364608400007,
+            36.341577921000066
+          ],
+          [
+            117.45407748000002,
+            36.341658418000065
+          ],
+          [
+            117.45476633300007,
+            36.341730434000056
+          ],
+          [
+            117.45490490700001,
+            36.341781734000051
+          ],
+          [
+            117.45497822800007,
+            36.341808876000073
+          ],
+          [
+            117.45537875500008,
+            36.341957099000069
+          ],
+          [
+            117.45537875700006,
+            36.341957149000052
+          ],
+          [
+            117.45538383600001,
+            36.342034349000073
+          ],
+          [
+            117.45538491800005,
+            36.342050801000028
+          ],
+          [
+            117.45542474700005,
+            36.342656257000044
+          ],
+          [
+            117.45524668500002,
+            36.342679326000052
+          ],
+          [
+            117.45472831200004,
+            36.342746480000073
+          ],
+          [
+            117.45403187700003,
+            36.342836700000078
+          ],
+          [
+            117.45333543900006,
+            36.342926915000078
+          ],
+          [
+            117.45330364800009,
+            36.342928048000033
+          ],
+          [
+            117.45278125700008,
+            36.34294664500004
+          ],
+          [
+            117.45276790800006,
+            36.342947120000076
+          ],
+          [
+            117.45272681100005,
+            36.342942108000045
+          ],
+          [
+            117.45262219200004,
+            36.343216178000034
+          ],
+          [
+            117.45253458600007,
+            36.343557875000045
+          ],
+          [
+            117.45244697900011,
+            36.343899572000055
+          ],
+          [
+            117.45248177600001,
+            36.343903960000034
+          ],
+          [
+            117.4529653190001,
+            36.343963255000062
+          ],
+          [
+            117.45344886400005,
+            36.344022549000044
+          ],
+          [
+            117.45342175600001,
+            36.344066929000064
+          ],
+          [
+            117.45339090900006,
+            36.344247642000028
+          ],
+          [
+            117.45340421900005,
+            36.344247592000045
+          ],
+          [
+            117.45358961000011,
+            36.344246890000079
+          ],
+          [
+            117.4536943280001,
+            36.344246493000071
+          ],
+          [
+            117.45375764700009,
+            36.344246254000041
+          ],
+          [
+            117.45398550800007,
+            36.344229838000047
+          ],
+          [
+            117.45428681500005,
+            36.344208130000027
+          ],
+          [
+            117.45433669500005,
+            36.344224052000072
+          ],
+          [
+            117.45438486300009,
+            36.344239427000048
+          ],
+          [
+            117.45439863900003,
+            36.344243825000035
+          ],
+          [
+            117.45439943100007,
+            36.34424449800008
+          ],
+          [
+            117.45439980000003,
+            36.344244813000046
+          ],
+          [
+            117.4544130920001,
+            36.344256131000066
+          ],
+          [
+            117.4547575900001,
+            36.344549478000033
+          ],
+          [
+            117.45482503400001,
+            36.344558909000057
+          ],
+          [
+            117.45482512000001,
+            36.344569639000042
+          ],
+          [
+            117.45501704700007,
+            36.344572716000073
+          ],
+          [
+            117.45491342800005,
+            36.34487792300007
+          ],
+          [
+            117.45513545200004,
+            36.344903689000034
+          ],
+          [
+            117.45516018800004,
+            36.344906560000027
+          ],
+          [
+            117.45520202800003,
+            36.345278239000038
+          ],
+          [
+            117.45510363200003,
+            36.345355790000042
+          ],
+          [
+            117.45502582300003,
+            36.345548676000078
+          ],
+          [
+            117.45488889800004,
+            36.345888098000046
+          ],
+          [
+            117.45472257500001,
+            36.345891933000075
+          ],
+          [
+            117.45476579500007,
+            36.34630856800004
+          ],
+          [
+            117.45480260000011,
+            36.346663356000079
+          ],
+          [
+            117.45533467300004,
+            36.346452828000054
+          ],
+          [
+            117.45534117300008,
+            36.346450256000026
+          ],
+          [
+            117.45551075200001,
+            36.346351387000027
+          ],
+          [
+            117.45561483400002,
+            36.346280328000034
+          ],
+          [
+            117.45570724100003,
+            36.346217238000065
+          ],
+          [
+            117.45602602600002,
+            36.34599958900003
+          ],
+          [
+            117.45602613800008,
+            36.345635495000067
+          ],
+          [
+            117.45608062800011,
+            36.34556475200003
+          ],
+          [
+            117.45617908600002,
+            36.345508317000053
+          ],
+          [
+            117.45638209100002,
+            36.345527062000031
+          ],
+          [
+            117.4565645350001,
+            36.345609979000074
+          ],
+          [
+            117.45661431500002,
+            36.34554025500006
+          ],
+          [
+            117.45665705900001,
+            36.345466001000034
+          ],
+          [
+            117.45671634500002,
+            36.345210663000046
+          ],
+          [
+            117.4567432660001,
+            36.345185192000031
+          ],
+          [
+            117.45674378000001,
+            36.34518337600008
+          ],
+          [
+            117.45677987300007,
+            36.34499723600004
+          ],
+          [
+            117.45680852200007,
+            36.344849488000079
+          ],
+          [
+            117.45681107300004,
+            36.344836328000042
+          ],
+          [
+            117.45684556000003,
+            36.344517820000078
+          ],
+          [
+            117.45685473200001,
+            36.344445634000067
+          ],
+          [
+            117.45685857700005,
+            36.34441537500004
+          ],
+          [
+            117.45686027700003,
+            36.344385021000051
+          ],
+          [
+            117.45686093900008,
+            36.344379403000062
+          ],
+          [
+            117.45683228900009,
+            36.344342385000061
+          ],
+          [
+            117.45683710500009,
+            36.344140923000054
+          ],
+          [
+            117.45680659800007,
+            36.343870224000057
+          ],
+          [
+            117.45680554600006,
+            36.343860899000049
+          ],
+          [
+            117.45742847600002,
+            36.343541090000031
+          ],
+          [
+            117.4578846280001,
+            36.343306900000073
+          ],
+          [
+            117.45803145800005,
+            36.343467271000065
+          ],
+          [
+            117.45804116200009,
+            36.343477872000051
+          ],
+          [
+            117.45810144900008,
+            36.343518005000078
+          ],
+          [
+            117.45841621700004,
+            36.343434716000047
+          ],
+          [
+            117.45848075900005,
+            36.34342928600006
+          ],
+          [
+            117.45849095200003,
+            36.343428456000026
+          ],
+          [
+            117.45852630800005,
+            36.34370395600007
+          ],
+          [
+            117.45850928600009,
+            36.344039447000057
+          ],
+          [
+            117.45849060500007,
+            36.344241500000066
+          ],
+          [
+            117.45849412200005,
+            36.344765633000065
+          ],
+          [
+            117.45849577600006,
+            36.34501212400005
+          ],
+          [
+            117.4584966000001,
+            36.345134794000046
+          ],
+          [
+            117.45897943700004,
+            36.345144807000054
+          ],
+          [
+            117.45900397800006,
+            36.345145316000071
+          ],
+          [
+            117.45964035100008,
+            36.345156951000035
+          ],
+          [
+            117.4602767240001,
+            36.345168582000042
+          ],
+          [
+            117.46030462200008,
+            36.345169092000049
+          ],
+          [
+            117.46030855800007,
+            36.345169164000026
+          ],
+          [
+            117.46032513300008,
+            36.345128331000069
+          ],
+          [
+            117.46034429000008,
+            36.345130417000064
+          ],
+          [
+            117.46110148100001,
+            36.345212833000062
+          ],
+          [
+            117.46109641600003,
+            36.345333507000078
+          ],
+          [
+            117.46109399500006,
+            36.345391169000038
+          ],
+          [
+            117.46127484800002,
+            36.345388718000038
+          ],
+          [
+            117.46160530200007,
+            36.345384239000055
+          ],
+          [
+            117.46180352300007,
+            36.34538155100006
+          ],
+          [
+            117.46234389000006,
+            36.345386341000051
+          ],
+          [
+            117.46245452400001,
+            36.345385517000068
+          ],
+          [
+            117.46247294200009,
+            36.345386278000035
+          ],
+          [
+            117.46264578900002,
+            36.345393428000079
+          ],
+          [
+            117.46269909000011,
+            36.345383155000036
+          ],
+          [
+            117.46270212000002,
+            36.345293986000058
+          ],
+          [
+            117.46275325900001,
+            36.34528309500007
+          ],
+          [
+            117.46281665400011,
+            36.345269595000048
+          ],
+          [
+            117.46309550900003,
+            36.345610156000077
+          ],
+          [
+            117.46337436700003,
+            36.345950717000051
+          ],
+          [
+            117.46337528900006,
+            36.345951844000069
+          ],
+          [
+            117.46385632500005,
+            36.346140879000075
+          ],
+          [
+            117.46391058400002,
+            36.346162201000027
+          ],
+          [
+            117.46438113700003,
+            36.346347115000071
+          ],
+          [
+            117.46438234400011,
+            36.346347589000061
+          ],
+          [
+            117.46477581800002,
+            36.346031018000076
+          ],
+          [
+            117.46516928800008,
+            36.345714445000056
+          ],
+          [
+            117.46556275600005,
+            36.345397870000056
+          ],
+          [
+            117.46557856800007,
+            36.345393048000062
+          ],
+          [
+            117.46581881200007,
+            36.345500437000055
+          ],
+          [
+            117.46585452800002,
+            36.345516409000027
+          ],
+          [
+            117.46586505200003,
+            36.345521116000043
+          ],
+          [
+            117.46587860300008,
+            36.345527176000076
+          ],
+          [
+            117.46589227800007,
+            36.345533291000038
+          ],
+          [
+            117.4659041220001,
+            36.345538591000036
+          ],
+          [
+            117.46590680200006,
+            36.345539789000043
+          ],
+          [
+            117.46592782000005,
+            36.345549187000074
+          ],
+          [
+            117.46596264100003,
+            36.345564725000031
+          ],
+          [
+            117.46614214800002,
+            36.345692671000052
+          ],
+          [
+            117.46623535800006,
+            36.345759108000038
+          ],
+          [
+            117.4662653900001,
+            36.345768264000071
+          ],
+          [
+            117.4663333100001,
+            36.345788971000047
+          ],
+          [
+            117.46637934600005,
+            36.34580300500005
+          ],
+          [
+            117.46658658000001,
+            36.345819297000048
+          ],
+          [
+            117.46682335800006,
+            36.345954984000059
+          ],
+          [
+            117.46687046800002,
+            36.345981980000033
+          ],
+          [
+            117.4669346610001,
+            36.346030093000024
+          ],
+          [
+            117.46694988100001,
+            36.346041500000069
+          ],
+          [
+            117.46694999500005,
+            36.346041587000059
+          ],
+          [
+            117.46696925100002,
+            36.34605601800007
+          ],
+          [
+            117.46697632100006,
+            36.34605846900007
+          ],
+          [
+            117.46698741600005,
+            36.34606231500004
+          ],
+          [
+            117.4669955600001,
+            36.346065138000029
+          ],
+          [
+            117.46721084400008,
+            36.346139764000043
+          ],
+          [
+            117.46746204600004,
+            36.346238870000036
+          ],
+          [
+            117.46746246100008,
+            36.346239764000075
+          ],
+          [
+            117.46753692800007,
+            36.346400366000069
+          ],
+          [
+            117.46757131000004,
+            36.346474516000058
+          ],
+          [
+            117.46757197800002,
+            36.346475185000031
+          ],
+          [
+            117.46776888900001,
+            36.34644693000007
+          ],
+          [
+            117.46796198800007,
+            36.346402008000041
+          ],
+          [
+            117.46823511400009,
+            36.346359481000036
+          ],
+          [
+            117.46827551100012,
+            36.346353191000048
+          ],
+          [
+            117.46828841200011,
+            36.346356595000032
+          ],
+          [
+            117.46829967000008,
+            36.346359566000046
+          ],
+          [
+            117.46833296000011,
+            36.346368351000024
+          ],
+          [
+            117.46833383300009,
+            36.346390989000042
+          ],
+          [
+            117.46841195900004,
+            36.34638912500003
+          ],
+          [
+            117.46856922400002,
+            36.346385595000072
+          ],
+          [
+            117.4687973340001,
+            36.346382435000066
+          ],
+          [
+            117.46882351000011,
+            36.346391521000044
+          ],
+          [
+            117.46884267400003,
+            36.346444624000071
+          ],
+          [
+            117.46886947300004,
+            36.346468704000074
+          ],
+          [
+            117.46885832900011,
+            36.34648780200007
+          ],
+          [
+            117.46886598200001,
+            36.346509008000055
+          ],
+          [
+            117.46892817100002,
+            36.346953126000074
+          ],
+          [
+            117.46892330200001,
+            36.346984576000068
+          ],
+          [
+            117.46886234800002,
+            36.347377838000057
+          ],
+          [
+            117.46881140200003,
+            36.347872614000039
+          ],
+          [
+            117.46880950400009,
+            36.347927859000038
+          ],
+          [
+            117.46879579400002,
+            36.348025367000048
+          ],
+          [
+            117.46876504400007,
+            36.348244064000028
+          ],
+          [
+            117.46876037000004,
+            36.348299736000058
+          ],
+          [
+            117.4687332960001,
+            36.348622208000052
+          ],
+          [
+            117.46871453400001,
+            36.348792486000036
+          ],
+          [
+            117.46871322000004,
+            36.348804401000052
+          ],
+          [
+            117.46871227300005,
+            36.348824295000043
+          ],
+          [
+            117.46941258700008,
+            36.348797156000046
+          ],
+          [
+            117.46987020600011,
+            36.348779419000039
+          ],
+          [
+            117.47043078900003,
+            36.34875769000007
+          ],
+          [
+            117.47078255300005,
+            36.348759858000051
+          ],
+          [
+            117.47093314200004,
+            36.348752472000058
+          ],
+          [
+            117.47109142600004,
+            36.348783825000055
+          ],
+          [
+            117.47113187100001,
+            36.348787644000026
+          ],
+          [
+            117.47113016700007,
+            36.348777128000052
+          ],
+          [
+            117.47130399500008,
+            36.348746506000055
+          ],
+          [
+            117.47133810800005,
+            36.348740497000051
+          ],
+          [
+            117.47134270200002,
+            36.348740875000033
+          ],
+          [
+            117.47181559500007,
+            36.348779770000078
+          ],
+          [
+            117.47180383900002,
+            36.348843312000042
+          ],
+          [
+            117.47167458200011,
+            36.348980714000049
+          ],
+          [
+            117.47165239300011,
+            36.349066874000073
+          ],
+          [
+            117.47162863900007,
+            36.349159109000027
+          ],
+          [
+            117.47155074300008,
+            36.349461575000078
+          ],
+          [
+            117.4715598030001,
+            36.349486759000058
+          ],
+          [
+            117.47156647400004,
+            36.349505308000062
+          ],
+          [
+            117.47156820000009,
+            36.349510106000025
+          ],
+          [
+            117.4715687480001,
+            36.349511628000073
+          ],
+          [
+            117.47157810600004,
+            36.349537643000076
+          ],
+          [
+            117.47158082800001,
+            36.349545212000066
+          ],
+          [
+            117.47158451300004,
+            36.349555455000029
+          ],
+          [
+            117.47159317800003,
+            36.34957954500004
+          ],
+          [
+            117.47159293800007,
+            36.349588906000065
+          ],
+          [
+            117.47159268500002,
+            36.349598765000053
+          ],
+          [
+            117.47159101800003,
+            36.34966365300005
+          ],
+          [
+            117.47158974800004,
+            36.349713118000068
+          ],
+          [
+            117.47160914800008,
+            36.349802419000071
+          ],
+          [
+            117.47161762300004,
+            36.349841427000058
+          ],
+          [
+            117.47162022500004,
+            36.349853405000033
+          ],
+          [
+            117.47163322400002,
+            36.349864396000044
+          ],
+          [
+            117.4718143560001,
+            36.350131078000061
+          ],
+          [
+            117.47196041500001,
+            36.350128829000028
+          ],
+          [
+            117.4721452770001,
+            36.350125983000055
+          ],
+          [
+            117.4721469540001,
+            36.35033512800004
+          ],
+          [
+            117.47215236300008,
+            36.350344449000033
+          ],
+          [
+            117.47240743800012,
+            36.350521522000065
+          ],
+          [
+            117.47239988000001,
+            36.350546206000047
+          ],
+          [
+            117.47240405500008,
+            36.350549547000071
+          ],
+          [
+            117.47237611000003,
+            36.350628407000045
+          ],
+          [
+            117.47242083000003,
+            36.350638074000074
+          ],
+          [
+            117.47258756800011,
+            36.350683351000043
+          ],
+          [
+            117.47240986500003,
+            36.351254418000053
+          ],
+          [
+            117.47261540300008,
+            36.351258173000076
+          ],
+          [
+            117.47253377200002,
+            36.351832781000041
+          ],
+          [
+            117.47281709400011,
+            36.351837857000078
+          ],
+          [
+            117.47281813500001,
+            36.351851134000071
+          ],
+          [
+            117.47283436900011,
+            36.351852144000077
+          ],
+          [
+            117.47285675300009,
+            36.352196582000033
+          ],
+          [
+            117.47287913700006,
+            36.352541020000047
+          ],
+          [
+            117.47336308200011,
+            36.352529570000058
+          ]
+        ]
+      },
+      "properties" : {
+        "OBJECTID_1" : 1,
+        "FID_寨里" : 0,
+        "OBJECTID" : 736,
+        "BSM" : "370116124000000707",
+        "YSDM" : "1000600400",
+        "ZLDWDM" : "3701161070180000000",
+        "ZLDWMC" : "后裴王村",
+        "DCMJ" : 736632.79000000004,
+        "JSMJ" : 736632.79000000004,
+        "MSSM" : "00",
+        "HDMC" : " ",
+        "BZ" : " ",
+        "SHAPE_Leng" : 8630.5993617999993,
+        "Shape_Length" : 0.15936124929188195
+      }
+    }
+  ]
+}

BIN
public/jt3dSDK/imgs/wallmaterial/color.png


BIN
public/jt3dSDK/imgs/wallmaterial/jsx.png


BIN
public/jt3dSDK/imgs/wallmaterial/wl.png


File diff suppressed because it is too large
+ 0 - 0
public/jt3dSDK/jt3d.es.js


+ 1 - 0
src/store/index.ts

@@ -22,6 +22,7 @@ export const Store = defineStore({
 			keepAlives: ['Map3DMain'],//控制加载缓存页面
 			userport: '',
 			jt3d: {},//地图实例
+			siqingNUM:1,//控制四情按钮样式
 		}
 	},
 	getters: {

+ 11 - 6
src/views/Main/components/map.vue

@@ -142,12 +142,15 @@
 			 * 添加镇街边界线——精灵线
 			 */
 			addBoundaryLine(jt3d) {
-				jt3d.PolylineObject.drawPolylineByGeoJson(map_xzqh_zj, {
-					width: 5,
-					color: '#04FFFF',
-					isImageAlpha: true, //用图片自带颜色
-					duration: 3000,
-					imgUrl: "/jt3dSDK/imgs/polylinematerial/spriteline1.png"
+				// jt3d.PolylineObject.drawPolylineByGeoJson(map_xzqh_zj, {
+				// 	width: 5,
+				// 	color: '#04FFFF',
+				// 	isImageAlpha: true, //用图片自带颜色
+				// 	duration: 3000,
+				// 	imgUrl: "/jt3dSDK/imgs/polylinematerial/spriteline1.png"
+				// });
+				jt3d.WallObject.drawWallByGeoJson('/datafiles/fanweixian2.json').then(res => {
+				
 				});
 			},
 
@@ -269,6 +272,8 @@
 
 				jt3d.TrackRoam = new this.jt3dSDK.TrackRoam(jt3d._viewer);
 				jt3d.PolylineObject = new this.jt3dSDK.PolylineObject(jt3d._viewer);
+				jt3d.WallObject = new this.jt3dSDK.WallObject(jt3d._viewer);
+				jt3d.CircleObject = new this.jt3dSDK.CircleObject(jt3d._viewer);
 				jt3d.PointObject = new this.jt3dSDK.PointObject(jt3d._viewer);
 				jt3d.PolygonObject = new this.jt3dSDK.PolygonObject(jt3d._viewer);
 

+ 3 - 254
src/views/Map3d/Map3DMain.vue

@@ -3,9 +3,9 @@
 	 * 业务组件,在components中进行注册
 	 */
 	//组件异步加载
-	import {
-		defineAsyncComponent
-	} from 'vue';
+	// import {
+	// 	defineAsyncComponent
+	// } from 'vue';
 	import ggsbtj from "./components/ggsbtj.vue";
 	import ysltj from "./components/ysltj.vue";
 	import sbyxjc from "./components/sbyxjc.vue";
@@ -102,263 +102,12 @@
 		 */
 		methods: {
 
-			/**
-			 * 关闭分屏对比
-			 */
-			closeViewerSplitScreen() {
-				this.$refs._refViewerSplitScreen.removeSplitScreen();
-			},
-
-			/**
-			 * 关闭卷帘对比
-			 */
-			closeImageLayerSplit() {
-				this.$refs._refImageLayerSplit.removeSplitLayer();
-			},
-
-			/**
-			 * 关闭地形分析弹窗
-			 */
-			closeAnalysisTerrain() {
-				//工具初始化
-				this.$refs._refAnalysisTerrain.init();
-				//还原左键单击事件
-				this.$refs.refMap3d.clickEntity(jt3d);
-				window["viewer"].scene.screenSpaceCameraController.enableCollisionDetection = true; //相机与地形的碰撞检测
-			},
-
-			/**
-			 * 关闭地区导航
-			 */
-			closeMapNavigate() {
-				this.$refs._refmapNavigate.remove();
-			},
-
-			/**
-			 * 清除测量结果
-			 */
-			closeMeasure() {
-				this.$refs._refMeasure.clearMeasurementData();
-			},
-
-			/**
-			 * 清除查询结果
-			 */
-			closeQuery() {
-				this.$refs._refQueryGraphics.clearQuery();
-			},
-
-			/**
-			 * 关闭查询结果
-			 */
-			closeQueryResult() {
-				//清除高亮显示
-				let list = jt3d._dataSources.getByName("单击高亮显示")
-				list.forEach(res => {
-					jt3d._dataSources.remove(res)
-				})
-
-				//清除定位样式
-				if (jt3d.LocateUtil._locationEntity) {
-					window["viewer"].entities.remove(jt3d.LocateUtil._locationEntity);
-				}
-			},
-
-			/**
-			 * 关闭剖面分析结果
-			 */
-			closeDrawerSectionAnalysis() {
-				this.$refs.refDrawerSectionAnalysis.drawerVisible = true;
-
-				if (tipEntity) {
-					window.viewer.entities.remove(tipEntity);
-					tipEntity = undefined;
-				}
-				jt3d.SpatialAnalysis.Profile.removeProfileAnalysis();
-				jt3d.DrawTools.Clear();
-
-				//还原左键单击事件
-				this.$refs.refMap3d.clickEntity(jt3d);
-			},
-
-			/**
-			 * 构建剖面分析结果chart
-			 */
-			initEchartsData(sectionAnalysisData) {
-				if (tipEntity) {
-					window.viewer.entities.remove(tipEntity);
-					tipEntity = undefined;
-				}
-				// jt3d.SpatialAnalysis.Profile.removeProfileAnalysis();
-
-				let datas = [],
-					coords = [];
-				let pointsData = sectionAnalysisData;
-
-				let maxDistance = pointsData[pointsData.length - 1].distance;
-				let xAixMax = Math.ceil(maxDistance);
-				for (let index = 0; index < pointsData.length; index++) {
-					let element = pointsData[index];
-					let curData = [
-						parseFloat(element.distance.toFixed(2)),
-						parseFloat(element.position.height.toFixed(2))
-					];
-					datas.push(curData);
-					let curCoords = [element.position.lon, element.position.lat];
-					coords.push(curCoords);
-				}
-
-				let ChartTestData = {
-					tooltip: {
-						show: true,
-						trigger: 'item',
-						formatter(params) {
-							let xy = coords[params.dataIndex];
-							let tipData = params["data"];
-							if (params.name === "Max" || params.name === "Min") {
-								tipData = params["data"].coord;
-							}
-
-							if (!tipEntity) {
-								tipEntity = window.viewer.entities.add({
-									position: Cesium.Cartesian3.fromDegrees(xy[0], xy[1], Number(tipData[1])),
-									billboard: {
-										image: '/jt3dSDK/imgs/point/point.png',
-										horizontalOrigin: Cesium.HorizontalOrigin.center,
-										verticalOrigin: Cesium.VerticalOrigin.bottom,
-										scale: 1,
-										pixelOffset: new Cesium.Cartesian2(0, 0),
-										disableDepthTestDistance: Number.POSITIVE_INFINITY,
-									},
-								});
-							} else {
-								tipEntity.position = Cesium.Cartesian3.fromDegrees(xy[0], xy[1], Number(tipData[1]));
-							}
-
-							//定位到点
-							// jt3d.LocateUtil.flyToPoint({
-							// 	longitude: xy[0],
-							// 	latitude: xy[1],
-							// 	height: Number(tipData[1])
-							// });
-
-							return "距离:" + tipData[0] + "m<br>" + "高度:" + tipData[1] + "m<br>" + "坐标:" + xy[0].toFixed(
-								5) + "," + xy[1].toFixed(5);
-						}
-					},
-					grid: {
-						bottom: '10%',
-						left: '5%',
-						right: '5%',
-					},
-					xAxis: {
-						type: "value",
-						max: xAixMax,
-						axisLabel: { //文字属性
-							textStyle: {
-								color: 'rgb(216 240 255)'
-							},
-							formatter: '{value} m'
-						},
-						axisLine: { //轴线属性
-							lineStyle: {
-								color: 'rgb(216 240 255)',
-								width: 2
-							},
-						},
-						splitLine: { //分割线属性
-							lineStyle: {
-								type: 'dashed'
-							}
-						}
-					},
-					yAxis: {
-						type: "value",
-						axisLabel: { //文字属性
-							textStyle: {
-								color: 'rgb(216 240 255)'
-							},
-							formatter: '{value} m'
-						},
-						axisLine: { //轴线属性
-							lineStyle: {
-								color: 'rgb(216 240 255)',
-								width: 2
-							},
-						},
-						splitLine: { //分割线属性
-							lineStyle: {
-								type: 'dashed'
-							}
-						}
-					},
-					series: [{
-						type: "line",
-						data: datas,
-						markPoint: {
-							symbol: 'path://m 0,0 h 48 v 20 h -30 l -6,10 l -6,-10 h -6 z', // 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', path://m 0,0 h 48 v 20 h -30 l -6,10 l -6,-10 h -6 z,  path://m 0,0 h 48 v 20 h -34 l -6,10 l -6,-10 h -2 z
-							symbolSize: [60, 60], // 容器大小
-							symbolOffset: ['34%', '-50%'], //位置偏移
-							symbolKeepAspect: true, // 如果 symbol 是 path:// 的形式,是否在缩放时保持该图形的长宽比。
-							label: {
-								textStyle: {
-									color: 'rgb(216,240,255)'
-								},
-								position: "insideTop",
-								distance: 7,
-							},
-							data: [{
-									type: 'max',
-									name: '最大值',
-									itemStyle: { //背景色
-										color: 'rgb(255, 70, 131)',
-									}
-								},
-								{
-									type: 'min',
-									name: '最小值',
-									itemStyle: { //背景色
-										color: 'rgb(255, 70, 131)',
-									}
-								}
-							]
-						},
-						itemStyle: {
-							color: 'rgba(85,254,139,1)',
-						},
-						areaStyle: {
-							color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-									offset: 0,
-									color: 'rgba(85,254,139,0.8)'
-								},
-								{
-									offset: 1,
-									color: 'rgba(14,245,210,0.2)'
-								}
-							])
-						},
-					}]
-				};
-				this.ChartTestData = ChartTestData;
-			},
-
-			/**
-			 * 地图初始化
-			 * @param {Object} map
-			 */
-			// jtMap3DOnload(map) {
-			// 	jt3d = map;
-			// 	this.mapLoaded = true;
-			// },
-
-
 
 		},
 		created() {
 			store.markID = ''
 			store.queryMapTables = []
 			jt3d = store.jt3d
-			console.log('地图3d', jt3d)
 		},
 		mounted() {
 

+ 0 - 779
src/views/Map3d/components/ImageLayerSplit.vue

@@ -1,779 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		inject
-	} from "vue";
-	import {
-		Store
-	} from '@/store/index'
-	store = Store()
-	import {
-		deepTree
-	} from "@/utils/deepTree.js";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-ImageLayerSplit">
-		<div class="_left">
-			<div style="line-height: 30rem;float: left;">左侧图层:</div>
-			<el-tree-select v-model="leftValue" :data="leftData" :render-after-expand="true" @change="handleClickLeft" style="width: 160rem; float: left;" />
-		</div>
-		<div class="_right">
-			<div style="line-height: 30rem;float: left;">右侧图层:</div>
-			<el-tree-select v-model="rightValue" :data="rightData" :render-after-expand="true" @change="handleClickRight" style="width: 160rem; float: left;" />
-		</div>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-	let store = undefined;
-
-	let earthAtLeft = undefined;
-	let earthAtRight = undefined;
-
-	//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
-	//例如:import 《组件名称》 from '《组件路径》';
-
-	export default {
-		//import引入的组件需要注入到对象中才能使用
-		components: {},
-
-		//这里存放数据
-		data() {
-
-			return {
-				leftValue: {},
-				leftData: [],
-				rightValue: {},
-				rightData: [],
-			};
-		},
-
-		//监听属性 类似于data概念
-		computed: {},
-
-		//监控data中的数据变化
-		watch: {},
-
-		//方法集合
-		methods: {
-			/**
-			 * 左侧图层控制
-			 * @param {Object} data
-			 */
-			handleClickLeft(data) {
-				let _self = this;
-
-				let _serviceId = "service_" + data.layercode + data.layerorder;
-				let layername = data.layername;
-				let layertype = data.layertype;
-
-				//透明度
-				let _opacity = null;
-				if (data.opacity == null) {
-					_opacity = 1;
-				} else {
-					_opacity = Number(data.opacity);
-					data.opacity = _opacity;
-
-					if (_opacity == 0) {
-						_opacity = 1;
-					}
-				}
-
-				//参数集
-				let parameterset = data.parameterset;
-				if (data.parameterset instanceof Object) {
-					parameterset = data.parameterset;
-				} else if (data.parameterset != "" && data.parameterset != null && data.parameterset != undefined) {
-					parameterset = JSON.parse(data.parameterset);
-				}
-
-				//设置参数
-				let _options = {
-					id: _serviceId,
-					alpha: _opacity
-				}
-
-				this.removeSplitLayerLeft();
-
-				switch (data.loadtype) {
-					case "UrlTemplateImageryProvider": //加载URL模板服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.CRS) { //坐标系
-								_options.CRS = parameterset.CRS;
-							}
-							if (parameterset.minimumLevel) { //最小层级
-								_options.minimumLevel = parameterset.minimumLevel;
-							}
-							if (parameterset.maximumLevel) { //最大层级
-								_options.maximumLevel = parameterset.maximumLevel;
-							}
-						}
-
-						jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
-							earthAtLeft = window[_serviceId];
-							earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
-						});
-						break;
-					case "WebMapTileServiceImageryProvider": // WMTS地图服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.layers) { //WMTS请求的层名
-								_options.layers = parameterset.layers;
-
-								if (parameterset.style) { //WMTS请求的样式名
-									_options.style = parameterset.style;
-
-									if (parameterset.tileMatrixSetID) { //用于WMTS请求的TileMatrixSet的标识符
-										_options.tileMatrixSetID = parameterset.tileMatrixSetID;
-
-										if (parameterset.minimumLevel) { //最小层级
-											_options.minimumLevel = parameterset.minimumLevel;
-										}
-										if (parameterset.maximumLevel) { //最大层级
-											_options.maximumLevel = parameterset.maximumLevel;
-										}
-
-										jt3d.layer.addWebMapTileService(_options, function(serviceId) {
-											earthAtLeft = window[_serviceId];
-											earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
-										});
-
-									} else {
-										ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
-									}
-
-								} else {
-									ElMessage("请检测图层表parameterset字段是否设置style");
-								}
-
-							} else {
-								ElMessage("请检测图层表parameterset字段是否设置layers");
-							}
-						} else {
-							ElMessage("请检测图层表parameterset字段是否设置layers,style,tileMatrixSetID");
-						}
-						break;
-					case "WebMapServiceImageryProvider": //WMS地图服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.layers) { //WMTS请求的层名
-								_options.layers = parameterset.layers;
-
-								if (parameterset.minimumLevel) { //最小层级
-									_options.minimumLevel = parameterset.minimumLevel;
-								}
-								if (parameterset.maximumLevel) { //最大层级
-									_options.maximumLevel = parameterset.maximumLevel;
-								}
-
-								jt3d.layer.addWebMapService(_options, function(serviceId) {
-									earthAtLeft = window[_serviceId];
-									earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
-								});
-							} else {
-								ElMessage("请检测图层表parameterset字段是否设置layers");
-							}
-						} else {
-							ElMessage("请检测图层表parameterset字段是否设置layers");
-						}
-
-						break;
-					case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.layers) {
-								_options.layers = parameterset.layers;
-							}
-						}
-
-						//加载服务
-						jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
-							earthAtLeft = window[_serviceId];
-							earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
-						})
-
-						break;
-					case "TileMapServiceImageryProvider": // 2.5维度地图
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.minimumLevel) { //最小层级
-								_options.minimumLevel = parameterset.minimumLevel;
-							}
-							if (parameterset.maximumLevel) { //最大层级
-								_options.maximumLevel = parameterset.maximumLevel;
-							}
-						}
-
-						jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
-							earthAtLeft = window[_serviceId];
-							earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
-						});
-
-						break;
-					case "Cesium3DTileset": //加载3DTileset地图服务--实景
-
-						let Tiles = [];
-
-						let datasource = data.datasource.split("#")
-						console.log('datasource', datasource)
-
-						//加载实景
-						datasource.forEach((res, index) => {
-							//设置参数
-							let _options = {
-								id: _serviceId + index,
-								url: res,
-							}
-							if (parameterset) {
-								if (parameterset.height) {
-									_options.height = parameterset.height;
-								}
-								if (parameterset.alpha) {
-									_options.alpha = parameterset.alpha;
-								}
-							}
-
-							jt3d.layer.addCesium3DTileset(_options, function(serviceId) {
-
-								window[_serviceId + index] = window[serviceId];
-
-								window[_serviceId + index].splitDirection = Cesium.SplitDirection.LEFT;
-
-								Tiles.push(window[_serviceId + index]);
-							});
-
-							if (index === (datasource.length - 1)) {
-								earthAtLeft = Tiles;
-							}
-						})
-						break;
-					case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.color) {
-								_options.color = parameterset.color;
-							}
-						}
-
-						//加载白膜
-						jt3d.layer.addCesium3DTilesetBm(_options, function(serviceId) {
-							earthAtLeft = window[_serviceId];
-							earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
-						});
-
-						break;
-					default:
-						break;
-				}
-			},
-			/**
-			 * 
-			 * 
-			 * 右侧图层控制
-			 * @param {Object} data
-			 */
-			handleClickRight(data) {
-				let _self = this;
-
-				let _serviceId = "service_" + data.layercode + data.layerorder;
-				let layername = data.layername;
-				let layertype = data.layertype;
-
-				//透明度
-				let _opacity = null;
-				if (data.opacity == null) {
-					_opacity = 1;
-				} else {
-					_opacity = Number(data.opacity);
-					data.opacity = _opacity;
-
-					if (_opacity == 0) {
-						_opacity = 1;
-					}
-				}
-
-				//参数集
-				let parameterset = data.parameterset;
-				if (data.parameterset instanceof Object) {
-					parameterset = data.parameterset;
-				} else if (data.parameterset != "" && data.parameterset != null && data.parameterset != undefined) {
-					parameterset = JSON.parse(data.parameterset);
-				}
-
-				//设置参数
-				let _options = {
-					id: _serviceId,
-					alpha: _opacity
-				}
-
-				this.removeSplitLayerRight();
-				switch (data.loadtype) {
-					case "UrlTemplateImageryProvider": //加载URL模板服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.CRS) { //坐标系
-								_options.CRS = parameterset.CRS;
-							}
-							if (parameterset.minimumLevel) { //最小层级
-								_options.minimumLevel = parameterset.minimumLevel;
-							}
-							if (parameterset.maximumLevel) { //最大层级
-								_options.maximumLevel = parameterset.maximumLevel;
-							}
-						}
-
-						jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
-							//设置透明度
-							jt3d.layer.setLayersStyle({
-								serviceId: serviceId,
-								alpha: _opacity
-							});
-
-							earthAtRight = window[_serviceId];
-							earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
-						});
-						break;
-					case "WebMapTileServiceImageryProvider": // WMTS地图服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.layers) { //WMTS请求的层名
-								_options.layers = parameterset.layers;
-
-								if (parameterset.style) { //WMTS请求的样式名
-									_options.style = parameterset.style;
-
-									if (parameterset.tileMatrixSetID) { //用于WMTS请求的TileMatrixSet的标识符
-										_options.tileMatrixSetID = parameterset.tileMatrixSetID;
-
-										if (parameterset.minimumLevel) { //最小层级
-											_options.minimumLevel = parameterset.minimumLevel;
-										}
-										if (parameterset.maximumLevel) { //最大层级
-											_options.maximumLevel = parameterset.maximumLevel;
-										}
-
-										jt3d.layer.addWebMapTileService(_options, function(serviceId) {
-											//设置透明度
-											jt3d.layer.setLayersStyle({
-												serviceId: serviceId,
-												alpha: _opacity
-											});
-
-											earthAtRight = window[_serviceId];
-											earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
-										});
-
-									} else {
-										ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
-									}
-
-								} else {
-									ElMessage("请检测图层表parameterset字段是否设置style");
-								}
-
-							} else {
-								ElMessage("请检测图层表parameterset字段是否设置layers");
-							}
-						} else {
-							ElMessage("请检测图层表parameterset字段是否设置layers,style,tileMatrixSetID");
-						}
-						break;
-					case "WebMapServiceImageryProvider": //WMS地图服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.layers) { //WMTS请求的层名
-								_options.layers = parameterset.layers;
-
-								if (parameterset.minimumLevel) { //最小层级
-									_options.minimumLevel = parameterset.minimumLevel;
-								}
-								if (parameterset.maximumLevel) { //最大层级
-									_options.maximumLevel = parameterset.maximumLevel;
-								}
-
-								jt3d.layer.addWebMapService(_options, function(serviceId) {
-									//设置透明度
-									jt3d.layer.setLayersStyle({
-										serviceId: serviceId,
-										alpha: _opacity
-									});
-
-									earthAtRight = window[_serviceId];
-									earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
-								});
-							} else {
-								ElMessage("请检测图层表parameterset字段是否设置layers");
-							}
-						} else {
-							ElMessage("请检测图层表parameterset字段是否设置layers");
-						}
-
-						break;
-					case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.layers) {
-								_options.layers = parameterset.layers;
-							}
-						}
-
-						//加载服务
-						jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
-							//设置透明度
-							jt3d.layer.setLayersStyle({
-								serviceId: serviceId,
-								alpha: _opacity
-							});
-
-							earthAtRight = window[_serviceId];
-							earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
-						})
-
-						break;
-					case "TileMapServiceImageryProvider": // 2.5维度地图
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.minimumLevel) { //最小层级
-								_options.minimumLevel = parameterset.minimumLevel;
-							}
-							if (parameterset.maximumLevel) { //最大层级
-								_options.maximumLevel = parameterset.maximumLevel;
-							}
-						}
-
-						jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
-							//设置透明度
-							jt3d.layer.setLayersStyle({
-								serviceId: serviceId,
-								alpha: _opacity
-							});
-
-							earthAtRight = window[_serviceId];
-							earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
-						});
-
-						break;
-					case "Cesium3DTileset": //加载3DTileset地图服务--实景
-
-						let Tiles = [];
-
-						let datasource = data.datasource.split("#")
-						console.log('datasource', datasource)
-
-						//加载实景
-						datasource.forEach((res, index) => {
-							//设置参数
-							let _options = {
-								id: _serviceId + index,
-								url: res,
-							}
-							if (parameterset) {
-								if (parameterset.height) {
-									_options.height = parameterset.height;
-								}
-								if (parameterset.alpha) {
-									_options.alpha = parameterset.alpha;
-								}
-							}
-
-							jt3d.layer.addCesium3DTileset(_options, function(serviceId) {
-
-								window[_serviceId + index] = window[serviceId];
-
-								window[_serviceId + index].splitDirection = Cesium.SplitDirection.RIGHT;
-
-								Tiles.push(window[_serviceId + index]);
-							});
-
-							if (index === (datasource.length - 1)) {
-								earthAtRight = Tiles;
-							}
-						})
-						break;
-					case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
-
-						//设置参数
-						_options.url = data.datasource;
-						if (parameterset) {
-							if (parameterset.color) {
-								_options.color = parameterset.color;
-							}
-						}
-
-						//加载白膜
-						jt3d.layer.addCesium3DTilesetBm(_options, function(serviceId) {
-							earthAtRight = window[_serviceId];
-							earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
-						});
-
-						break;
-					default:
-						break;
-				}
-			},
-
-			/**
-			 * 卷帘对比初始化
-			 */
-			initSplitLayer() {
-				let _self = this;
-				this.viewer = jt3d._viewer;
-
-				let sliderDiv = document.getElementById("image_slider");
-				if (sliderDiv == null) {
-					//创建画布
-					sliderDiv = document.createElement('div');
-					sliderDiv.id = "image_slider";
-					sliderDiv.style.position = "absolute";
-					sliderDiv.style.left = "50%";
-					sliderDiv.style.top = "70rem";
-					sliderDiv.style.backgroundColor = "#d3d3d3";
-					sliderDiv.style.width = "5rem";
-					sliderDiv.style.height = "calc(100% - 70rem)";
-					sliderDiv.style.zIndex = "9999";
-
-					sliderDiv.onmouseover = function() {
-						//设置其背景颜色为黄色
-						this.style.cursor = "ew-resize";
-					};
-
-					/* 加入到页面 */
-					document.body.appendChild(sliderDiv);
-				}
-
-				// 设置图像拆分位置
-				viewer.scene.splitPosition = sliderDiv.offsetLeft / sliderDiv.parentElement.offsetWidth; //确定分割点位置,占据父级容器的比例
-
-				if (this.handler) {
-					this.handler.destroy();
-					this.handler = null;
-				}
-				//处理用户输入事件。可以添加自定义功能以在用户输入时执行;参数为任意
-				this.handler = new Cesium.ScreenSpaceEventHandler(sliderDiv);
-				var moveActive = false;
-
-				// 计算拆分
-				function move(movement) {
-					if (!moveActive) {
-						return;
-					}
-
-					//捕获滑动停止的位置
-					var relativeOffset = movement.endPosition.x;
-					var splitPosition = (sliderDiv.offsetLeft + relativeOffset) / sliderDiv.parentElement.offsetWidth;
-					sliderDiv.style.left = `${100.0 * splitPosition}%`;
-					viewer.scene.splitPosition = splitPosition;
-				}
-
-				//对分割条的操作
-				this.handler.setInputAction(function() {
-					moveActive = true;
-				}, Cesium.ScreenSpaceEventType.LEFT_DOWN);
-				this.handler.setInputAction(function() {
-					moveActive = true;
-				}, Cesium.ScreenSpaceEventType.PINCH_START);
-
-				this.handler.setInputAction(move, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
-				this.handler.setInputAction(move, Cesium.ScreenSpaceEventType.PINCH_MOVE);
-
-				this.handler.setInputAction(function() {
-					moveActive = false;
-				}, Cesium.ScreenSpaceEventType.LEFT_UP);
-				this.handler.setInputAction(function() {
-					moveActive = false;
-				}, Cesium.ScreenSpaceEventType.PINCH_END);
-
-				_self.handleClickLeft(_self.leftValue);
-				_self.handleClickRight(_self.rightValue);
-			},
-
-			/**
-			 * 移除卷帘
-			 */
-			removeSplitLayer() {
-				let sliderDiv = document.getElementById("image_slider");
-				if (sliderDiv) {
-					document.body.removeChild(sliderDiv);
-				}
-				this.removeSplitLayerLeft();
-				this.removeSplitLayerRight();
-
-				if (earthAtLeft) {
-					earthAtLeft.splitDirection = Cesium.SplitDirection.NONE;
-				}
-
-				if (earthAtRight) {
-					earthAtRight.splitDirection = Cesium.SplitDirection.NONE;
-				}
-			},
-			/**
-			 * 移除左侧图层
-			 */
-			removeSplitLayerLeft() {
-				if (earthAtLeft) {
-					if (earthAtLeft instanceof Cesium.ImageryLayer) {
-						jt3d._viewer.imageryLayers.remove(earthAtLeft);
-					}
-
-					if (earthAtLeft instanceof Cesium.Cesium3DTileset) {
-						jt3d._viewer.scene.primitives.remove(earthAtLeft);
-					}
-
-					if (earthAtLeft instanceof Array) {
-						earthAtLeft.forEach((res, index) => {
-							jt3d._viewer.scene.primitives.remove(res);
-						})
-					}
-				}
-			},
-			/**
-			 * 移除右侧图层
-			 */
-			removeSplitLayerRight() {
-				if (earthAtRight) {
-					if (earthAtRight instanceof Cesium.ImageryLayer) {
-						jt3d._viewer.imageryLayers.remove(earthAtRight);
-					}
-
-					if (earthAtRight instanceof Cesium.Cesium3DTileset) {
-						jt3d._viewer.scene.primitives.remove(earthAtRight);
-					}
-
-					if (earthAtRight instanceof Array) {
-						earthAtRight.forEach((res, index) => {
-							jt3d._viewer.scene.primitives.remove(res);
-						})
-					}
-				}
-			},
-		},
-
-		//生命周期 - 创建完成(可以访问当前this实例)
-		created() {},
-
-		//生命周期 - 挂载完成(可以访问DOM元素)
-		mounted() {
-			//在这获取图层列表
-			let _self = this;
-			//权限查询条件语句
-			let atlasLayersSqlWhere = undefined;
-
-			//获取地图图集id
-			let roleId = store.roleId
-			atlasLayersSqlWhere = '"roleId"' + " = " + roleId + " and " + '"atlasType"' + "='图层'"
-
-			//Promise回调
-			function init() {
-				return new Promise((resolve, reject) => {
-					_self.initData.forEach((res,index) => {
-						let num = Number(res.layerorder)
-						if (num < 10) {
-							res.layerorder = '0' + res.layerorder
-						}
-
-						res.value = res;
-						res.label = res.layername;
-
-						if (index == 0) {
-							_self.leftValue = res;
-						}
-						if (index == 1) {
-							_self.rightValue = res;
-						}
-
-					})
-					_self.leftData = _self.rightData = deepTree(_self.initData)
-					console.log('图层控制树列表+++', _self.leftData)
-					resolve(true)
-				})
-			}
-
-			//获取图集
-			this.$http.get('/getTableList', {
-				tableName: 'sys_map_atlas_layers', //表名
-				sqlWhere: atlasLayersSqlWhere, //查询条件  国土调查
-				orderByField: '' //排序
-			}).then(res => {
-				//初始图层列表
-				this.initData = res.data
-				init().then(item => {})
-			})
-		},
-
-		beforeCreate() {}, //生命周期 - 创建之前
-		beforeMount() {}, //生命周期 - 挂载之前
-		beforeUpdate() {}, //生命周期 - 更新之前
-		updated() {}, //生命周期 - 更新之后
-		beforeDestroy() {}, //生命周期 - 销毁之前
-		destroyed() {}, //生命周期 - 销毁完成
-		activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
-	};
-</script>
-
-<style lang="scss" scoped>
-	//整体样式
-	.jt-ImageLayerSplit {
-		padding: 10rem;
-
-		//左侧
-		._left {
-			width: 240rem;
-			float: left;
-		}
-
-		//右侧
-		._right {
-			width: 240rem;
-			float: left;
-			margin-left: 10rem;
-		}
-		.el-tree{
-			width:300rem !important;
-		}
-
-		// .el-popper.is-light,
-		// .el-dropdown__popper.el-popper {
-		// 	background: rgb(255 255 255) !important;
-		// 	border: 0 !important;
-		// }
-
-		// .el-select-dropdown {
-		// 	background: rgb(255 255 255) !important;
-		// }
-	}
-</style>

+ 0 - 237
src/views/Map3d/components/TrackRoam.vue

@@ -1,237 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-TrackRoam">
-
-		<el-row style="margin-bottom: 5px;">
-			<el-button type="danger" v-if="isNew" @click="drawLine()">
-				<el-icon>
-					<Plus />
-				</el-icon>新增漫游
-			</el-button>
-			<el-button type="danger" v-if="!isNew" @click="flightRoaming('remove')">
-				<el-icon>
-					<Delete />
-				</el-icon>
-				退出漫游
-			</el-button>
-		</el-row>
-
-		<el-row style="margin-bottom: 5px;" v-if="!isNew">
-
-			<el-button type="danger" v-if="isBackward" @click="flightRoaming('playReverse')">
-				<el-icon>
-					<Back />
-				</el-icon>向后飞行
-			</el-button>
-			<el-button type="danger" v-if="!isBackward" @click="flightRoaming('playForward')">
-				<el-icon>
-					<Right />
-				</el-icon>向前飞行
-			</el-button>
-
-			<el-button type="danger" v-if="isPause" @click="flightRoaming('pause')">
-				<el-icon>
-					<VideoPause />
-				</el-icon>暂停漫游
-			</el-button>
-			<el-button type="danger" v-if="!isPause" @click="flightRoaming('pause')">
-				<el-icon>
-					<VideoPlay />
-				</el-icon>继续漫游
-			</el-button>
-		</el-row>
-
-		<el-row style="margin-bottom: 5px;" v-if="!isNew">
-			<el-button type="danger" @click="flightRoaming(0)">
-				自由漫游
-			</el-button>
-			<el-button type="danger" @click="flightRoaming(1)">
-				相机跟随
-			</el-button>
-		</el-row>
-		<el-row style="margin-bottom: 5px;" v-if="!isNew">
-			<el-button type="danger" @click="flightRoaming(2)">
-				第一视角
-			</el-button>
-			<el-button type="danger" @click="flightRoaming(3)">
-				上帝视角
-			</el-button>
-		</el-row>
-
-		<el-form label-width="130rem">
-			<el-form-item label="飞行速度:" v-if="!isNew">
-				<el-slider v-model="roam.speed" @input="handleSpeedChange" :max="100" :min="1" :step="1" />
-			</el-form-item>
-			<el-form-item label="距离运动点的距离(后方):" v-if="roam.role===2">
-				<el-slider v-model="roam.followedX" @input="handleFollowedXChange" :max="10000" :min="1" :step="1" />
-			</el-form-item>
-			<el-form-item label="距离运动点的距离(上方):" v-if="roam.role===2">
-				<el-slider v-model="roam.followedZ" @input="handleFollowedZChange" :max="10000" :min="1" :step="1" />
-			</el-form-item>
-		</el-form>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-
-	export default {
-		data() {
-			return {
-				isNew: true,
-				isPause: true,
-				isBackward: true,
-				Roaming: undefined,
-
-				roam: {
-					role: 0,
-					speed: 10,
-					followedX: 50,
-					followedZ: 10
-				}
-			}
-		},
-
-		/* 方法 */
-		methods: {
-
-			handleFollowedXChange(followedX) {
-				this.Roaming.followedX = followedX;
-			},
-			handleFollowedZChange(followedZ) {
-				this.Roaming.followedZ = followedZ;
-			},
-
-			handleSpeedChange(speed) {
-				this.Roaming.ChangeRoamingSpeed(speed);
-			},
-
-			/**
-			 * 绘制飞行路线
-			 */
-			drawLine() {
-				let _self = this;
-
-				jt3d.DrawTools.draw('polyline', {
-					isEdit: false,
-					onComplete(cartesian3d, points) {
-						//清除绘制
-						jt3d.DrawTools.Clear();
-
-						_self.Roaming = new _self.jt3dSDK.Roaming(jt3d._viewer, cartesian3d, {
-							time: 360,
-							role: 2,
-							label: {
-								text: "lineName",
-							}
-						});
-						_self.isPause = true;
-						_self.isNew = false;
-						_self.roam.role = 2;
-						_self.Roaming.PauseOrContinue(_self.isPause);
-					}
-				});
-
-			},
-
-			/**
-			 * 飞行漫游
-			 * @param {Object} type
-			 */
-			flightRoaming(type) {
-
-				let _self = this;
-
-				switch (type) {
-					case "pause": //暂停飞行
-						this.isPause = !this.isPause;
-						this.Roaming.PauseOrContinue(this.isPause);
-						break;
-					case "playForward": //向前飞行
-						this.isPause = true;
-						this.isBackward = !this.isBackward;
-						this.Roaming.forwardFly();
-						break;
-					case "playReverse": //向后飞行
-						this.isPause = true;
-						this.isBackward = !this.isBackward;
-						this.Roaming.backwardsFly();
-						break;
-					case "remove": //向后飞行
-						this.isNew = true;
-						this.roam.role = Number(type);
-						this.Roaming.EndRoaming();
-						// //获取被clock监听的全部事件数量
-						// let len = jt3d._viewer.clock.onTick.numberOfListeners;
-						// for (let i = 0; i < len; i++) {
-						// 	//将被监听的方法移除来停止方法
-						// 	jt3d._viewer.clock.onTick.removeEventListener(jt3d._viewer.clock.onTick._listeners[i]);
-						// }
-						break;
-					case 0:
-						this.roam.role = Number(type);
-						this.Roaming.initRole(0);
-						break;
-					case 1:
-						this.roam.role = Number(type);
-						this.Roaming.initRole(1);
-						break;
-					case 2:
-						this.roam.role = Number(type);
-						this.Roaming.initRole(2);
-						break;
-					case 3:
-						this.roam.role = Number(type);
-						this.Roaming.initRole(3);
-						break;
-				}
-			},
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	::v-deep .el-table .cell {
-		line-height: 23rem !important;
-		padding: 0 12rem !important;
-		font-size: 14rem;
-	}
-
-	//整体样式
-	.jt-TrackRoam {
-		width: 90%;
-		margin-top: 16rem;
-		margin-left: 5%;
-		text-align: left;
-
-		--el-bg-color: rgb(0 44 126 / 60%);
-		--el-fill-color-blank: rgb(0 44 126 / 60%);
-		--el-text-color-secondary: rgb(216 240 255); //title
-		--el-text-color-regular: rgb(216 240 255); //内容
-		--el-fill-color-light: rgb(30 130 255);
-
-		.el-icon {
-			margin-right: 5rem;
-			color: #fff;
-		}
-	}
-</style>

+ 0 - 1130
src/views/Map3d/components/ViewerSplitScreen.vue

@@ -1,1130 +0,0 @@
-<script setup>
-	import {
-		inject
-	} from "vue";
-	const getMapInstance = inject("getMapInstance");
-	jt3dRight = getMapInstance();
-
-	import {
-		Store
-	} from '@/store/index'
-	store = Store()
-	import {
-		deepTree
-	} from "@/utils/deepTree.js";
-</script>
-
-<template>
-	<div class="jt-layer">
-		<el-tree :data="treeData"  :default-expanded-keys="expandedKeys" node-key="id" class="tree-line"  :expand-on-click-node="false" ref="treeRef" @check-change="handleCheckChange" @node-click="handleClick">
-			<template #default="{ node, data }">
-				<!-- 复选框 -->
-				<el-checkbox v-if="data.ischeck === '1' && store.userport == 'PC'" v-model="node.checked" :indeterminate="node.indeterminate" :disabled="!!node.disabled" @change="handleCheckBoxChange($event, data, node)">
-				</el-checkbox>
-				<el-switch  v-else-if="data.ischeck == 1 && store.userport == 'APP'" width="30rem" size="small" v-model="node.checked" @change="handleCheckBoxChange($event, data, node)" />
-				<span class="custom-tree-node">
-					<!-- 字体、图标 -->
-					<!-- <span>
-						<img src="@/assets/images/logo16x16.ico" />
-					</span> -->
-					<span class="overflowtext">
-						{{ data.layername }}
-					</span>
-				</span>
-
-				<!-- 透明度 -->
-				<template v-if="node.checked && data.opacity >0">
-					<div style="width: 80rem; padding: 0 20rem; position: absolute; right: 0">
-						<el-slider v-model="data.opacity" @input="handleSliderChange($event, data)" :max="1" :min="0.1" :step="0.1" />
-					</div>
-				</template>
-			</template>
-		</el-tree>
-	</div>
-</template>
-
-<script>
-	let store = undefined;
-	let jt3dRight = undefined;
-	let jt3dLeft = undefined;
-	export default {
-
-		/* 数据 */
-		data() {
-			return {
-				treeData: [],
-				inittree: [], //初始化图层数组
-				expandedKeys: [], //对应要展开的节点id
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			/**
-			 * el-tree 当节点被点击的时候触发
-			 * 控制地图服务的显示及隐藏
-			 * @param {Object} data 传递给 data 属性的数组中该节点所对应的对象
-			 */
-			async handleClick(data) {
-				let _self = this;
-
-				let _serviceId = "serviceLeft_" + data.layercode + data.layerorder;
-				let layername = data.layername;
-
-				//透明度
-				let _opacity = null;
-				if (data.opacity == null) {
-					_opacity = 1;
-				} else {
-					_opacity = Number(data.opacity);
-					data.opacity = _opacity;
-
-					if (_opacity == 0) {
-						_opacity = 1;
-					}
-				}
-
-				//参数集
-				let parameterset = data.parameterset;
-				if (data.parameterset instanceof Object) {
-					parameterset = data.parameterset;
-				} else if (data.parameterset != "" && data.parameterset != null && data.parameterset != undefined) {
-					parameterset = JSON.parse(data.parameterset);
-				}
-
-				if (data.isinit === '1') {
-					await new Promise((resolve, reject) => {
-						switch (data.loadtype) {
-							case "GeoJsonPolyline": //GeoJsonPolyline
-
-								break;
-							case "entitiesGltf": //gltf/glb
-
-								if (parameterset) {
-									if (parameterset.points) { //模型位置
-										let flyToEntity = jt3dLeft.LocateUtil.flyToEntityByPoints([
-											parameterset.points,
-										], 'point', {
-											heading: 0,
-											pitch: -90,
-											range: 8880
-										});
-									} else {
-										ElMessage("请检测图层表parameterset字段是否设置points");
-									}
-								} else {
-									ElMessage("请检测图层表parameterset字段是否设置points");
-								}
-
-								break;
-							case "PolygonImageMaterial": //图片材质
-
-								break;
-							case "CrImageServerLayer": //地形服务(DEM)
-
-								break;
-							case "DEM": //地形服务(DEM)
-
-								break;
-							case "UrlTemplateImageryProvider": //加载URL模板服务
-
-								break;
-							case "WebMapTileServiceImageryProvider": // WMTS地图服务
-
-								break;
-							case "WebMapServiceImageryProvider": //WMS地图服务
-
-								break;
-							case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
-
-								break;
-							case "TileMapServiceImageryProvider": // 2.5维度地图
-
-								break;
-							case "Cesium3DTileset": //加载3DTileset地图服务--实景
-
-								break;
-							case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
-
-								break;
-							default:
-								break;
-						}
-					})
-				}
-
-			},
-
-			/**
-			 * el-tree 当复选框被点击的时候触发
-			 * 控制地图服务的显示及隐藏
-			 * @param {Object} data 传递给 data 属性的数组中该节点所对应的对象
-			 * @param {Object} checked 节点本身是否被选中
-			 */
-			async handleCheckChange(data, checked) {
-				let _self = this;
-
-				let _serviceId = "serviceLeft_" + data.layercode + data.layerorder;
-				let layername = data.layername;
-				let layertype = data.layertype;
-
-				//透明度
-				let _opacity = null;
-				if (data.opacity == null) {
-					_opacity = 1;
-				} else {
-					_opacity = Number(data.opacity);
-					data.opacity = _opacity;
-
-					if (_opacity == 0) {
-						_opacity = 1;
-					}
-				}
-
-				//参数集
-				let parameterset = data.parameterset;
-				if (data.parameterset instanceof Object) {
-					parameterset = data.parameterset;
-				} else if (data.parameterset != "" && data.parameterset != null && data.parameterset != undefined) {
-					parameterset = JSON.parse(data.parameterset);
-				}
-
-				//在显示的图层中,如果图层配置可以查询,则进行查询
-				if (layertype === '矢量面' && data.querytable) {
-					if (checked) {
-						if (store.queryMapTables.indexOf(data.querytable) === -1) {
-							store.queryMapTables.push(data.querytable);
-						}
-					} else {
-						//过滤
-						store.queryMapTables = store.queryMapTables.filter(tableName => {
-							return tableName !== data.querytable
-						})
-					}
-				}
-
-				await new Promise((resolve, reject) => {
-					switch (data.loadtype) {
-						case "GeoJsonPoint": //GeoJsonPoint
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-								}
-
-								if (parameterset) {
-
-									if (parameterset.billboard instanceof Object) {
-										let billboard = parameterset.billboard;
-										_options.billboard = billboard;
-									}
-
-									if (parameterset.label instanceof Object) {
-										let label = parameterset.label;
-										_options.label = label;
-									}
-								}
-
-								jt3dLeft.layer.addBillboardByGeoJson(_options, function(serviceId) {
-
-								});
-							} else {
-								jt3dLeft.layer.removeDataSources({
-									serviceId: _serviceId,
-								});
-							}
-							break;
-						case "GeoJsonPolyline": //GeoJsonPolyline
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-								}
-
-								if (parameterset) {
-
-									if (parameterset.clampToGround) { //是否贴地
-										_options.clampToGround = parameterset.clampToGround;
-									}
-									if (parameterset.isImageAlpha) { //是否采用图片颜色
-										_options.isImageAlpha = parameterset.isImageAlpha;
-									}
-									if (parameterset.imgUrl) { //精灵线图片
-										_options.imgUrl = parameterset.imgUrl;
-									}
-									if (parameterset.color) { //指定线的颜色
-										_options.color = parameterset.color;
-									}
-									if (parameterset.width) { //线宽
-										_options.width = parameterset.width;
-									}
-									if (parameterset.duration) { //持续时间 毫秒,越小越快
-										_options.duration = parameterset.duration;
-									}
-									if (parameterset.count) { //重复次数
-										_options.count = parameterset.count;
-									}
-									if (parameterset.direction) { //direction=vertical 纵,order='-'(由下到上) , '+"(由上到下)
-										_options.direction = parameterset.direction;
-									}
-									if (parameterset.order) { //direction=horizontal 横,order='-'(顺时针) , '+'(逆时针)
-										_options.order = parameterset.order;
-									}
-								}
-
-								jt3dLeft.layer.addPolylineByGeoJson(_options, function(serviceId) {
-
-								});
-							} else {
-								jt3dLeft.layer.removeDataSources({
-									serviceId: _serviceId,
-								});
-							}
-							break;
-						case "entitiesGltf": //gltf/glb
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-									points: [],
-								}
-
-								if (parameterset) {
-									if (parameterset.points) { //模型位置
-										_options.points = parameterset.points;
-
-										if (parameterset.minimumPixelSize) { //模型最小刻度
-											_options.minimumPixelSize = parameterset.minimumPixelSize;
-										}
-										if (parameterset.maximumScale) { //模型的最大比例尺大小,设置模型最大放大大小
-											_options.maximumScale = parameterset.maximumScale;
-										}
-										if (parameterset.silhouetteColor) { //模型轮廓颜色
-											_options.silhouetteColor = parameterset.silhouetteColor;
-										}
-										if (parameterset.alpha) { //模型透明度
-											_options.alpha = parameterset.alpha;
-										}
-										if (parameterset.heading) { //以弧度为单位的航向分量
-											_options.heading = parameterset.heading;
-										}
-										if (parameterset.pitch) { //以弧度为单位的航向分量
-											_options.pitch = parameterset.pitch;
-										}
-										if (parameterset.roll) { //以弧度为单位的滚动分量
-											_options.roll = parameterset.roll;
-										}
-
-										jt3dLeft.layer.addEntitiesGltf(_options, function(serviceId) {
-											// let flyToEntity = jt3dLeft.LocateUtil.flyToEntityByPoints([
-											// 	parameterset.points,
-											// ], 'point');
-										});
-
-									} else {
-										ElMessage("请检测图层表parameterset字段是否设置points");
-									}
-								} else {
-									ElMessage("请检测图层表parameterset字段是否设置points");
-								}
-							} else {
-								jt3dLeft.layer.removeEntity({
-									serviceId: _serviceId,
-								});
-							}
-							break;
-						case "PolygonImageMaterial": //图片材质
-							if (checked) {
-								if (parameterset) {
-									if (parameterset.points) {
-										jt3dLeft.layer.addPolygonImageMaterial({
-											id: _serviceId,
-											points: parameterset.points,
-											url: data.datasource,
-											alpha: _opacity
-										}, function(serviceId) {
-
-										});
-									} else {
-										ElMessage("请检测图层表parameterset字段是否设置points");
-									}
-								} else {
-									ElMessage("请检测图层表parameterset字段是否设置points");
-								}
-							} else {
-								jt3dLeft.layer.removeEntity({
-									serviceId: _serviceId,
-								});
-							}
-							break;
-						case "CrImageServerLayer": //贴地所有地形、模型的规划图、网格地图
-							if (checked) {
-								let floatLayer = new this.jt3dSDK.CrImageServerLayer({
-									viewer: jt3dLeft._viewer,
-									url: data.datasource,
-									opacity: _opacity,
-									show: true
-								});
-								window[_serviceId] = floatLayer;
-								//添加网格地图
-								// window[_serviceId].show();
-							} else {
-								window[_serviceId].hide();
-							}
-							break;
-						case "DEM": //地形服务(DEM)
-							if (checked) {
-								//设置参数
-								let _options = {
-									url: data.datasource,
-								}
-								if (parameterset) {
-									if (parameterset.terrainExaggeration) { //地形夸张系数
-										_options.terrainExaggeration = parameterset.terrainExaggeration;
-									}
-								}
-
-								jt3dLeft.layer.addTerrain(_options);
-							} else {
-								jt3dLeft.layer.removeTerrain();
-							}
-							break;
-						case "UrlTemplateImageryProvider": //加载URL模板服务
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-									alpha: _opacity
-								}
-								if (parameterset) {
-									if (parameterset.CRS) { //坐标系
-										_options.CRS = parameterset.CRS;
-									}
-									if (parameterset.minimumLevel) { //最小层级
-										_options.minimumLevel = parameterset.minimumLevel;
-									}
-									if (parameterset.maximumLevel) { //最大层级
-										_options.maximumLevel = parameterset.maximumLevel;
-									}
-								}
-
-								//加载服务
-								jt3dLeft.layer.addUrlTemplateImagery(_options, function(serviceId) {
-
-									//重置图层顺序
-									_self.setLayerNumber(serviceId)
-									if (layertype === '标注') {
-										var imageryLayers = jt3dLeft._viewer.imageryLayers;
-										imageryLayers.raiseToTop(window[serviceId]);
-									}
-
-								});
-							} else {
-								let removeLayer = jt3dLeft.layer.removeImageryProvider({
-									serviceId: _serviceId
-								});
-								removeLayer.then(function() {
-									console.log('成功移除')
-								});
-							}
-
-							break;
-						case "WebMapTileServiceImageryProvider": // WMTS地图服务
-							if (checked) {
-
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-									layers: 'cia',
-									style: 'default',
-									tileMatrixSetID: 'w',
-									alpha: _opacity
-								}
-								if (parameterset) {
-									if (parameterset.layers) { //WMTS请求的层名
-										_options.layers = parameterset.layers;
-
-										if (parameterset.style) { //WMTS请求的样式名
-											_options.style = parameterset.style;
-
-											if (parameterset.tileMatrixSetID) { //用于WMTS请求的TileMatrixSet的标识符
-												_options.tileMatrixSetID = parameterset.tileMatrixSetID;
-
-												if (parameterset.tileMatrixLabels) { //TileMatrix中用于WMTS请求的标识符列表,每个TileMatrix级别一个标识符。
-													_options.tileMatrixLabels = parameterset.tileMatrixLabels;
-												}
-												if (parameterset.minimumLevel) { //最小层级
-													_options.minimumLevel = parameterset.minimumLevel;
-												}
-												if (parameterset.maximumLevel) { //最大层级
-													_options.maximumLevel = parameterset.maximumLevel;
-												}
-
-												jt3dLeft.layer.addWebMapTileService(_options, function(serviceId) {
-
-													//重置图层顺序
-													_self.setLayerNumber(serviceId)
-													if (layertype === '标注') {
-														var imageryLayers = jt3dLeft._viewer.imageryLayers;
-														imageryLayers.raiseToTop(window[serviceId]);
-													}
-												});
-
-											} else {
-												ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
-											}
-
-										} else {
-											ElMessage("请检测图层表parameterset字段是否设置style");
-										}
-
-									} else {
-										ElMessage("请检测图层表parameterset字段是否设置layers");
-									}
-								} else {
-									ElMessage("请检测图层表parameterset字段是否设置layers,style,tileMatrixSetID");
-								}
-							} else {
-								jt3dLeft.layer.removeImageryProvider({
-									serviceId: _serviceId
-								});
-							}
-							break;
-						case "WebMapServiceImageryProvider": //WMS地图服务
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-									layers: "SDYTMP:map_zrzy_water_polylon",
-									alpha: _opacity
-								}
-								if (parameterset) {
-									if (parameterset.layers) { //WMTS请求的层名
-										_options.layers = parameterset.layers;
-
-										if (parameterset.minimumLevel) { //最小层级
-											_options.minimumLevel = parameterset.minimumLevel;
-										}
-										if (parameterset.maximumLevel) { //最大层级
-											_options.maximumLevel = parameterset.maximumLevel;
-										}
-
-										jt3dLeft.layer.addWebMapService(_options, function(serviceId) {
-
-											//重置图层顺序
-											_self.setLayerNumber(serviceId)
-											if (layertype === '标注') {
-												var imageryLayers = jt3dLeft._viewer.imageryLayers;
-												imageryLayers.raiseToTop(window[serviceId]);
-											}
-										});
-									} else {
-										ElMessage("请检测图层表parameterset字段是否设置layers");
-									}
-								} else {
-									ElMessage("请检测图层表parameterset字段是否设置layers");
-								}
-
-							} else {
-								jt3dLeft.layer.removeImageryProvider({
-									serviceId: _serviceId
-								});
-							}
-							break;
-						case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-									alpha: _opacity
-								}
-								if (parameterset) {
-									if (parameterset.layers) {
-										_options.layers = parameterset.layers;
-									}
-								}
-
-								//加载服务
-								jt3dLeft.layer.addArcGisMapServer(_options, function(serviceId) {
-
-									//重置图层顺序
-									_self.setLayerNumber(serviceId)
-									if (layertype === '标注') {
-										var imageryLayers = jt3dLeft._viewer.imageryLayers;
-										imageryLayers.raiseToTop(window[serviceId]);
-									}
-								})
-							} else {
-								jt3dLeft.layer.removeImageryProvider({
-									serviceId: _serviceId
-								});
-							}
-							break;
-						case "TileMapServiceImageryProvider": // 2.5维度地图
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-									alpha: _opacity
-								}
-								if (parameterset) {
-									if (parameterset.minimumLevel) { //最小层级
-										_options.minimumLevel = parameterset.minimumLevel;
-									}
-									if (parameterset.maximumLevel) { //最大层级
-										_options.maximumLevel = parameterset.maximumLevel;
-									}
-								}
-
-								jt3dLeft.layer.addTileMapServiceImagery(_options, function(serviceId) {
-
-									//重置图层顺序
-									_self.setLayerNumber(serviceId)
-									if (layertype === '标注') {
-										var imageryLayers = jt3dLeft._viewer.imageryLayers;
-										imageryLayers.raiseToTop(window[serviceId]);
-									}
-
-								});
-							} else {
-								jt3dLeft.layer.removeImageryProvider({
-									serviceId: _serviceId
-								});
-							}
-							break;
-						case "Cesium3DTileset": //加载3DTileset地图服务--实景
-							let datasource = data.datasource.split("#")
-							console.log('datasource', datasource)
-							if (checked) {
-								//加载实景
-								datasource.forEach((res, index) => {
-									//设置参数
-									let _options = {
-										id: _serviceId + index,
-										url: res,
-									}
-									if (parameterset) {
-										if (parameterset.height) {
-											_options.height = parameterset.height;
-										}
-										if (parameterset.alpha) {
-											_options.alpha = parameterset.alpha;
-										}
-									}
-
-									jt3dLeft.layer.addCesium3DTileset(_options, function(serviceId) {
-
-										window[_serviceId + index] = window[serviceId];
-
-									});
-								})
-							} else {
-								datasource.forEach((res, index) => {
-									jt3dLeft.layer.removeScenePrimitives({
-										serviceId: _serviceId + index
-									});
-								})
-							}
-
-							break;
-						case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
-							if (checked) {
-								//设置参数
-								let _options = {
-									id: _serviceId,
-									url: data.datasource,
-								}
-								if (parameterset) {
-									if (parameterset.color) {
-										_options.color = parameterset.color;
-									}
-								}
-
-								//加载白膜
-								jt3dLeft.layer.addCesium3DTilesetBm(_options, function(serviceId) {
-									jt3dLeft.layer.set3DTileBMStyle(_options);
-								});
-							} else {
-								jt3dLeft.layer.removeScenePrimitives({
-									serviceId: _serviceId
-								});
-							}
-							break;
-						default:
-							break;
-					}
-				})
-			},
-
-			/**
-			 * el-slider 值改变时触发(使用鼠标拖曳时,只在松开鼠标后触发)
-			 * 地图服务的透明度调整
-			 */
-			handleSliderChange($event, data) {
-				let _serviceId = "serviceLeft_" + data.layercode + data.layerorder;
-				if (data.loadtype === "Cesium3DTileset") {
-					let datasource = data.datasource.split("#")
-					datasource.forEach((res, index) => {
-						//设置实景透明度
-						jt3d.layer.set3DTileStyle({
-							serviceId: _serviceId + index,
-							alpha: $event,
-						});
-					})
-				} else if (data.loadtype === "CrImageServerLayer") {
-					let floatLayer = window[_serviceId];
-					floatLayer.setOpacity($event)
-				} else if (data.loadtype === "PolygonImageMaterial") {
-					//设置透明度
-					jt3dLeft.layer.setPolygonImageMaterial({
-						serviceId: _serviceId,
-						alpha: $event,
-					});
-				} else if (data.loadtype === "entitiesGltf") {
-					//设置透明度
-					jt3dLeft.layer.setModelStyle({
-						serviceId: _serviceId,
-						alpha: $event,
-					});
-				} else {
-					jt3dLeft.layer.setLayersStyle({
-						serviceId: _serviceId,
-						alpha: $event,
-					});
-				}
-			},
-
-			/**
-			 * el-checkbox 当绑定值变化时触发的事件
-			 * @param {Object} checked 复选框状态
-			 * @param {Object} data 对应于节点点击的节点对象
-			 * @param {Object} node TreeNode 的 node 属性
-			 */
-			handleCheckBoxChange(checked, data, node) {
-
-				let _node = this.$refs.treeRef.getNode(data);
-				if (_node.isLeaf) {
-					this.$refs.treeRef.setChecked(_node,
-						checked); //是否设置子节点,默认为false,利用tree组件渲染后带有的isLeaf(是否为叶子节点)属性,如果为叶子节点就选中。利用tree的API就实现了正确的回显效果	
-				}
-
-				//控制子节点
-				this.childNodesChange(node, checked);
-			},
-			/**
-			 * 控制子节点
-			 * @param {Object} node
-			 * @param {Object} checked
-			 */
-			childNodesChange(node, checked) {
-				let _self = this;
-				node.childNodes.forEach(item => {
-					_self.$refs.treeRef.setChecked(item, checked);
-					_self.childNodesChange(item, checked);
-				});
-			},
-
-			/**
-			 * 初始化复选框选中状态
-			 * @param {Object} datas
-			 */
-			setNodesChecked(datas) {
-				let _self = this;
-				datas.forEach((data, index) => {
-					_self.$nextTick(() => {
-						var node = _self.$refs.treeRef.getNode(data);
-						//node.isLeaf是否是叶子节点
-						if (node.isLeaf) {
-							let checked = false;
-							if (data.isinit === '1') {
-								checked = true;
-							}
-							data.opacity = Number(data.opacity)
-							_self.$refs.treeRef.setChecked(node, checked);
-						}
-					});
-					if (data.children != undefined) {
-						_self.setNodesChecked(data.children);
-					}
-				});
-			},
-
-			/**
-			 * 设置图层顺序
-			 * @param {Object} options
-			 */
-			setLayerNumber(serviceId) {
-				// let layerList = jt3dLeft._viewer.imageryLayers._layers
-				var imageryLayers = jt3dLeft._viewer.imageryLayers;
-				if (store.markID) {
-					console.log('标注id', store.markID)
-					imageryLayers.raiseToTop(window[store.markID]); //标注层置顶
-				}
-
-				imageryLayers.lowerToBottom(window[serviceId]); //设置图层初始顺序
-				imageryLayers.raise(window[serviceId]);
-				imageryLayers.raise(window[serviceId]);
-				this.inittree.forEach(res => {
-					if (res.layercode && res.layerorder) {
-						let id = "service_" + res.layercode + res.layerorder
-						let startid = Number(res.layercode + res.layerorder)
-						let strid = Number(serviceId.substring(8))
-						if (imageryLayers.contains(window[id])) {
-							if (startid < strid) {
-								imageryLayers.raise(window[serviceId])
-							} else {
-								// imageryLayers.raiseToTop(window[store.markID]);
-								// break;
-							}
-						}
-					}
-				})
-			},
-
-			/**
-			 * 分屏对比初始化
-			 */
-			initSplitScreen() {
-				let _self = this;
-
-				//这样做会跑偏
-				// let cesiumContainerDiv = document.getElementById("cesiumContainer2");
-				// if (cesiumContainerDiv == null) {
-				// 	cesiumContainerDiv = document.createElement('div');
-				// 	cesiumContainerDiv.id = "cesiumContainer2";
-				// 	cesiumContainerDiv.classList.add("ViewerSplitScreen");
-				// 	cesiumContainerDiv.style.float = "left";
-				// 	cesiumContainerDiv.style.width = "calc(50% - 1rem)";
-				// 	cesiumContainerDiv.style.height = "100vh";
-				// 	cesiumContainerDiv.style.margin = "0";
-				// 	cesiumContainerDiv.style.borderRight = "2rem solid red";
-
-				// 	/* 加入到页面 */
-				// 	document.body.appendChild(cesiumContainerDiv);
-				// }
-
-				let mapView1 = document.getElementById("cesiumContainer");
-				let mapView2 = document.getElementById("cesiumContainer2");
-				mapView1.className = "ViewerSplitScreen";
-				mapView2.style.display = "block";
-				//加载分屏左侧大球
-				this.initMap3d();
-				//同步相机状态
-				this.syncViewer();
-				//绑定图层控制
-				this.initTree();
-
-			},
-
-			/**
-			 * 移除分屏对比
-			 */
-			removeSplitScreen() {
-				let mapView1 = document.getElementById("cesiumContainer");
-				let mapView2 = document.getElementById("cesiumContainer2");
-
-				mapView1.className = "jt-map";
-				mapView2.style.display = "none";
-				mapView2.innerHTML = "";
-
-				if (jt3dLeft) {
-					jt3dLeft._viewer.entities.removeAll(); // 删除全部
-					jt3dLeft._viewer.imageryLayers.removeAll();
-					jt3dLeft._viewer.scene.primitives.removeAll(); //谨慎使用,可能删除不必要的primitive
-					// jt3dLeft._viewer.destroy();
-					jt3dLeft = undefined;
-				}
-			},
-
-			/**
-			 * 加载分屏左侧大球
-			 */
-			initMap3d() {
-				jt3dLeft = new this.jt3dSDK.jtMap3d({
-					container: "cesiumContainer2",
-				});
-
-				//底部工具
-				jt3dLeft.statusBar.show = true;
-				//图层
-				jt3dLeft.layer = new this.jt3dSDK.layer(jt3dLeft._viewer);
-
-				//测量工具
-				jt3dLeft.CommonTools = new this.jt3dSDK.CommonTools(jt3dLeft._viewer);
-				//绘图工具
-				jt3dLeft.SketchViewModel = new this.jt3dSDK.SketchViewModel(jt3dLeft._viewer, {
-					isClear: false,
-					isDrawPoint: true,
-					isRetainDrawPoint: true,
-					iconType: 'blue',
-				});
-				//定位工具
-				jt3dLeft.LocateUtil = new this.jt3dSDK.LocateUtil(jt3dLeft._viewer);
-
-				//二三维标绘
-				jt3dLeft.DrawTools = new this.jt3dSDK.DrawTools(jt3dLeft._viewer);
-				//军事标绘
-				jt3dLeft.DrawMilitaryPlot = new this.jt3dSDK.DrawMilitaryPlot(jt3dLeft._viewer);
-
-				//天空盒子
-				jt3dLeft.SceneEffects = {};
-				jt3dLeft.SceneEffects.SkyBox = new this.jt3dSDK.SceneEffects.SkyBox(jt3dLeft._viewer);
-
-				//线对象
-				jt3dLeft.PolylineObject = new this.jt3dSDK.PolylineObject(jt3dLeft._viewer);
-
-				//比例尺、指南针
-				this.$parent.$parent.$refs.queryword.initNavigation(jt3dLeft);
-
-				//设置默认视图
-				this.$parent.$parent.$refs.refMap3d.setView(jt3dLeft);
-
-				// 初始化项目区域范围视角
-				this.$parent.$parent.$refs.refMap3d.fullMap(jt3dLeft);
-
-				//加载天空盒子
-				this.$parent.$parent.$refs.refMap3d.addSkybox(jt3dLeft);
-
-				//添加镇街边界线——精灵线
-				this.$parent.$parent.$refs.refMap3d.addBoundaryLine(jt3dLeft);
-
-			},
-
-			/**
-			 * 同步相机状态
-			 */
-			syncViewer() {
-				let _self = this;
-
-				let viewerL = jt3dLeft._viewer;
-				let viewerR = jt3dRight._viewer;
-
-				var sceneL = viewerL.scene;
-				var sceneR = viewerR.scene;
-
-				var handlerL = new Cesium.ScreenSpaceEventHandler(sceneL.canvas);
-				var ellipsoidL = sceneL.globe.ellipsoid;
-				var handlerR = new Cesium.ScreenSpaceEventHandler(sceneR.canvas);
-				var ellipsoidR = sceneR.globe.ellipsoid;
-
-				handlerL.setInputAction((movement) => {
-					this.isLeftTrigger = true;
-					this.isRightTrigger = false;
-				}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
-
-				handlerR.setInputAction((movement) => {
-					this.isLeftTrigger = false;
-					this.isRightTrigger = true;
-				}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
-
-				var syncViewerL = function() {
-					if (_self.isLeftTrigger) {
-						viewerR.camera.flyTo({
-							destination: viewerL.camera.position,
-							orientation: {
-								heading: viewerL.camera.heading,
-								pitch: viewerL.camera.pitch,
-								roll: viewerL.camera.roll
-							},
-							duration: 0.0
-						});
-					}
-				}
-				viewerR.camera.changed.addEventListener(syncViewerL);
-				viewerR.scene.preRender.addEventListener(syncViewerL);
-
-				var syncViewerR = function() {
-					if (_self.isRightTrigger) {
-						viewerL.camera.flyTo({
-							destination: viewerR.camera.position,
-							orientation: {
-								heading: viewerR.camera.heading,
-								pitch: viewerR.camera.pitch,
-								roll: viewerR.camera.roll
-							},
-							duration: 0.0
-						});
-					}
-				}
-				viewerR.camera.changed.addEventListener(syncViewerR);
-				viewerR.scene.preRender.addEventListener(syncViewerR);
-			},
-
-			/**
-			 * 加载图层控制树
-			 */
-			initTree() {
-				//在这获取图层列表
-				let _this = this
-				//权限查询条件语句
-				let atlasLayersSqlWhere = undefined
-
-				//获取地图图集id
-				let roleId = store.roleId
-				atlasLayersSqlWhere = '"roleid"' + " = " + roleId + " "
-
-				//Promise回调
-				function init(data) {
-					return new Promise((resolve, reject) => {
-						_this.inittree.forEach(res => {
-							let num = Number(res.layerorder)
-							if (num < 10) {
-								res.layerorder = '0' + res.layerorder
-							}
-							
-							//显示2级
-							if (res.parentid === null) {
-								_this.expandedKeys.push(res.id);
-							}
-							
-							//其它级别展开
-							if (res.isExpand === '1') {
-								_this.expandedKeys.push(res.id);
-							}
-						})
-
-						_this.treeData = deepTree(_this.inittree)
-						resolve(_this.treeData)
-					})
-				}
-
-
-				//获取图集
-				this.$http.get('/getTableList', {
-					tableName: 'sys_map_atlas_layers', //表名
-					sqlWhere: atlasLayersSqlWhere, //
-					orderByField: ''
-				}).then(res => {
-					console.log('所有图层', res.data)
-					//初始图层列表
-					this.inittree = res.data
-					init(res.data).then(item => {
-						//图层初始化打开状态
-						_this.setNodesChecked(item);
-						console.log('图层控制树列表', _this.treeData)
-					})
-
-				})
-			}
-		},
-
-		mounted() {
-
-		},
-	};
-</script>
-
-<style lang="scss">
-	.el-switch--small .el-switch__core .el-switch__action{
-		width: 12rem;
-		height: 12rem;
-	}
-	.el-switch--small.is-checked .el-switch__core .el-switch__action{
-		margin-left: calc(-1rem - 12rem);
-	}
-	.el-switch__core .el-switch__action{
-		top:0;
-	}
-	.el-slider__button{
-		width: 20rem;
-		height: 20rem;
-	}
-	.el-tree-node__content{
-		height: 26rem;
-	}
-	
-	.el-switch--small .el-switch__core{
-		height: 16rem;
-	}
-	
-	.el-switch--small{
-		padding: 0 5rem;
-	}
-	
-	.jt-layer {
-		padding-left: 10rem;
-
-		.el-tree {
-			background: none;
-			color: #fff;
-			--el-tree-node-hover-bg-color: #2a67c3;
-
-			.overflowtext {
-				width: auto !important;
-				padding: 0;
-			}
-		}
-
-		.tree-line {
-			.el-tree-node {
-				position: relative;
-				// padding-left: 16rem; // 缩进量
-			}
-
-			.el-tree-node__children {
-				padding-left: 16rem !important; // 缩进量
-
-				.el-tree-node__content {
-					padding-left: 18rem !important;
-				}
-			}
-
-			// 竖线
-			.el-tree-node::before {
-				content: "";
-				height: 100%;
-				width: 1rem;
-				position: absolute;
-				left: -3rem;
-				top: -26rem;
-				border-width: 1rem;
-				border-left: 1rem dashed rgba(255, 255, 255, .8);
-			}
-
-			// 当前层最后一个节点的竖线高度固定
-			.el-tree-node:last-child::before {
-				height: 38rem; // 可以自己调节到合适数值
-			}
-
-			// 横线
-			.el-tree-node::after {
-				content: "";
-				width: 24rem;
-				height: 20rem;
-				position: absolute;
-				left: -3rem;
-				top: 12rem;
-				border-width: 1rem;
-				border-top: 1rem dashed rgba(255, 255, 255, .8);
-			}
-
-			// 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
-			&>.el-tree-node::after {
-				border-top: none;
-			}
-
-			&>.el-tree-node::before {
-				border-left: none;
-			}
-
-			// 展开关闭的icon
-			.el-tree-node__expand-icon {
-				font-size: 16rem;
-
-				// 叶子节点(无子节点)
-				&.is-leaf {
-					color: transparent;
-					display: none; // 也可以去掉
-				}
-			}
-		}
-	}
-</style>

+ 0 - 220
src/views/Map3d/components/analysis-data.vue

@@ -1,220 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-analysisData">
-		<el-collapse v-model="activeName" accordion>
-			<el-upload drag :auto-upload=false action="" accept="shp" :on-preview="handlePreview" :on-remove="handleRemove" :on-change="bind">
-				<i class="el-icon-upload"></i>
-				<div class="el-upload__text">将shp文件拖到此处,或<em>点击上传</em></div>
-
-				<!-- <div class="el-upload__tip" slot="tip">必须是shp文件</div> -->
-				<span>
-					<el-icon>
-						<WarnTriangleFilled />
-					</el-icon>必须是shp文件
-				</span>
-			</el-upload>
-			<!-- <el-button style="margin-left: 10rem;" size="small" type="success" @click="config">生成GeoJson数据</el-button> -->
-		</el-collapse>
-	</div>
-</template>
-
-<script>
-	import {
-		open
-	} from 'shapefile'
-
-	let jt3d = undefined;
-
-	export default {
-		props: {},
-		watch: {
-
-		},
-		name: "Config",
-		data() {
-			return {
-				file: {},
-				filelist: [],
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			/* shp文件解析生成图形 */
-			config() {
-				let _this = this
-				const name = this.file.name
-				const extension = name.split('.')[1]
-				console.log(extension)
-				if ('shp' !== extension) {
-					this.$alert('文件不是shp文件!请重新选择文件', {
-						confirmButtonText: '确定'
-					})
-				} else {
-					const reader = new FileReader()
-					const fileData = this.file.raw
-					reader.readAsArrayBuffer(fileData)
-					reader.onload = function(e) {
-						open(this.result).then(source => source.read().then(function log(result) {
-							if (result.done) return;
-							console.log(result)
-							console.log(result.value);
-
-							let promise = Cesium.GeoJsonDataSource.load(result.value, {
-								clampToGround: true
-							});
-							promise.then((dataSource) => {
-
-								window["viewer"].dataSources.add(dataSource); // 加载这个geojson资源
-								dataSource.name = name.split('.')[0];
-								console.log(dataSource)
-								const entities = dataSource.entities.values;
-								for (let index = 0; index < entities.length; index++) {
-									const entity = entities[index];
-									entity.polygon.material = Cesium.Color.fromBytes(50, 160, 255, 77)
-									entity.polygon.outlineWidth = 3;
-									entity.polygon.outline = false;
-									entity.polygon.outlineColor = Cesium.Color.RED;
-									entity.polyline = {
-										positions: entity.polygon.hierarchy._value.positions,
-										width: entity.polygon.outlineWidth,
-										material: Cesium.Color.fromBytes(0, 255, 180, 255),
-										clampToGround: true
-									}
-								}
-
-								let options = {};
-								// 初始化参数默认值
-								options.duration = Cesium.defaultValue(options.duration, 2);
-								options.heading = Cesium.defaultValue(options.heading, 0);
-								options.pitch = Cesium.defaultValue(options.pitch, -60);
-								options.range = Cesium.defaultValue(options.range, 0.0);
-								let flyPromise = window["viewer"].flyTo(entities, {
-									duration: options.duration,
-									offset: {
-										heading: Cesium.Math.toRadians(options.heading),
-										pitch: Cesium.Math.toRadians(options.pitch),
-										range: options.range
-									}
-								});
-
-							});
-
-							return source.read().then(log);
-
-						})).catch(error => console.error(error.stack));
-					}
-				}
-
-			},
-			remove() {
-
-			},
-
-			//移除
-			handleRemove(file, fileList) {
-
-				/* 清除图形 */
-				console.log(file, fileList);
-				let list = window["viewer"].dataSources.getByName(file.name.split('.')[0])
-				// for(let i=0;i<list.length;i++){
-				// 	console.log(list.length)
-				// 	window["viewer"].dataSources.remove(list[i])
-				// }
-				list.forEach(res => {
-					console.log(res)
-					window["viewer"].dataSources.remove(res)
-				})
-
-				// window["viewer"].dataSources.remove(window["viewer"].dataSources.getByName(file.name.split('.')[0]))
-
-			},
-
-			//定位
-			handlePreview(file) {
-				console.log(file)
-				this.file = file;
-				// this.config();
-
-				let list = window["viewer"].dataSources.getByName(file.name.split('.')[0])
-				list.forEach(res => {
-					const entities = res.entities.values;
-					
-					let options = {};
-					// 初始化参数默认值
-					options.duration = Cesium.defaultValue(options.duration, 2);
-					options.heading = Cesium.defaultValue(options.heading, 0);
-					options.pitch = Cesium.defaultValue(options.pitch, -60);
-					options.range = Cesium.defaultValue(options.range, 0.0);
-					let flyPromise = window["viewer"].flyTo(entities, {
-						duration: options.duration,
-						offset: {
-							heading: Cesium.Math.toRadians(options.heading),
-							pitch: Cesium.Math.toRadians(options.pitch),
-							range: options.range
-						}
-					});
-				})
-
-			},
-			bind(files, fileList) {
-				//绑定文件
-				this.file = fileList[fileList.length - 1]
-				//console.log(this.file)
-				this.config();
-			}
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.el-upload-dragger .el-upload__text{
-		font-size: 16rem;
-	}
-	
-	.upload_demo {
-		text-align: center;
-		margin-top: 50rem;
-	}
-
-	.el-button {
-		margin-top: 10rem;
-	}
-
-	::v-deep .el-upload-dragger {
-		padding: 0rem;
-		margin-top: 10rem;
-		color: #606266;
-		font-size: 12rem;
-
-	}
-
-	::v-deep .el-upload-list__item-name {
-		color: #fff;
-		margin-left: -21rem;
-	}
-
-	::v-deep .el-icon svg {
-		color: #409eff;
-		font-size: smaller;
-	}
-</style>

+ 0 - 517
src/views/Map3d/components/analysis-space.vue

@@ -1,517 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-analysisSpace">
-		<el-collapse v-model="activeName" accordion>
-			<el-collapse-item name="光照分析">
-				<template #title>
-					<i class='iconfont icon-svgguangzhaofenxi' />光照分析
-				</template>
-				<div class="el-collapse-item__content">
-					<el-button color="rgb(20 136 255)" @click="SunShine('start')">开启光照分析</el-button>
-					<el-button color="rgb(255 100 100)" @click="SunShine('remove')"><span style="color: #fff;">移除光照分析</span></el-button>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="方量分析">
-				<template #title>
-					<i class='iconfont icon-svgfangliangfenxi' />方量分析
-				</template>
-				<div class="el-collapse-item__content">
-					<el-form label-width="100rem">
-						<el-form-item label="挖方填方高度:">
-							<el-input v-model="cutFill.height" />
-						</el-form-item>
-						<el-form-item label="挖方填方精度:">
-							<el-input v-model="cutFill.precision" />
-						</el-form-item>
-					</el-form>
-					<div class="jt-btn" style="margin: 10rem;">
-						<el-button color="rgb(255 100 100)" @click="CutFill('draw')"><span style="color: #fff;">绘制挖方填方区域</span></el-button>
-						<el-button color="rgb(255 100 100)" @click="CutFill('remove')"><span style="color: #fff;">清除分析结果</span></el-button>
-					</div>
-					<el-form label-width="120rem">
-						<el-form-item label="总分析面积(㎡):">
-							<el-input v-model="cutFill.result.allArea" />
-						</el-form-item>
-						<el-form-item label="填方面积(㎡):">
-							<el-input v-model="cutFill.result.fillArea" />
-						</el-form-item>
-						<el-form-item label="填方体积(m³):">
-							<el-input v-model="cutFill.result.fillVolume" />
-						</el-form-item>
-						<el-form-item label="挖方面积(㎡):">
-							<el-input v-model="cutFill.result.cutArea" />
-						</el-form-item>
-						<el-form-item label="挖方体积(m³):">
-							<el-input v-model="cutFill.result.cutVolume" />
-						</el-form-item>
-					</el-form>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="剖面分析">
-				<template #title>
-					<i class='iconfont icon-svgpoumianfenxi' />剖面分析
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff99;">
-						提示:单击【剖面分析】按钮触发,然后在实景三维或地形上左键单击开始,左键双击结束
-					</div>
-					<el-button color="rgb(20 136 255)" @click="SectionAnalysis">剖面分析</el-button>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="通视分析">
-				<template #title>
-					<i class='iconfont icon-svgtongshifenxi' />通视分析
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff99;">
-						提示:红色代表不可视,绿色代表可视;
-					</div>
-					<el-button color="rgb(20 136 255)" @click="SightLine('activate')">添加通视分析</el-button>
-					<el-button color="rgb(255 100 100)" @click="SightLine('deactivate')"><span style="color: #fff;">清除通视分析</span></el-button>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="视域分析">
-				<template #title>
-					<i class='iconfont icon-svgshiyufenxi' />视域分析
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff99;">
-						提示:点击“添加视域”按钮后在场景中点击两个点添加视域,红色代表不可视,绿色代表可视;
-					</div>
-					<el-button color="rgb(20 136 255)" @click="ViewShed('activate')">添加视域</el-button>
-					<el-button color="rgb(255 100 100)" @click="ViewShed('deactivate')"><span style="color: #fff;">清除视域</span></el-button>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="限高分析">
-				<template #title>
-					<i class='iconfont icon-svgxiangaofenxi' />限高分析
-				</template>
-				<div class="el-collapse-item__content">
-					<el-form ref="form" label-width="100rem" label-position="right" size="mini">
-						<el-form-item label="地表海拔:">
-							<span>{{heightLimit.baseHeight}}</span>米&nbsp;&nbsp;<el-button color="rgb(20 136 255)" @click="HeightLimit('pickUp')">图上选点</el-button>
-						</el-form-item>
-						<el-form-item label="限制高度:">
-							<el-slider v-model="heightLimit.height" :min="0" :max="300" :step="1" @input="changeHeight"></el-slider>
-						</el-form-item>
-						<el-form-item label="当前高度:">
-							{{heightLimit.height}}米
-						</el-form-item>
-					</el-form>
-					<div class="jt-btn" style="margin-bottom: 10rem;">
-						<el-button color="rgb(20 136 255)" @click="HeightLimit('activate')">绘制限高区域</el-button>
-						<el-button color="rgb(255 100 100)" @click="HeightLimit('deactivate')"><span style="color: #fff;">清除限高分析</span></el-button>
-					</div>
-				</div>
-			</el-collapse-item>
-			<!-- <el-collapse-item name="剖切展示">
-				<template #title>
-					<i class='iconfont icon-svgpouqiezhanshi' />剖切展示
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff60;">
-						目前仅支持凸多边形,如果绘制的是凹多边形,可能裁剪结果不正确
-					</div>
-					<el-button color="rgb(20 136 255)" @click="Cutting('activate')">添加剖切多边形</el-button>
-				</div>
-			</el-collapse-item> -->
-			<!-- <el-collapse-item name="视频融合">
-				<template #title>
-					<i class='iconfont icon-svgshipinronghe' />视频融合
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff60;">
-						请先打开【牟平中心城实景三维】
-					</div>
-					<el-button color="rgb(20 136 255)" @click="PolygonHierarchy">视频融合</el-button>
-				</div>
-			</el-collapse-item> -->
-		</el-collapse>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-
-	export default {
-		props: {},
-		watch: {},
-
-		/* 数据 */
-		data() {
-			return {
-				activeName: "光照分析",
-
-				// 限高分析
-				heightLimit: {
-					height: 20,
-					baseHeight: 0,
-				},
-
-				//方量分析	
-				cutFill: {
-					height: 10, //挖方填方高度
-					precision: 1256, //挖方填方精度
-					result: { //挖方填方结果
-						allArea: "",
-						cutArea: "",
-						cutVolume: "",
-						fillArea: "",
-						fillVolume: "",
-					},
-				},
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			/**
-			 * 光照分析
-			 */
-			SunShine(type) {
-				let _self = this;
-				switch (type) {
-					case "start":
-						jt3d.statusBar.show = false;
-						jt3d.SpatialAnalysis.SunshineShadow.start();
-
-						break;
-					case "remove":
-						jt3d.statusBar.show = true;
-						jt3d.SpatialAnalysis.SunshineShadow.remove();
-						break;
-				}
-			},
-
-			/**
-			 * 方量分析
-			 */
-			CutFill(type) {
-				let _self = this;
-
-				//功能初始化
-				_self.init();
-
-				switch (type) {
-					case "draw":
-						jt3d.DrawTools.draw('polygon', {
-							isEdit: false,
-							onComplete(cartesian3d, points) {
-								//清除绘制
-								jt3d.DrawTools.Clear();
-
-								let pointsArray = [];
-								points.forEach((coordinate, index) => {
-									pointsArray.push([
-										coordinate.lng,
-										coordinate.lat,
-										coordinate.height
-									]);
-								});
-
-								jt3d.SpatialAnalysis.CutFill.createPolygonGeo(pointsArray, {
-									height: _self.height,
-									precision: _self.precision,
-								}).then(res => {
-									_self.cutFill.result = res;
-								});
-
-							}
-						});
-
-						break;
-					case "remove":
-						jt3d.SpatialAnalysis.CutFill.remove();
-						this.cutFill.result = {
-							allArea: "",
-							cutArea: "",
-							cutVolume: "",
-							fillArea: "",
-							fillVolume: "",
-						}
-
-						//还原左键单击事件
-						this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-						break;
-				}
-			},
-
-			/**
-			 * 视频融合
-			 */
-			PolygonHierarchy() {
-				let videoElement = document.getElementById('trailer');
-				var videopolygon = jt3d._viewer.entities.add({
-					polygon: {
-						height: 0.1,
-						hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArrayHeights([121.600444, 37.398272, 37.95, 121.600443, 37.398272, 33, 121.600443, 37.398341, 33, 121.600444, 37.398341, 37.95])),
-						material: videoElement,
-						perPositionHeight: true,
-					}
-				});
-
-				let flyToEntity = jt3d.LocateUtil.flyToEntity(videopolygon, {
-					heading: 90, //方向
-					pitch: -32, //倾斜角度
-					range: 72
-				});
-				flyToEntity.then(function(vehicleEntity) {
-					jt3d._viewer.trackedEntity = vehicleEntity; //获取或设置摄像机当前正在跟踪的Entity实例。
-					vehicleEntity.viewFrom = new Cesium.Cartesian3(0, 1, 0.3);
-				});
-			},
-
-			/**
-			 * 剖切分析
-			 */
-			Cutting(type) {
-				let _self = this;
-				//功能初始化
-				_self.init();
-
-				switch (type) {
-					case "activate":
-						if (window["my3dtiles"]) {
-							jt3d.DrawTools.draw('polygon', {
-								isEdit: false,
-								onComplete(cartesian3d, points) {
-									//清除绘制
-									jt3d.DrawTools.Clear();
-							
-									let pointsArray = [];
-									points.forEach((coordinate, index) => {
-										pointsArray.push([
-											coordinate.lng,
-											coordinate.lat,
-											coordinate.height
-										]);
-									});
-							
-									jt3d.SpatialAnalysis.Cutting.addTiles(window["my3dtiles"], pointsArray);
-							
-								}
-							});
-						} else {
-							ElMessage.error("请先勾选3D模型");
-						}
-						break;
-					case "deactivate":
-						//还原左键单击事件
-						this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-						break;
-				}
-			},
-
-			/**
-			 * 限高分析
-			 */
-			HeightLimit(type) {
-				let _self = this;
-				//功能初始化
-				_self.init();
-
-				switch (type) {
-					case "pickUp": //图上选点,获取地表高度
-						jt3d.CommonTools._sketchViewModel.sketchTools('point', {
-							onComplete(cPoint, gPoint) {
-								_self.heightLimit.baseHeight = Number(gPoint.height.toFixed(2));
-							},
-							onError(message) {
-								// debugger
-							}
-						});
-						break;
-					case "activate":
-						jt3d.DrawTools.draw('polygon', {
-							isEdit: false,
-							onComplete(cartesian3d, points) {
-								//清除绘制
-								// jt3d.DrawTools._entities.remove(jt3d.DrawTools._drawEntity.polygon);
-								jt3d.DrawTools.Clear();
-
-								let pointsArray = [];
-								points.forEach((coordinate, index) => {
-									pointsArray.push([
-										coordinate.lng,
-										coordinate.lat,
-										coordinate.height
-									]);
-								});
-
-								jt3d.SpatialAnalysis.HeightLimit.addPrimitive(pointsArray, {
-									height: _self.heightLimit.height,
-									baseHeight: _self.heightLimit.baseHeight,
-								});
-							}
-						});
-						break;
-					case "deactivate":
-						jt3d.SpatialAnalysis.HeightLimit.removePrimitive();
-						jt3d.CommonTools._sketchViewModel.sketchClear();
-						//还原左键单击事件
-						this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-						break;
-				}
-			},
-			changeHeight(val) {
-				jt3d.SpatialAnalysis.HeightLimit.changeHeight(val);
-			},
-
-			/**
-			 * 通视分析
-			 * @param {Object} type
-			 */
-			SightLine(type) {
-				let _self = this;
-				//功能初始化
-				_self.init();
-
-				switch (type) {
-					case "activate":
-						jt3d.SpatialAnalysis.SightLine.startSightLine();
-						break;
-					case "deactivate":
-						jt3d.SpatialAnalysis.SightLine.clearAll();
-						//还原左键单击事件
-						this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-						break;
-				}
-			},
-
-			/**
-			 * 视域分析
-			 */
-			ViewShed(type) {
-				let _self = this;
-				//功能初始化
-				_self.init();
-
-				switch (type) {
-					case "activate":
-						jt3d.SpatialAnalysis.ViewShed.createViewshed(10);
-						break;
-					case "deactivate":
-						jt3d.SpatialAnalysis.ViewShed.clearAll();
-						//还原左键单击事件
-						this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-						break;
-				}
-			},
-
-			/**
-			 * 剖面分析
-			 */
-			SectionAnalysis() {
-				let _self = this;
-				//功能初始化
-				_self.init();
-
-				jt3d.DrawTools.draw('polyline', {
-					isEdit: false,
-					onComplete(cartesian3d, points) {
-						let pointsArray = [];
-						points.forEach((coordinate, index) => {
-							pointsArray.push([
-								coordinate.lng,
-								coordinate.lat,
-								coordinate.height
-							]);
-						});
-
-						let ProfileAnalysis = jt3d.SpatialAnalysis.Profile.startProfileAnalysis(pointsArray, jt3d.DrawTools._drawEntity.polyline);
-						ProfileAnalysis.then(function(result) {
-							_self.$parent.$parent.$refs.refDrawerSectionAnalysis.drawerVisible = true;
-							_self.$parent.$parent.initEchartsData(result);
-						});
-
-					}
-				});
-			},
-
-			/**
-			 * 功能初始化
-			 */
-			init() {
-				//移除左键单击事件
-				if (jt3d.handlerLeftClick) {
-					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //移除事件
-				}
-
-				jt3d.DrawTools.Clear();
-				jt3d.CommonTools._sketchViewModel.sketchClear();
-
-				jt3d.SpatialAnalysis.CutFill.remove(); //清除方量分析
-				jt3d.SpatialAnalysis.Profile.removeProfileAnalysis(); //移除剖面分析
-				jt3d.SpatialAnalysis.SightLine.clearAll(); //清除通视分析
-				jt3d.SpatialAnalysis.ViewShed.clearAll(); //清除视域分析
-				jt3d.SpatialAnalysis.HeightLimit.removePrimitive(); //清除限高分析		
-			}
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.jt-analysisSpace {
-		position: relative;
-
-		.iconfont {
-			padding: 0 10rem;
-		}
-
-		.el-collapse {
-			--el-collapse-border-color: rgb(0 44 126 / 0%);
-
-			--el-collapse-header-text-color: #ffffff;
-			--el-collapse-header-font-size: 13rem;
-			--el-collapse-content-bg-color: rgb(0 44 126 / 0%);
-			--el-collapse-content-font-size: 13rem;
-			--el-collapse-content-text-color: rgb(216 240 255);
-
-			--el-collapse-header-height: 40rem;
-			--el-collapse-header-bg-color: rgb(30 130 255);
-
-			--el-fill-color-blank: rgb(0 44 126 / 68%);
-			--el-text-color-regular: rgb(216 240 255);
-			--el-border-color: rgb(35 135 255);
-
-			.el-collapse-item__content {
-				padding: 10rem;
-				// padding-bottom: 0rem;
-			}
-		}
-	}
-
-	::v-deep .el-collapse-item__content {
-		padding: 10rem;
-		// padding-bottom: 0rem;
-		overflow-y: hidden;
-	}
-
-	::v-deep .el-collapse-item__header {
-		background: url(@/assets/images/bg_collapse_title.png) no-repeat;
-		background-size: 350rem 40rem;
-		// background-color: rgb(22 90 190);
-		// background-color: rgb(5 45 100 /60%);
-		background-color: rgb(30 130 255);
-		border-bottom: 0;
-	}
-</style>

+ 0 - 342
src/views/Map3d/components/analysis-terrain.vue

@@ -1,342 +0,0 @@
-<script setup>
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-analysisTerrain">
-		<el-collapse v-model="activeName" accordion>
-			<el-collapse-item name="地下模式">
-				<template #title>
-					<i class='iconfont icon-svgdixiamoshi' />地下模式
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff60;">
-						提示:可以透明地表,进入地下模式,可以看地下管网数据。
-					</div>
-					<el-form label-width="130rem">
-						<el-form-item label="地下模式开启状态:">
-							<el-switch v-model="underground.boolUnderground" active-text="已开启" inactive-text="已关闭" @change="handleUndergroundChange">
-							</el-switch>
-						</el-form-item>
-						<el-form-item label="地表透明度:">
-							<el-slider v-model="underground.alpha" :min="0" :max="1" :step="0.1" :disabled="!underground.boolUnderground" @input="handleAlphaChange">
-							</el-slider>
-						</el-form-item>
-					</el-form>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="地形开挖">
-				<template #title>
-					<i class='iconfont icon-svgdixingkaiwa' />地形开挖
-				</template>
-				<div class="el-collapse-item__content">
-					<el-form ref="form" label-width="100rem" label-position="right" size="mini">
-						<el-form-item label="开挖深度:">
-							<el-input v-model="terrainExcavation.excavateDepth" />
-						</el-form-item>
-					</el-form>
-					<div class="jt-btn" style="margin-bottom: 10rem;">
-						<el-button color="rgb(20 136 255)" @click="terrainExcavate('add')">绘制开挖区域</el-button>
-						<el-button color="rgb(255 100 100)" @click="terrainExcavate('remove')"><span style="color: #fff;">清除开挖分析</span></el-button>
-					</div>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="坡度分析">
-				<template #title>
-					<i class='iconfont icon-svgpodufenxi' />坡度分析
-				</template>
-				<div class="el-collapse-item__content">
-					<div class="jt-btn" style="margin-top: 10rem;">
-						<el-button color="rgb(20 136 255)" @click="SlopeAspect('Num')">坡度等分</el-button>
-						<el-button color="rgb(20 136 255)" @click="SlopeAspect('Distance')">坡度等距</el-button>
-						<el-button color="rgb(255 100 100)" @click="removeSlopeAspect"><span style="color: #fff;">移除</span></el-button>
-					</div>
-				</div>
-			</el-collapse-item>
-			<!-- <el-collapse-item name="深度检测">
-					<template #title>
-						<i class='iconfont icon-tianqizitiku43' />深度检测
-					</template>
-					<div class="el-collapse-item__content">
-						深度检测
-					</div>
-				</el-collapse-item>
-				<el-collapse-item name="等高线">
-					<template #title>
-						<i class='iconfont icon-tianqizitiku43' />等高线
-					</template>
-					<div class="el-collapse-item__content">
-						等高线
-					</div>
-				</el-collapse-item> -->
-		</el-collapse>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-
-	export default {
-		props: {
-
-		},
-		watch: {
-		},
-
-		/* 数据 */
-		data() {
-			return {
-				activeName: "地下模式",
-				
-				//地下模式
-				underground: {
-					alpha: 0.5,
-					boolUnderground: false,
-				},
-				
-				//地形开挖
-				terrainExcavation:{
-					excavateDepth: 10, //开挖深度
-				}
-				
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			/**
-			 * 是否开启地下模式
-			 * @param {Object} bool
-			 */
-			handleUndergroundChange(bool) {
-				window["viewer"].scene.screenSpaceCameraController.enableCollisionDetection = !bool; //相机与地形的碰撞检测
-				window["viewer"].scene.globe.translucency.frontFaceAlphaByDistance = new Cesium.NearFarScalar(1.5e2, 0.5, 8.0e6, 1.0);
-				window["viewer"].scene.globe.translucency.enabled = bool; //是否开启透明
-				this.handleAlphaChange(this.underground.alpha);
-			},
-			/**
-			 * el-slider 值改变时触发
-			 * 设置地表透明度
-			 * @param {Object} alpha
-			 */
-			handleAlphaChange(alpha) {
-				const frontFaceAlphaByDistance = window["viewer"].scene.globe.translucency.frontFaceAlphaByDistance;
-				frontFaceAlphaByDistance.nearValue = alpha;
-				frontFaceAlphaByDistance.farValue = alpha;
-			},
-
-			/**
-			 * 移除坡度分析
-			 */
-			removeSlopeAspect() {
-				jt3d.TerrainAnalysis.SlopeAspect.clearAll();
-				//还原左键单击事件
-				this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-			},
-			/**
-			 * 坡度坡向分析
-			 * @param {Object} type
-			 */
-			SlopeAspect(type) {
-				let _self = this;
-				//功能初始化
-				_self.init();
-
-				switch (type) {
-					case "Num":
-						jt3d.DrawTools.draw('polygon', {
-							isEdit: false,
-							onComplete(cartesian3d, points) {
-
-								let pointsArray = [];
-								points.forEach((coordinate, index) => {
-									pointsArray.push([
-										coordinate.lng,
-										coordinate.lat,
-										coordinate.height
-									]);
-								});
-
-								jt3d.TerrainAnalysis.SlopeAspect.createNew4Num(pointsArray, jt3d.DrawTools._drawEntity.polygon, {
-									num: 10
-								});
-
-								//清除绘制
-								// jt3d.DrawTools._entities.remove(jt3d.DrawTools._drawEntity.polygon);
-								jt3d.DrawTools.Clear();
-							}
-						});
-
-						break;
-					case "Distance":
-						jt3d.DrawTools.draw('polygon', {
-							isEdit: false,
-							onComplete(cartesian3d, points) {
-
-								let pointsArray = [];
-								points.forEach((coordinate, index) => {
-									pointsArray.push([
-										coordinate.lng,
-										coordinate.lat,
-										coordinate.height
-									]);
-								});
-
-								jt3d.TerrainAnalysis.SlopeAspect.createNew4Distance(pointsArray, jt3d.DrawTools._drawEntity.polygon, {
-									distance: 0.05
-								});
-
-								//清除绘制
-								// jt3d.DrawTools._entities.remove(jt3d.DrawTools._drawEntity.polygon);
-								jt3d.DrawTools.Clear();
-							}
-						});
-						break;
-				}
-			},
-
-			/**
-			 * 移除地形开挖
-			 */
-			removeTerrainExcavate() {
-				jt3d.TerrainAnalysis.TerrainExcavation.clear();
-				//还原左键单击事件
-				this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-			},
-			/**
-			 * 地形开挖
-			 */
-			terrainExcavate(type) {
-				let _self = this;
-				//功能初始化
-				_self.init();
-				
-				if (type === "add") {
-					jt3d.DrawTools.draw('polygon', {
-						onComplete(aa, points) {
-							jt3d.DrawTools.Clear();
-							let pointsArray = [];
-							points.forEach((coordinate, index) => {
-								pointsArray.push([
-									coordinate.lng,
-									coordinate.lat,
-									coordinate.height
-								]);
-							});
-							jt3d.TerrainAnalysis.TerrainExcavation.add(pointsArray, {
-								excavateDepth: _self.terrainExcavation.excavateDepth
-							});
-
-						}
-					});
-				} else if (type === "remove") {
-					_self.removeTerrainExcavate();
-				}
-			},
-
-			/**
-			 * 功能初始化
-			 */
-			init() {
-				//移除左键单击事件
-				if (jt3d.handlerLeftClick) {
-					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //移除事件
-				}
-
-				jt3d.DrawTools.Clear();
-
-				jt3d.TerrainAnalysis.TerrainExcavation.clear();; //清除地形开挖
-				jt3d.TerrainAnalysis.SlopeAspect.clearAll(); //移除坡度坡向分析	
-			}
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.el-switch{
-		font-size: 14rem !important;
-		line-height: 20rem !important;
-		align-items: self-start !important;
-	}
-	::v-deep .is-checked .el-switch__core .el-switch__action{
-		margin-left: calc(-1rem - 14rem);
-	}
-	
-	::v-deep .el-switch__core .el-switch__action{
-		top:1rem;
-	}
-	
-	::v-deep .el-switch__core .el-switch__action{
-		width: 14rem;
-		height: 14rem;
-	}
-	
-	::v-deep .el-switch__core{
-		width: 40rem !important;
-		height: 20rem !important;
-	}
-	::v-deep .el-switch__label{
-		height: 20rem !important;
-		font-size: 14rem !important;
-	}
-	::v-deep .el-switch__label *{
-		font-size: 14rem !important;
-	}
-	
-	::v-deep .el-switch__label--left{
-		margin-right: 10rem;
-	}
-	
-	.jt-analysisTerrain {
-		position: relative;
-		.iconfont {
-			padding: 0 10rem;
-		}
-
-		.el-collapse {
-			--el-collapse-border-color: rgb(0 44 126 / 0%);
-
-			--el-collapse-header-text-color: #ffffff;
-			--el-collapse-header-font-size: 13rem;
-			--el-collapse-content-bg-color: rgb(0 44 126 / 0%);
-			--el-collapse-content-font-size: 13rem;
-			--el-collapse-content-text-color: rgb(216 240 255);
-
-			--el-collapse-header-height: 40rem;
-			--el-collapse-header-bg-color: rgb(30 130 255);
-
-			--el-fill-color-blank: rgb(0 44 126 / 68%);
-			--el-text-color-regular: rgb(216 240 255);
-			--el-border-color: rgb(35 135 255);
-
-			.el-collapse-item__content {
-				padding: 10rem;
-				// padding-bottom: 0rem;
-			}
-		}
-	}
-
-	::v-deep .el-collapse-item__content {
-		padding: 10rem;
-		// padding-bottom: 0rem;
-		overflow-y: hidden;
-	}
-
-	::v-deep .el-collapse-item__header {
-		background: url(@/assets/images/bg_collapse_title.png) no-repeat;
-		background-size: 350rem 40rem;
-		// background-color: rgb(22 90 190);
-		// background-color: rgb(5 45 100 /60%);
-		background-color: rgb(30 130 255);
-		border-bottom: 0;
-	}
-</style>

+ 0 - 347
src/views/Map3d/components/coordsTool.vue

@@ -1,347 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-<template>
-	<div class="jt-coordsTool">
-		<el-collapse v-model="activeName" accordion>
-			<el-collapse-item name="坐标定位">
-				<template #title>
-					<i class='iconfont icon-dituzuobiao' />坐标定位
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff60;">
-						提示: 填写格式:x1,y1,z1;x2,y2,z2;x3,y3,z3;......;标点符号必须采用英文半角。
-					</div>
-					<el-form label-width="80rem">
-						<el-form-item label="定位类型:">
-							<el-radio-group v-model="position.locationType">
-								<el-radio label="point">点</el-radio>
-								<el-radio label="polyline">线</el-radio>
-								<el-radio label="polygon">多边形</el-radio>
-							</el-radio-group>
-						</el-form-item>
-					</el-form>
-					<el-input v-model="position.locationCoords" type="textarea" :autosize="{ minRows: 6, maxRows: 6 }" />
-					<div class="jt-btn" style="margin-top: 10rem;">
-						<el-button color="rgb(20 136 255)" @click="Position">坐标定位</el-button>
-						<el-button color="rgb(255 100 100)" @click="empty"><span style="color: #fff;">清除定位</span></el-button>
-					</div>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="坐标拾取">
-				<template #title>
-					<i class='iconfont icon-chaxunzuobiaozhi' />坐标拾取
-				</template>
-				<div class="el-collapse-item__content">
-					<div style="line-height: 2em; table-layout: fixed; word-wrap: break-word; word-break: normal; text-align:justify; text-justify: inter-ideograph;color: #ffffff60;">
-						提示:点击【坐标拾取】按钮,在地图上点击获取坐标。
-					</div>
-					<el-input v-model="pickCoords" type="textarea" :autosize="{ minRows: 6, maxRows: 6 }" />
-					<div class="jt-btn" style="margin-top: 10rem;">
-						<el-button color="rgb(20 136 255)" @click="pickUp">坐标拾取</el-button>
-						<el-button color="rgb(20 136 255)" @click="undo">撤销</el-button>
-						<el-button color="rgb(255 100 100)" @click="empty"><span style="color: #fff;">清空</span></el-button>
-					</div>
-				</div>
-			</el-collapse-item>
-		</el-collapse>
-	</div>
-</template>
-<script>
-	let jt3d = undefined;
-
-	export default {
-		props: {
-
-		},
-		watch: {
-			pickCoordsLable: function(val) {
-				this.setPickCoordsLable(val);
-			},
-
-		},
-
-		/* 数据 */
-		data() {
-			return {
-				activeName: "坐标定位",
-
-				position: {
-					locationType: "point", //定位类型
-					locationCoords: "", //定位坐标
-				},
-
-				pickCoords: "", //坐标拾取
-				pickCoordsArray: [],
-				pickCoordsLable: 1,
-
-				pointEntities: []
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			/**
-			 * 设置点的lable
-			 */
-			setPickCoordsLable(val) {
-				jt3d.CommonTools._sketchViewModel._lineLabel = val.toString();
-			},
-
-			/**
-			 * 坐标拾取
-			 */
-			pickUp() {
-				let _self = this;
-				
-				//移除左键单击事件
-				if (jt3d.handlerLeftClick) {
-					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); 
-				}
-
-				jt3d.CommonTools._sketchViewModel._lineLabel = _self.pickCoordsLable.toString();
-				jt3d.CommonTools._sketchViewModel.sketchTools('point', {
-					onComplete(cPoint, gPoint) {
-						_self.pickCoordsArray.push(gPoint.lng.toFixed(6) + ',' + gPoint.lat.toFixed(6) + ',' + gPoint.height.toFixed(2)) + ";";
-						_self.pickCoords = _self.pickCoordsArray.join(";\n");
-						_self.pickCoordsLable++;
-						
-						//还原左键单击事件
-						_self.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-					},
-					onError(message) {
-						// debugger
-					}
-				});
-			},
-
-			/**
-			 * 坐标拾取 - 撤销
-			 */
-			undo() {
-				this.pickCoordsArray.pop();
-				this.pickCoords = this.pickCoordsArray.join(";\n");
-				this.pickCoordsLable--;
-
-				//移除最后一个元素
-				let lastPointEntity = jt3d.CommonTools._sketchViewModel._pointEntitys[jt3d.CommonTools._sketchViewModel._pointEntitys.length - 1];
-				jt3d._entities.remove(lastPointEntity);
-				jt3d.CommonTools._sketchViewModel._pointEntitys.pop();
-			},
-
-			/**
-			 * 坐标拾取 - 清空
-			 */
-			empty() {
-				this.pickCoords = "";
-				this.pickCoordsArray = [];
-				this.pickCoordsLable = 1;
-				jt3d.CommonTools._sketchViewModel.sketchClear();
-				jt3d.CommonTools._sketchViewModel._clearEvent();
-				jt3d.CommonTools._sketchViewModel._clearEvent(jt3d.CommonTools._sketchViewModel._sketchEventHandler);
-
-				this.position.locationCoords = "";
-				jt3d._viewer.entities.remove(jt3d.LocateUtil._locationEntity);
-
-				for (let i = 0; i < this.pointEntities.length; i++) {
-					jt3d._viewer.entities.remove(this.pointEntities[i]);
-				}
-				this.pointEntities = []; //脏数据,存储entities
-			},
-
-			/**
-			 * 坐标定位
-			 */
-			Position() {
-				let _self = this;
-
-				let endstring = _self.position.locationCoords.substring(_self.position.locationCoords.length - 1);
-				if (endstring != ";") {
-					ElMessage("最后一位请用;结束!");
-					return false;
-				}
-
-				let coords = _self.position.locationCoords.substr(0, _self.position.locationCoords.length - 1);
-				let coordArray = coords.split(';');
-				let pointArray = [];
-				coordArray.forEach((coordinate, index) => {
-					let xyArray = coordinate.split(',');
-					if (xyArray.length != 2 && xyArray.length != 3) {
-						ElMessage("坐标不是成对出现,请检查!");
-						throw Error(); //forEach()本身无法跳出循环,所以,这里使用了抛异常的方法来终止它。
-					} else {
-						let longitude = xyArray[0];
-						let latitude = xyArray[1];
-
-						if (xyArray[2]) {
-							let height = xyArray[2];
-							let point = [Number(longitude), Number(latitude), Number(height)];
-
-							pointArray.push(point);
-							//点标记
-							jt3d.CommonTools._sketchViewModel._lineLabel = (index + 1).toString();
-							jt3d.CommonTools._sketchViewModel.sketchDrawFeacture(point, 'drawPoint');
-
-							if (index === (coordArray.length - 1)) {
-								loc();
-							}
-						} else {
-
-							let terrainAltitude = _self.jt3dSDK.common.getHeigthByPointsMostDetailed(jt3d._viewer, [
-								[Number(longitude), Number(latitude)]
-							]);
-							terrainAltitude.then(function(updatedPositions) {
-								let point = [Number(longitude), Number(latitude), Number(updatedPositions[0].height)];
-								pointArray.push(point);
-								//点标记
-								jt3d.CommonTools._sketchViewModel._lineLabel = (index + 1).toString();
-								jt3d.CommonTools._sketchViewModel.sketchDrawFeacture(point, 'drawPoint');
-
-								if (index === (coordArray.length - 1)) {
-									loc();
-								}
-							});
-						}
-					}
-				});
-
-				function loc() {
-					switch (_self.position.locationType) {
-						case "point":
-							if (coordArray.length === 1) {
-
-								let point = jt3d.PointObject.generatePoint(
-									pointArray[0]
-								);
-								point.then(function(entity) {
-									_self.flyToEntity(entity);
-								});
-							} else {
-								let line = jt3d.PolylineObject.drawSpecifyColorLine(pointArray, {
-									color: [255, 0, 0, 0]
-								});
-								line.then(function(entity) {
-									_self.flyToEntity(entity);
-								});
-							}
-							break;
-						case "polyline":
-							let line = jt3d.PolylineObject.drawSpecifyColorLine(pointArray, {
-								color: [255, 255, 0, 0.8]
-							});
-							line.then(function(entity) {
-								_self.flyToEntity(entity);
-							});
-
-							break;
-						case "polygon":
-							let polygon = jt3d.PolygonObject.generatePolygonByPoints(pointArray, {
-								color: [255, 255, 0, 0.8]
-							});
-							polygon.then(function(entity) {
-								_self.flyToEntity(entity);
-							});
-							break;
-					}
-
-				}
-
-			},
-
-			flyToEntity(entity) {
-				let flyToEntity = jt3d.LocateUtil.flyToEntity(entity, {
-					duration: 3,
-					heading: 0,
-					pitch: -60,
-					range: 0
-				});
-				flyToEntity.then(function(entity11) {
-					// alert(1111)
-				});
-			},
-
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.el-radio-group {
-		height: 32rem;
-		line-height: 32rem;
-		flex-wrap: nowrap;
-	}
-
-	::v-deep .el-radio__label {
-		font-size: 14rem !important;
-		padding-left: 8rem !important;
-	}
-
-	.jt-coordsTool {
-		position: relative;
-
-		.iconfont {
-			padding: 0 10rem;
-		}
-
-		.el-collapse {
-			--el-collapse-border-color: rgb(0 44 126 / 0%);
-
-			--el-collapse-header-text-color: #ffffff;
-			--el-collapse-header-font-size: 13rem;
-			--el-collapse-content-bg-color: rgb(0 44 126 / 0%);
-			--el-collapse-content-font-size: 13rem;
-			--el-collapse-content-text-color: rgb(216 240 255);
-
-			--el-collapse-header-height: 40rem;
-			--el-collapse-header-bg-color: rgb(30 130 255);
-
-			--el-fill-color-blank: rgb(0 44 126 / 68%);
-			--el-text-color-regular: rgb(216 240 255);
-			--el-border-color: rgb(35 135 255);
-
-			.el-collapse-item__content {
-				padding: 10rem;
-				// padding-bottom: 0rem;
-			}
-		}
-	}
-
-	::v-deep .el-collapse-item__content {
-		padding: 10rem;
-		// padding-bottom: 0rem;
-		overflow-y: hidden;
-	}
-
-	::v-deep .el-collapse-item__header {
-		background: url(@/assets/images/bg_collapse_title.png) no-repeat;
-		background-size: 350rem 40rem;
-		// background-color: rgb(22 90 190);
-		// background-color: rgb(5 45 100 /60%);
-		background-color: rgb(30 130 255);
-		border-bottom: 0;
-	}
-
-	::v-deep .el-form-item {
-		margin-bottom: 10rem;
-	}
-
-	::v-deep .el-radio {
-		margin-right: 10rem;
-	}
-</style>

+ 0 - 385
src/views/Map3d/components/drawEdit.vue

@@ -1,385 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-	import {
-		inject
-	} from "vue";
-	import {
-		ArrowLeft,
-		ArrowRight,
-		Delete,
-		Edit,
-		Share
-	} from '@element-plus/icons-vue';
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-drawTool">
-		<div style="margin-bottom: 0rem;">
-			<el-select class="selectInfo" v-model="value" @change="handleClick" placeholder="请选择" style="width: 65%; margin-bottom: 10rem;margin-right: 10rem;">
-				<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
-			</el-select>
-			<el-button type="danger" :icon="Delete" style="margin-top: 8rem;width: 30%;" @click="removeAll()">清除</el-button>
-		</div>
-		<div v-show="value=='二维平面类'">
-			<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem">
-				<el-col v-for="(item,index) in towDimension" :span="8" @click="createGraphics(item.drawType,index)">
-					<el-avatar shape="circle" :size="70" :class="currentIndex===index?'selectStyle':'defaultStyle'">
-						<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
-					</el-avatar>
-					<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
-				</el-col>
-			</el-row>
-		</div>
-		<div v-show="value=='三维立体类'">
-			<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem">
-				<el-col v-for="(item,index) in threeDimension" :span="8" @click="createGraphics(item.drawType,index)">
-					<el-avatar shape="circle" :size="70" :class="currentIndex===index?'selectStyle':'defaultStyle'">
-						<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
-					</el-avatar>
-					<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
-				</el-col>
-			</el-row>
-		</div>
-		<div v-show="value=='军事标绘类'">
-			<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem">
-				<el-col v-for="(item,index) in militaryPlotting" :span="8" @click="createMilitaryPlot(item.drawType,index)">
-					<el-avatar shape="circle" :size="70" :class="currentIndex===index?'selectStyle':'defaultStyle'">
-						<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
-					</el-avatar>
-					<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
-				</el-col>
-			</el-row>
-		</div>
-
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-	let tipEntity = undefined;
-	export default {
-		props: {},
-		watch: {},
-		/* 数据 */
-		data() {
-			return {
-				currentIndex: -1,
-				value: "二维平面类",
-				options: [{
-						value: '二维平面类',
-						label: '二维平面类',
-					},
-					{
-						value: '三维立体类',
-						label: '三维立体类',
-					},
-					{
-						value: '军事标绘类',
-						label: '军事标绘类',
-					},
-				],
-				towDimension: [{
-						label: '贴地线',
-						drawType: 'polyline',
-						number: 0,
-						icon: 'iconfont icon-svgtiedixian'
-					},
-					{
-						label: '箭头线',
-						drawType: 'arrowPolyline',
-						number: 1,
-						icon: 'iconfont icon-svgjiantouxian'
-					},
-					{
-						label: '贴地面',
-						drawType: 'polygon', //polygon
-						number: 2,
-						icon: 'iconfont icon-svgtiedimian'
-					},
-					{
-						label: '动态线',
-						drawType: 'dynamicPolyline',
-						number: 3,
-						icon: 'iconfont icon-svgliudongxian'
-					},
-					{
-						label: '发光线',
-						drawType: '发光线',
-						number: 4,
-						icon: 'iconfont icon-svgfaguangxian'
-					},
-					{
-						label: '描边线',
-						drawType: 'outlinePolyline',
-						number: 5,
-						icon: 'iconfont icon-svgmiaobianxian'
-					},
-					{
-						label: '动态圆',
-						drawType: 'dynamicCircle',
-						number: 6,
-						icon: 'iconfont icon-svgdongtaiyuan'
-					},
-					{
-						label: '普通圆',
-						drawType: 'circle',
-						number: 7,
-						icon: 'iconfont icon-svgputongyuan'
-					},
-					{
-						label: '矩形',
-						drawType: 'rectangle',
-						number: 8,
-						icon: 'iconfont icon-svgjuxing'
-					},
-
-				],
-				threeDimension: [{
-						label: '空间线',
-						drawType: 'spatialLine',
-						number: 0,
-						icon: 'iconfont icon-svgkongjianxian'
-					},
-					{
-						label: '动态墙',
-						drawType: 'dynamicWall',
-						number: 1,
-						icon: 'iconfont icon-svgdongtaiqiang'
-					},
-					{
-						label: '房屋',
-						drawType: 'house',
-						number: 2,
-						icon: 'iconfont icon-svgfangwu'
-					},
-					{
-						label: '文字',
-						drawType: 'text',
-						number: 3,
-						icon: 'iconfont icon-svgzi'
-					},
-					{
-						label: '视频墙',
-						drawType: 'videoWall',
-						number: 4,
-						icon: 'iconfont icon-svgshipinqiang'
-					},
-					{
-						label: '普通墙',
-						drawType: 'normalWall',
-						number: 5,
-						icon: 'iconfont icon-svgputongqiang'
-					},
-				],
-				militaryPlotting: [{
-						label: '直线箭头',
-						drawType: 'straightArrow',
-						number: 1,
-						icon: 'iconfont icon-zhijiantou'
-					},
-					{
-						label: '攻击箭头',
-						drawType: 'attackArrow',
-						number: 2,
-						icon: 'iconfont icon-tujifangxiang'
-					},
-					{
-						label: '钳击箭头',
-						drawType: 'pincerArrow',
-						number: 3,
-						icon: 'iconfont icon-qianji'
-					}
-				]
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			//清除全部
-			removeAll() {
-				jt3d.DrawToolsEdit.Clear()
-				jt3d.DrawMilitaryPlot.clearAll()
-				this.currentIndex = -1;
-
-				//还原左键单击事件
-				this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-			},
-
-			//选择绘制类型
-			//头部标题点击事件
-			handleClick(val) {
-				console.log(val)
-				this.currentIndex = -1;
-				this.value = val
-			},
-
-			//创建军事标会
-			createMilitaryPlot(type, index) {
-				let _self = this;
-				this.currentIndex = index;
-
-				//移除左键单击事件
-				if (jt3d.handlerLeftClick) {
-					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
-				}
-
-				/* 创建监听 */
-				jt3d.DrawMilitaryPlot.onEditProperty = {};
-				// 开始绘制
-				jt3d.DrawMilitaryPlot.draw(type, {
-					onComplete(cPoint, gPoint) {
-						// _self.$parent.$parent.param = param;
-						// _self.$parent.$parent.showDialog = true;
-					}
-				});
-			},
-			//创建二维标会和三维标会
-			createGraphics(type, index) {
-				let _self = this;
-				this.currentIndex = index;
-
-				//移除左键单击事件
-				if (jt3d.handlerLeftClick) {
-					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
-				}
-
-				/* 创建监听 */
-				jt3d.DrawToolsEdit.onEditProperty = {};
-				// 开始绘制
-				jt3d.DrawToolsEdit.draw(type, {
-					isEdit: true,
-					onComplete(cPoint, gPoint) {
-
-					},
-					onError(message) {
-						console.log('错误原因', message)
-					}
-				});
-			}
-
-		},
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.el-avatar{
-		width: 70rem !important;
-		height: 70rem !important;
-		font-size: 14px !important;
-		cursor: pointer;
-	}
-	// .el-popper{
-	// 	padding: 5rem 11rem;
-	// 	font-size: 12rem;
-	// 	line-height: 20rem;
-	// 	min-height: 10rem;
-	// 	width: 322rem;
-	// 	height: 311rem;
-	// 	left: 15rem !important;
-	// 	top: 175rem !important;
-	// }
-	
-	::v-deep .el-scrollbar{
-		background-color: gainsboro !important;
-	}
-	.el-select-dropdown__item{
-		color: #409eff !important;
-		padding: 0 32rem 0 20rem;
-		height: 34rem;
-		line-height: 34rem;
-		font-size:14rem;
-	}
-	
-	.jt-drawTool {
-		--el-avatar-size: 70rem !important;
-
-
-		.el-col {
-			padding: 10rem;
-			// color: rgba(90, 172, 255, 1.0);
-			color: #fff;
-		}
-
-		i {
-			display: inline-block;
-			width: 100%;
-			height: 36rem;
-			line-height: 36rem;
-			text-align: center;
-			border-radius: 5rem;
-			font-size: 40rem;
-			// color: rgba(90, 172, 255, 1.0);
-			color: #fff;
-			transition: all .3s;
-			-webkit-transition: all .3s
-		}
-
-		.selectStyle {
-			// background: rgba(135, 182, 254, 0.5);
-			background: rgb(0 44 126);
-			--el-avatar-size: 70rem !important;
-		}
-
-		.defaultStyle {
-			background: #ffffff00;
-			--el-avatar-size: 70rem !important;
-		}
-
-		.selectFontStyle {
-			color: #fff;
-		}
-
-		.el-button.is-text {
-			background-color: rgba(255, 255, 255, 0.5);
-		}
-
-		el-option {
-			margin-top: -15rem !important;
-		}
-
-		.iconactive {
-			box-shadow: 0 0 3rem 3rem rgba(12, 123, 200, .6);
-		}
-
-		.active {
-			color: #409eff
-		}
-
-		::v-deep .el-input__wrapper {
-			background-color: rgba(255, 255, 255, 0);
-			color: #fff;
-		}
-
-		::v-deep .el-input__inner {
-			color: #fff;
-		}
-
-		.selectInfo {
-			top: 10rem !important;
-		}
-
-		.el-select-dropdown__wrap {
-			margin-top: 10rem;
-		}
-
-		.el-select-dropdown__item {
-			background-color: rgba(255, 255, 255, 1) !important;
-
-		}
-
-		.el-select-dropdown__item:hover {
-			background-color: rgba(255, 255, 235, 1) !important;
-		}
-
-	}
-</style>

+ 0 - 383
src/views/Map3d/components/mapNavigate.vue

@@ -1,383 +0,0 @@
-<script setup>
-	import {
-		ref
-	} from 'vue';
-	import {
-		inject
-	} from "vue";
-	import selshi from '@/assets/images/selshi.png';
-	import selcun from '@/assets/images/selcun.png';
-	import cun from '@/assets/images/cun.png';
-	import shi from '@/assets/images/shi.png';
-	import xian from '@/assets/images/xian.png';
-	import selxian from '@/assets/images/selxian.png';
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="tabs">
-		<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
-			<i v-for="(item,index) in cityList">
-				<el-tab-pane :name="item.number">
-					<template #label>
-						<span class="custom-tabs-label">
-							<img v-if="index==0" :src="isindex==0?selshi:shi">
-							<img v-if="index==1" :src="isindex==1?selxian:xian">
-							<img v-if="index==2" :src="isindex==2?selcun:cun">
-							<span>{{item.label}}</span>
-						</span>
-					</template>
-					<template #default>
-						<div class="content">
-							<div :class="dj == 1?'item':'item2'" v-for="(res,num) in ALLlist" @click="selectCity(res.label,index+1,res.regioncode,res.dj)">
-								<div :class="addcolor(num)" @click="currentidx(num)">
-									<span>{{res.label}}</span>
-								</div>
-							</div>
-						</div>
-					</template>
-				</el-tab-pane>
-			</i>
-		</el-tabs>
-	</div>
-	<div class="Ficons">
-		<!-- <span>遮罩</span> -->
-		<!-- <el-icon color="#ffffff" class="icons" @click="hide" :size="20">
-			<View v-show="!hideicon" />
-			<Hide v-show="hideicon" />
-		</el-icon> -->
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-	let entities = undefined;
-	export default {
-		data() {
-			return {
-				currentIndex: -1,
-				isindex: 0, //判断选中第几个标题
-				cityList: [{
-					label: '牟平',
-					number: 0,
-					dj: 1
-				}], //tab数组展示列表
-				activeName: 0, //选中的下标牵引
-				ALLlist: [], //所有子集城市
-				downlist: [], //村集
-				dj: 1, //控制列表样式
-				entities: undefined,
-				hideicon: false, //控制遮罩层显示
-				acolor: true, //是否展示颜色
-			}
-		},
-		watch: {
-			//改变高度值
-			activeName() {
-				this.acolor = false
-			}
-		},
-		methods: {
-			currentidx(index) {
-				this.currentIndex = index
-				this.acolor = true
-			},
-
-			//添加颜色样式
-			addcolor(index) {
-				if (this.currentIndex == index) {
-					return {
-						active: this.acolor
-					}
-				}
-			},
-
-			/**
-			 *控制遮罩层
-			 */
-			hide() {
-				this.hideicon = !this.hideicon
-				if (this.hideicon) {
-					entities[0].polygon.material = Cesium.Color.fromBytes(50, 160, 255, 1)
-				} else {
-					entities[0].polygon.material = Cesium.Color.fromBytes(50, 160, 255, 77)
-				}
-			},
-			/**
-			 * 移除定位样式
-			 */
-			remove() {
-				if (window["viewer"].dataSources.getByName('标绘区')) {
-					window["viewer"].dataSources.remove(window["viewer"].dataSources.getByName('标绘区')[0])
-				}
-			},
-
-			//头部标题点击事件
-			handleClick(data) {
-				let index = Number(data.index)
-				//判断点击的是否是第一个标题
-				if (index == 0) {
-					this.getcityList()
-					this.cityList = this.cityList.slice(0, index + 1)
-					this.isindex = index
-					this.activeName = index
-
-					//全图事件
-					this.$parent.$parent.$refs.refMap3d.fullMap(jt3d);
-				}
-			},
-
-			/* 
-			 *** label  城镇村庄名字
-			 * * index  选中下标
-			 * * regioncode  编号
-			 * * dj  村镇等级
-			 */
-			selectCity(label, index, regioncode, dj) {
-				let _this = this
-
-				if (!regioncode) {
-					return
-				}
-
-				//如果等级为1,代表点击的乡镇,需要重新设置ALLlist为村庄列表,并在头部添加乡镇名称
-				if (dj == 1) {
-					this.cityList.push({
-						label: label,
-						number: index,
-						dj: 2
-					})
-					var id = regioncode.slice(0, 9)
-					this.isindex = index
-					this.activeName = index
-					this.$http.get('/getTableList', {
-						tableName: 'map_region', //
-						sqlWhere: "dj = 2 and regioncode like '" + id + "%'",
-						orderByField: ''
-					}).then(res => {
-						if(res.data.length == 0) return
-						this.dj = 2
-						this.ALLlist = []
-						res.data.forEach(
-							item => {
-								this.ALLlist.push({
-									label: item.regionname,
-									regioncode: item.regioncode,
-									dj: item.dj
-								})
-							}
-						)
-					})
-				}
-
-				//根据等级与id获取乡镇或者村庄的面坐标
-				this.$http.get('/getGeoJson', {
-					tableName: 'map_region', //
-					sqlWhere: "dj = " + dj + " and regioncode like '" + regioncode + "%'",
-					orderByField: ''
-				}).then(res => {
-					if (window["viewer"].dataSources.getByName('标绘区')) {
-						window["viewer"].dataSources.remove(window["viewer"].dataSources.getByName('标绘区')[0])
-					}
-					let promise = Cesium.GeoJsonDataSource.load(res.data, {
-						clampToGround: true
-					});
-					promise.then((dataSource) => {
-						window["viewer"].dataSources.add(dataSource); // 加载这个geojson资源 
-						dataSource.name = '标绘区'
-						entities = dataSource.entities.values;
-						const entity = entities[0];
-						entity.polygon.material = Cesium.Color.fromBytes(50, 160, 255, 77)
-						entity.polygon.outlineWidth = 3;
-						entity.polygon.outline = false;
-						entity.polygon.outlineColor = Cesium.Color.RED;
-						entity.polyline = {
-							positions: entity.polygon.hierarchy._value.positions,
-							width: entity.polygon.outlineWidth,
-							material: Cesium.Color.fromBytes(0, 255, 180, 255),
-							clampToGround: true
-						}
-
-						_this.hideicon = false;
-
-						let options = {};
-						// 初始化参数默认值
-						options.duration = Cesium.defaultValue(options.duration, 2);
-						options.heading = Cesium.defaultValue(options.heading, 0);
-						options.pitch = Cesium.defaultValue(options.pitch, -60);
-						options.range = Cesium.defaultValue(options.range, 0.0);
-
-						let colorList = [
-							[90, 120, 255, 153],
-							[150, 255, 90, 153],
-							[255, 150, 50, 153],
-							[50, 160, 255, 77]
-						]
-
-						let flyPromise = window["viewer"].flyTo(entities, {
-							duration: options.duration,
-							offset: {
-								heading: Cesium.Math.toRadians(options.heading),
-								pitch: Cesium.Math.toRadians(options.pitch),
-								range: options.range
-							}
-						});
-						flyPromise.then(res => {
-							let isremove = true
-
-							//面首次加载颜色
-							const entity = entities[0];
-							entity.polygon.material = Cesium.Color.fromBytes(colorList[0][0],
-								colorList[0][1], colorList[0][2], colorList[0][3])
-
-							let idx = 1
-							let timer = setInterval(res => {
-								const entity = entities[0];
-								entity.polygon.material = Cesium.Color.fromBytes(
-									colorList[idx][0], colorList[idx][1],
-									colorList[idx][2], colorList[idx][3])
-								idx++
-							}, 500)
-							setTimeout(res => {
-								clearInterval(timer)
-								
-								_this.hide();
-								
-							}, 2100)
-						})
-					});
-				})
-
-			},
-
-			getcityList() {
-				this.dj = 1
-				this.ALLlist = []
-				this.$http.get('/getTableList', {
-					tableName: 'map_region',
-					sqlWhere: 'dj = 1',
-					orderByField: ''
-				}).then(res => {
-					if(res.data.length == 0) return
-					res.data.forEach(
-						item => {
-							console.log('城镇信息', item)
-							this.ALLlist.push({
-								label: item.regionname,
-								regioncode: item.regioncode,
-								dj: item.dj
-							})
-						}
-					)
-				})
-
-			}
-		},
-		mounted() {
-			this.getcityList()
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.Ficons {
-		position: absolute;
-		top: 10rem;
-		left: 20rem;
-	}
-
-	.active {
-		color: #409eff;
-	}
-
-	//整体样式
-	.tabs {
-		width: 90%;
-		margin-left: 5%;
-		text-align: left;
-
-		--el-font-size-base: 16rem;
-
-		.item {
-			// width: 135rem;
-			width: 80rem;
-			display: inline-block;
-			height: 42rem;
-			margin-right: 15rem;
-			color: #ffffff;
-			font-size: 16rem;
-			cursor: pointer;
-			white-space: nowrap;
-			/*显示的行数;如果要设置2行加...则设置为2*/
-			overflow: hidden;
-			/*超出的文本隐藏*/
-			text-overflow: ellipsis;
-			/* 溢出用省略号*/
-
-			font-style: normal;
-		}
-
-		.item2 {
-			width: 65rem;
-			display: inline-block;
-			height: 35rem;
-			margin-right: 10rem;
-			color: #ffffff;
-			font-size: 16rem;
-			cursor: pointer;
-			white-space: nowrap;
-			/*显示的行数;如果要设置2行加...则设置为2*/
-			overflow: hidden;
-			/*超出的文本隐藏*/
-			text-overflow: ellipsis;
-			/* 溢出用省略号*/
-
-			font-style: normal;
-		}
-
-		.content {
-			width: 100%;
-			margin: 10rem 0;
-			overflow-y: auto;
-		}
-
-		img {
-			width: 18rem;
-			height: 18rem;
-			vertical-align: -10%;
-			margin-right: 2rem;
-		}
-	}
-
-
-
-	.demo-tabs>.el-tabs__content {
-		padding: 32rem;
-		color: #6b778c;
-		font-size: 32rem;
-		font-weight: 600;
-	}
-
-	//未选择tabs标题样式
-	::v-deep .el-tabs__item {
-		color: #ffffff !important;
-	}
-
-	//选中tabs标签样式
-	::v-deep .el-tabs__item.is-active {
-		color: var(--el-color-primary) !important;
-	}
-
-	//选中下划线样式
-	::v-deep .el-tabs__active-bar {
-		bottom: -1rem !important;
-		height: 4rem !important;
-	}
-
-	//下横线样式
-	::v-deep .el-tabs__nav-wrap::after {
-		height: 1rem !important;
-		background-color: darkgrey;
-	}
-</style>

+ 0 - 242
src/views/Map3d/components/measure.vue

@@ -1,242 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-measure">
-		<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem; ">
-			<el-col :span="8" v-for="(item,index) in measure" @click="handleMeasure(item.type,index)">
-				<el-avatar shape="circle" :size="70" :class="currentIndex===index?'selectStyle':'defaultStyle'">
-					<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
-				</el-avatar>
-				<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
-			</el-col>
-		</el-row>
-		<div class="jt-btn" style="margin: 8rem;">
-			<el-button color="rgb(255 100 100)" @click="clearMeasurementData"><span style="color: #fff;width: 300rem;">清空测量数据</span></el-button>
-		</div>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-	let popup = undefined;
-
-	export default {
-		props: {
-
-		},
-		watch: {
-
-		},
-
-		/* 数据 */
-		data() {
-			return {
-				currentIndex: -1,
-				measure: [{
-						label: '长度测量(贴地)',
-						type: 'measureLength',
-						number: 0,
-						icon: 'iconfont icon-thin-_pencil_rul'
-					},
-					{
-						label: '面积测量(贴地)',
-						type: 'measureArea',
-						number: 1,
-						icon: 'iconfont icon-svgmianjiceliang'
-					},
-					{
-						label: '高度测量',
-						type: 'measureHeight',
-						number: 2,
-						icon: 'iconfont icon-svggaoduceliang'
-					},
-					{
-						label: '空间距离',
-						type: 'measureSpatialLength',
-						number: 3,
-						icon: 'iconfont icon-svgkongjianceliang'
-					},
-					{
-						label: '三角测量',
-						type: 'measureTriangle',
-						number: 4,
-						icon: 'iconfont icon-svgsanjiaoceliang'
-					},
-					{
-						label: '坐标测量',
-						type: 'pickUp',
-						number: 5,
-						icon: 'iconfont icon-svgzuobiaoceliang'
-					},
-				],
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			/**
-			 * 测量事件
-			 * @param {Object} type 测量类型
-			 * @param {Object} index 第几个被选中
-			 */
-			handleMeasure(type, index) {
-				this.currentIndex = index;
-
-				//移除左键单击事件
-				if (jt3d.handlerLeftClick) {
-					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
-				}
-
-				jt3d.CommonTools.clear();
-
-				switch (type) {
-					case "measureLength": //长度测量(贴地)
-						jt3d.CommonTools.measureLength(function(error) {
-							ElMessage.error(error)
-						});
-						break;
-					case "measureArea": //面积测量(贴地)
-						jt3d.CommonTools.measureArea(function(error) {
-							ElMessage.error(error)
-						});
-						break;
-					case "measureHeight": //高度测量
-						jt3d.CommonTools.measureHeight()
-						break;
-					case "measureSpatialLength": //空间距离
-						jt3d.CommonTools.measureSpatialLength(function(error) {
-							ElMessage.error(error)
-						});
-						break;
-					case "measureTriangle": //三角测量
-						jt3d.CommonTools.measureTriangle()
-						break;
-					case "pickUp": //坐标测量
-						ElMessage("点击位置开始测量");
-						this.pickUp();
-						break;
-				}
-			},
-
-			/**
-			 * 坐标测量
-			 */
-			pickUp() {
-				let _self = this;
-
-				if (popup) {
-					popup.close();
-				}
-
-				jt3d.SketchViewModel.sketchTools('point', {
-					onComplete(cPoint, gPoint) {
-						if (gPoint.lng) {
-							let html = "";
-							html += "<div style='text-align: left;'>";
-							html += "<p>经度:" + gPoint.lng.toFixed(6) + "</p>";
-							html += "<p>纬度:" + gPoint.lat.toFixed(6) + "</p>";
-							html += "<p>高度:" + gPoint.height.toFixed(2) + "米</p>";
-							html += "</div>";
-
-							let position = {
-								x: Number(gPoint.lng),
-								y: Number(gPoint.lat),
-								z: Number(gPoint.height)
-							}
-
-							// popup = new  _self.jt3dSDK.PopupWindow.HtmlWindow(window["viewer"], position, "位置信息", html,40);
-							popup = new _self.jt3dSDK.PopupWindow.HtmlWindow(window["viewer"], cPoint, "位置信息", html, -30);
-						}
-					},
-					onError(message) {
-						// debugger
-					}
-				});
-			},
-
-			/**
-			 * 清空测量数据
-			 */
-			clearMeasurementData() {
-				this.currentIndex = -1;
-				jt3d.CommonTools.clear();
-				if (popup) {
-					popup.close();
-				}
-
-				//还原左键单击事件
-				this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-			},
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.el-avatar{
-		width: 70rem !important;
-		height: 70rem !important;
-		font-size: 14px !important;
-		cursor: pointer;
-	}
-	
-	.el-button{
-		height: 32rem;
-		font-size: 16rem;
-		padding: 8rem 15rem;
-	}
-	
-	.jt-measure {
-		.el-col {
-			padding: 10rem;
-			// color: rgba(90, 172, 255, 1.0);
-			color: #fff;
-		}
-
-		i {
-			display: inline-block;
-			width: 100%;
-			height: 36rem;
-			line-height: 36rem;
-			text-align: center;
-			border-radius: 5rem;
-			font-size: 40rem;
-			// color: rgba(90, 172, 255, 1.0);
-			color: #fff;
-			transition: all .3s;
-			-webkit-transition: all .3s
-		}
-
-		.selectStyle {
-			// background: rgba(135, 182, 254, 0.5);
-			background: rgb(0 44 126);
-			--el-avatar-size: 70rem !important;
-		}
-
-		.defaultStyle {
-			background: #ffffff00;
-			--el-avatar-size: 70rem !important;
-		}
-
-		.selectFontStyle {
-			color: #fff;
-		}
-	}
-</style>

+ 0 - 318
src/views/Map3d/components/printmap.vue

@@ -1,318 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		ref
-	} from "vue";
-	import {
-		inject
-	} from "vue";
-	import html2canvas from "html2canvas";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-MapPrinting">
-		<div class="middleviewer">
-			<el-input v-model="inputValue.mapname" placeholder="请输入地图名称" @focus="getfous" @blur="onblur" />
-			<div class="viewer">
-				<div id="printbox" ref="print"></div>
-				<div class="viewertop" display='block' ref="thumbnailmap"></div>
-				<div style="display:none" ref="originalmap"></div>
-			</div>
-		</div>
-		<div class="viewerbottom">
-			<!-- <el-button color="rgb(20 136 255)" v-print="printObj"><span style="color: #fff;font-size: 16rem;">打 印</span></el-button> -->
-			<el-button color="rgb(255 100 100)" @click="download"><span style="color: #fff;font-size: 16rem;">下 载</span></el-button>
-		</div>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-	export default {
-		data() {
-			return {
-				inputValue: {
-					mapname: "默认地图",
-				},
-
-				printObj: {
-					id: "printbox",
-					popTitle: "", // 打印配置页上方的标题
-					extraCss: "background-color:red",
-					preview: false, // 是否启动预览模式,默认是false
-					previewTitle: " 关闭预览", // 打印预览的标题
-					previewPrintBtnLabel: "点击打印", // 打印预览的标题下方的按钮文本,点击可进入打印
-					zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高
-					previewBeforeOpenCallback() {
-						console.log("正在加载预览窗口!")
-					}, // 预览窗口打开之前的callback
-					previewOpenCallback() {
-						console.log("已经加载完预览窗口,预览打开了!");
-					}, // 预览窗口打开时的callback
-					beforeOpenCallback() {
-						console.log("开始打印之前!");
-					}, // 开始打印之前的callback
-					openCallback() {
-						console.log("执行打印了!");
-					}, // 调用打印时的callback
-					closeCallback() {
-						console.log("关闭了打印工具!");
-					},
-					clickMounted() {
-						console.log("点击v-print绑定的按钮了!");
-					},
-					standard: "",
-					extarCss: "",
-				},
-			};
-		},
-		methods: {
-			//当选择器的输入框获得焦点时触发,标题获取焦点清空输入框
-			getfous() {
-				this.inputValue.mapname = ""
-			},
-
-			//当选择器的输入框失去焦点时触发
-			onblur() {
-				//删除print组件的内容
-				this.$refs.print.innerHTML = "";
-				// 获取标题
-				let value = this.inputValue.mapname;
-
-				//获取输入框的缺省内容
-				let text = value.length > 0 ? value : '默认地图标题';
-				let canvas = this.changcanvastitile(this.$refs.originalmap.lastChild, text);
-				let url = canvas.toDataURL('image/png', 5.0)
-				let img = document.createElement('img');
-				img.style.display = "block"
-				img.style.width = canvas.style.width;
-				img.style.height = canvas.style.height;
-				img.src = url
-				this.$refs.print.appendChild(img);
-			},
-
-			//下载按钮
-			download() {
-				if (this.$refs.originalmap.children.length <= 0) {
-					ElMessage.error("截图未成功");
-					return
-				}
-				let value = this.inputValue.mapname;
-				//获取输入框的缺省内容
-				let text = value.length > 0 ? value : '默认地图标题';
-
-				let img = this.$refs.print.lastChild;
-				let a = document.createElement('a');
-				a.style.display = 'none';
-				a.download = text + '.png';
-				a.href = img.src;
-				document.body.appendChild(a);
-				a.click();
-				document.body.removeChild(a);
-			},
-
-			//更新打印标题
-			changcanvastitile(canvas, text) {
-
-				//清理标题位置区域
-				let width = parseInt(canvas.style.width.slice(0, -2));
-				let height = parseInt(canvas.style.height.slice(0, -2));
-				//获取上下文
-				const ctx = canvas.getContext('2d');
-				//清理标题问题
-				ctx.clearRect(0, 0, width, 160)
-				//设置字体
-				ctx.font = "bold 50rem arial";
-				document.fonts.load(ctx.font);
-				//设置填充颜色
-				ctx.fillStyle = "black";
-				//循环输入标题,字间距50rem
-				for (let i = 0; i < text.length; i++) {
-					//第I个字的水平位置=((canvs.leght)/2-(text.legth)*letterspace/2+i*letterspace)
-					let x = Math.ceil(width / 2) - (text.length - 1) * 50 + i * 100
-					//水平绘制填充文本
-					ctx.fillText(text[i], x, 100);
-				}
-				return canvas;
-			},
-
-			//打印地图截屏
-			screenshot() {
-				this.$refs.print.innerHTML = "";
-				this.$refs.thumbnailmap.innerHTML = ""
-				this.$refs.originalmap.innerHTML = '';
-				this.inputValue.mapname = "默认地图"
-				html2canvas(this.$parent.$parent.$refs.refMap3d.$refs.cesiumContainer, {
-
-					// backgroundColor: null, //画出来的图片有白色的边框,不要可设置背景为透明色(null)
-					useCORS: true, //支持图片跨域
-					scale: 1, //设置放大的倍数
-					// tainTest:false,
-					// foreignObjectRendering: true,//// 是否在浏览器支持的情况下使用ForeignObject渲染
-					dpi: 300,
-					// width:1920,
-					// height:1080
-
-				}).then(
-					(canvas) => {
-						let url = canvas.toDataURL('image/png', 5.0)
-						let img = document.createElement('img');
-						img.style.display = "block"
-						img.style.width = "calc(100% - 0rem)"
-						img.style.height = "calc(100% - 0rem)";
-						img.src = url
-						//缩略图
-						this.$refs.thumbnailmap.appendChild(img);
-						//创建新的canvas
-						let canvasnew = this.createmap(canvas)
-						let urla = canvasnew.toDataURL('image/png', 5.0)
-						let imga = document.createElement('img');
-						imga.style.display = "block"
-						imga.style.width = canvas.style.width / 2;
-						imga.style.height = canvas.style.height / 2;
-						imga.src = urla
-						//原图
-						this.$refs.originalmap.appendChild(canvasnew);
-						//打印图
-						this.$refs.print.appendChild(imga)
-					}
-				)
-			},
-
-			createmap(img) {
-				//渲染之前先清理掉所有所有指定canvas
-				if (document.getElementById('canvasid')) {
-					document.getElementById('canvasid').remove();
-				}
-				let width = parseInt(img.style.width.slice(0, -2));
-				let height = parseInt(img.style.height.slice(0, -2));
-
-				let canvas = this.createHDCanvas(width + 60, height + 160, 'block')
-
-				//获取上下文
-				const ctx = canvas.getContext('2d');
-				//获取图片对象
-				ctx.drawImage(img, 30, 120, width, height)
-				// let value = this.$refs.refinput.value;
-				let value = this.inputValue.mapname;
-				let text = value.length > 0 ? value : '默认地图标题';
-				console.log("text")
-				console.log(text)
-				ctx.clearRect(0, 0, width, 120)
-				//设置字体
-				ctx.font = "bold 50rem arial";
-				//设置填充颜色
-				ctx.fillStyle = "black";
-				//循环输入标题,字间距50rem
-				for (let i = 0; i < text.length; i++) {
-					//第I个字的水平位置=((canvs.leght)/2-(text.legth)*letterspace/2+i*letterspace)
-					let x = Math.ceil(width / 2) - (text.length - 1) * 50 + i * 100
-					//水平绘制填充文本
-					ctx.fillText(text[i], x, 100);
-				}
-				return canvas;
-			},
-			createHDCanvas(w = 300, h = 150, display = 'block') {
-				let ratio = window.devicePixelRatio * 1 || 1;
-				let canvas = document.createElement('canvas');
-				canvas.id = "canvasid";
-				canvas.width = w * ratio; // 实际渲染像素
-				canvas.height = h * ratio; // 实际渲染像素
-				canvas.style.display = display;
-				canvas.style.width = `${w}rem`; // 控制显示大小
-				canvas.style.height = `${h}rem`; // 控制显示大小
-				canvas.style.backgroundColor = "red";
-				// setTransform() 允许您缩放、旋转、移动并倾斜当前的环境
-				canvas.getContext('2d').setTransform(ratio, 0, 0, ratio, 0, 0);
-				return canvas;
-			},
-		},
-
-		mounted() {
-			// //获取角色
-			// this.info = JSON.parse(localStorage.getItem("person"));
-			// //获取角色id
-			// this.id = this.info.id;
-			// this.$bus.on("screenshot", (e) => {
-			// 	console.log("aaaaa")
-			// 	this.screenshot()
-			// })
-		},
-	};
-</script>
-
-<style lang="scss" scoped>
-	.jt-MapPrinting {
-		width: 100%;
-		height: 100%;
-		overflow: hidden;
-
-		--el-fill-color-blank: rgb(0 44 126 / 68%);
-		--el-text-color-regular: rgb(216 240 255);
-		--el-border-color: rgb(35 135 255);
-
-		.middleviewer {
-			height: 92%;
-
-			.viewer {
-				position: relative;
-				width: 100% !important;
-				height: calc(100% - 29rem) !important;
-				overflow: hidden;
-
-				.viewertop {
-					width: calc(100% - 2rem);
-					height: calc(100% - 2rem);
-					border: 1rem solid rgb(35 135 255);
-					position: absolute;
-					top: 0;
-					left: 0;
-				}
-			}
-		}
-
-		.viewerbottom {
-			margin: 10rem;
-		}
-	}
-
-	::v-deep .el-input {
-		flex-grow: 0 !important;
-		width: calc(100%);
-		height: 30rem !important;
-		letter-spacing: 100rem;
-	}
-
-	//输入框文字颜色
-	::v-deep .el-input__inner {
-		color: rgb(255, 255, 255);
-		text-align: center;
-	}
-
-	//输入框背景色
-	::v-deep .el-input__wrapper {
-		background-color: rgba(255, 255, 255, 0) !important;
-	}
-
-	::v-deep .el-button {
-		border-radius: 3rem !important;
-		height: 32rem;
-	}
-
-	::v-deep .el-button--primary {
-		background-color: rgba(64, 158, 255, 0.6) !important;
-	}
-
-	::-webkit-scrollbar {
-		width: 0rem;
-	}
-</style>

+ 0 - 433
src/views/Map3d/components/query-graphics.vue

@@ -1,433 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-query-graphics">
-		<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem">
-			<el-col :span="8" v-for="(item,index) in queryGraphics" @click="handleQueryGraphics(item.type,index)">
-				<el-avatar shape="circle" :size="70" :class="currentIndex===index?'selectStyle':'defaultStyle'">
-					<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
-				</el-avatar>
-				<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
-			</el-col>
-		</el-row>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-
-	import {
-		Store
-	} from '@/store/index'
-	let store = Store();
-
-	import {
-		deepTree
-	} from "@/utils/deepTree.js";
-
-	export default {
-		props: {
-
-		},
-		watch: {
-
-		},
-
-		/* 数据 */
-		data() {
-			return {
-				currentIndex: -1,
-				queryGraphics: [{
-						label: '点查询',
-						type: 'Point',
-						number: 0,
-						icon: 'iconfont icon-svgdianchaxun'
-					},
-					{
-						label: '线查询',
-						type: 'Line',
-						number: 1,
-						icon: 'iconfont icon-svgxianchaxun'
-					},
-					{
-						label: '圆形查询',
-						type: 'Circle',
-						number: 2,
-						icon: 'iconfont icon-svgyuanxingchaxun'
-					},
-					{
-						label: '矩形查询',
-						type: 'Rectangle',
-						number: 3,
-						icon: 'iconfont icon-svgjuxingchaxun'
-					},
-					{
-						label: '多边形',
-						type: 'Polygon',
-						number: 4,
-						icon: 'iconfont icon-svgduobianxingchaxun'
-					},
-					{
-						label: '清除',
-						type: 'clear',
-						number: 5,
-						icon: 'iconfont icon-shanchu'
-					},
-				],
-			}
-		},
-
-		/* 方法 */
-		methods: {
-			/**
-			 * 查询事件
-			 * @param {Object} type 查询类型
-			 * @param {Object} index 第几个被选中
-			 */
-			handleQueryGraphics(type, index) {
-				let _self = this;
-				this.currentIndex = index;
-
-				//移除左键单击事件
-				if (jt3d.handlerLeftClick) {
-					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //移除事件
-				}
-
-				jt3d.CommonTools.clear();
-				switch (type) {
-					case "Point": //点查询
-						jt3d.CommonTools.queryByPoint(function(coordinates) {
-							console.log(coordinates)
-
-							//还原左键单击事件
-							_self.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-
-							/* 转换坐标 */
-							let points = coordinates.split(',');
-
-							_self.initQuery({
-								spatialType: '点',
-								coordinate: Number(points[0]) + " " + Number(points[1]),
-								buffer: ''
-							});
-
-						});
-						break;
-					case "Line": //线查询
-						jt3d.CommonTools.queryByLine(function(coordinates) {
-							console.log(coordinates)
-
-							//还原左键单击事件
-							_self.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-
-							/* 转换坐标 */
-							let points = coordinates.split(',');
-							let pointsArray = [];
-							for (let i = 0; i < points.length;) {
-								pointsArray.push(Number(points[i]) + " " + Number(points[i + 1]));
-								i = i + 2;
-							}
-
-							_self.initQuery({
-								spatialType: '线',
-								coordinate: pointsArray.join(','),
-								buffer: ''
-							});
-						});
-						break;
-					case "Circle": //圆形查询
-						jt3d.CommonTools.queryByCircle(function(coordinates, radius) {
-							console.log("圆点:" + coordinates + ",半径:" + radius)
-
-							//还原左键单击事件
-							_self.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-
-							/* 转换坐标 */
-							let points = coordinates.split(',');
-
-							_self.initQuery({
-								spatialType: '点',
-								coordinate: Number(points[0]) + " " + Number(points[1]),
-								buffer: radius
-							});
-
-						});
-						break;
-					case "Rectangle": //矩形查询
-						jt3d.CommonTools.queryByRectangle(function(coordinates) {
-							console.log(coordinates)
-
-							//还原左键单击事件
-							_self.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-
-							/* 转换坐标 */
-							let points = coordinates.split(',');
-							let pointsArray = [];
-							for (let i = 0; i < points.length;) {
-								pointsArray.push(Number(points[i]) + " " + Number(points[i + 1]));
-								i = i + 2;
-							}
-
-							_self.initQuery({
-								spatialType: '面',
-								coordinate: pointsArray.join(','),
-								buffer: ''
-							});
-
-						});
-						break;
-					case "Polygon": //多边形查询
-						jt3d.CommonTools.queryByPolygon(function(coordinates) {
-							console.log(coordinates)
-
-							//还原左键单击事件
-							_self.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-
-							/* 转换坐标 */
-							let points = coordinates.split(',');
-							let pointsArray = [];
-							for (let i = 0; i < points.length;) {
-								pointsArray.push(Number(points[i]) + " " + Number(points[i + 1]));
-								i = i + 2;
-							}
-
-							_self.initQuery({
-								spatialType: '面',
-								coordinate: pointsArray.join(','),
-								buffer: ''
-							});
-
-						});
-						break;
-					case "clear": //清除查询效果
-						this.currentIndex = -1;
-
-						//清除绘制
-						jt3d.CommonTools.clear();
-
-						//还原左键单击事件
-						this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
-
-						//清除高亮显示
-						let list = jt3d._dataSources.getByName("单击高亮显示")
-						list.forEach(res => {
-							jt3d._dataSources.remove(res)
-						})
-
-						//清除定位样式
-						if (jt3d.LocateUtil._locationEntity) {
-							window["viewer"].entities.remove(jt3d.LocateUtil._locationEntity);
-						}
-						break;
-				}
-			},
-			/**
-			 * Promise回调
-			 * @param {Object} options
-			 */
-			initQuery(options) {
-				let _self = this;
-				_self.treeNodes = [];
-
-				//清除高亮显示
-				let list = jt3d._dataSources.getByName("单击高亮显示")
-				list.forEach(res => {
-					jt3d._dataSources.remove(res)
-				})
-
-				//清除定位样式
-				if (jt3d.LocateUtil._locationEntity) {
-					window["viewer"].entities.remove(jt3d.LocateUtil._locationEntity);
-				}
-				store.queryMapTables.forEach((itemTable, index) => {
-					getData(itemTable).then(flag => {
-						if (flag === true && index === (store.queryMapTables.length - 1) && _self.treeNodes.length > 0) {
-							console.log("treeNodes", _self.treeNodes);
-
-							_self.$parent.$parent.$refs.refQueryResult.expandedKeys = []
-							_self.$parent.$parent.$refs.refQueryResultPopup.isshow = true;
-							_self.$parent.$parent.$refs.refQueryResult.treeData = deepTree(_self.treeNodes);
-
-							//默认选中第一个节点并赋予选中样式
-							_self.$nextTick(function() {
-								let currentNode = _self.$parent.$parent.$refs.refQueryResult.treeData[0].children[0];
-								let currentKey = currentNode.id;
-								_self.$parent.$parent.$refs.refQueryResult.currentKey = currentKey;
-								_self.$parent.$parent.$refs.refQueryResult.$refs.tree.setCurrentKey(currentKey);
-								_self.$parent.$parent.$refs.refQueryResult.handleNodeClick(currentNode);
-							});
-
-							//expandedKeys默认展开treedata第一层,加载第一层数据
-							_self.$parent.$parent.$refs.refQueryResult.expandedKeys.push(_self.$parent.$parent.$refs.refQueryResult.treeData[0].id)
-
-							//清除绘制
-							jt3d.CommonTools.clear();
-
-						}
-					});
-				});
-
-				//Promise回调
-				function getData(itemTable) {
-					return new Promise((resolve, reject) => {
-						_self.$http.get('/getSpatialQuery', {
-							tableName: itemTable,
-							spatialType: options.spatialType,
-							coordinate: options.coordinate,
-							buffer: options.buffer
-						}).then(res => {
-
-							_self.tableName = res.table[0].tableName;
-							_self.field = res.table[0].fields;
-
-							if (res.data.features.length > 0) {
-								//添加父节点
-								let parentNode = {
-									id: _self.tableName,
-									parentid: "CIM",
-									label: res.table[0].tableDescription + "(" + res.data.features.length + ")",
-								};
-								_self.treeNodes.push(parentNode);
-
-								res.data.features.forEach(itemData => {
-
-									//**************高亮显示****************
-
-									// /* 转换坐标 */
-									// let positions = itemData.geometry.coordinates[0][0].map(point => {
-									// 	return Cesium.Cartesian3.fromDegrees(point[0], point[1], point[2] || 0);
-									// });
-
-									// //先创建一个CustomDataSource源,然后把entity存入这里面
-									// let Polygon = new Cesium.CustomDataSource("单击高亮显示");
-									// jt3d._dataSources.add(Polygon);
-									// //添加数据的方式
-									// Polygon.entities.add({
-									// 	polygon: {
-									// 		hierarchy: new Cesium.PolygonHierarchy(positions),
-									// 		material: Cesium.Color.fromCssColorString("rgba(255,0,255,.7)"),
-									// 		classificationType: Cesium.ClassificationType.BOTH,
-									// 	},
-									// });
-
-									//**************高亮显示****************
-
-									let childNode = {
-										id: itemData.properties["id"],
-										parentid: _self.tableName,
-										field: _self.field,
-										data: itemData,
-									};
-
-									switch (_self.tableName) {
-										//==============规划管理数据-重要控制线=========================
-										case "yjjbnt": //永久基本农田
-											childNode.label = itemData.properties["cfzr"] + "(" + itemData.properties["zzsxmc"] + ")"
-											break;
-										case "yjtz": //永久基本农田调整
-											childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
-											break;
-										case "bnrgdbh": //不纳入耕地保护目标
-											childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
-											break;
-										case "gdbhrw": //耕地保护任务
-											childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
-											break;
-
-											//==============规划管理数据-历史规划==============
-										case "tdzgh": //土地利用总体规划
-											childNode.label = itemData.properties["ghdlmc"]
-											break;
-										case "jsyd": //建设用地管制区
-											childNode.label = itemData.properties["id"]
-											break;
-
-											//==============现状类数据-森林资源-森林资源调查==============
-										case "slyzt": //2019年森林资源管理一张图
-											childNode.label = itemData.properties["id"]
-											break;
-
-											//==============现状类数据-国土调查==============
-										case "ed2009": //二调
-											childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
-											break;
-										case "ed2020": //二调2020
-											childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
-											break;
-										case "ed2021": //二调2021
-											childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
-											break;
-										case "sddltb": //三调   
-											childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
-											break;
-									}
-
-									_self.treeNodes.push(childNode);
-								});
-
-								resolve(true)
-							}
-						})
-					})
-				}
-			}
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.jt-query-graphics {
-		.el-col {
-			padding: 10rem;
-			// color: rgba(90, 172, 255, 1.0);
-			//color: #55ffff;
-			color: #fff;
-		}
-
-		i {
-			display: inline-block;
-			width: 100%;
-			height: 36rem;
-			line-height: 36rem;
-			text-align: center;
-			border-radius: 5rem;
-			font-size: 40rem;
-			// color: rgba(90, 172, 255, 1.0);
-			// color: #55ffff;
-			color: #fff;
-			transition: all .3s;
-			-webkit-transition: all .3s
-		}
-
-		.selectStyle {
-			// background: rgba(135, 182, 254, 0.5);
-			background: rgb(0 44 126);
-		}
-
-		.defaultStyle {
-			background: #ffffff00;
-		}
-
-		.selectFontStyle {
-			color: #fff;
-		}
-	}
-</style>

+ 0 - 405
src/views/Map3d/components/query-keyword.vue

@@ -1,405 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	/**
-	 * element-plus字体
-	 */
-	import jt3dNavigation from 'cesium-navigation-es6';
-	import {
-		Search,
-		DArrowRight
-	} from '@element-plus/icons-vue';
-	import {
-		inject
-	} from "vue";
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="query-keyword fadein-left">
-		<el-input v-model="search.searchKey" placeholder="请输入查询关键字" @change="searchKeyChange" @input="searchKeyChange" clearable>
-			<template #append>
-				<el-button :icon="Search" @click="btnSearchClick" />
-			</template>
-		</el-input>
-		<div class="autocomplete " v-if="search.searchListShow">
-			<ul>
-				<li v-for="(item,index) in search.searchCompleteData" :key="index" @click="SearchSelect(index)">
-					{{ item }}
-				</li>
-			</ul>
-		</div>
-		<div class="query-result" v-if="resultListShow">
-			<template v-if="resultCompleteData && resultCompleteData.length">
-				<ul>
-					<li v-for="(item, i) in resultCompleteData" :key="i" class="query-result__item" @click.stop="flyTo(item)">
-						<div class="query-result__context">
-							<p class="query-result-text" :title="item.name">
-								<span class="query-result-text_num">{{ i + 1 }}</span>
-								{{ item.name }}
-							</p>
-							<p class="query-result-sub">{{ item.label }}</p>
-						</div>
-						<p class="query-result__more">
-							<el-icon>
-								<DArrowRight />
-							</el-icon>
-						</p>
-					</li>
-				</ul>
-				<div class="query-result__page">
-					<p class="query-result-allcount">共{{ resultCompleteData.length }}条结果</p>
-					<el-pagination layout="prev, pager, next" size="small" :total="resultCompleteData.length" pageSize="1" :simple="true" />
-				</div>
-			</template>
-		</div>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-	export default {
-		props: {
-
-		},
-
-		/**
-		 * 数据
-		 */
-		data() {
-			return {
-				search: {
-					searchKey: "", // input框输入的值,用v-model双向绑定
-					searchDataList: [], // autocomplete查询数据,一般由后端返回
-					searchCompleteData: [], // autocomplete查询到的数据
-					searchListShow: false,
-				},
-				resultCompleteData: [], // 查询结果
-				resultListShow: false,
-				pagination: {
-					size: "small",
-					total: 0,
-					pageSize: 6,
-					simple: true
-				}
-			}
-		},
-
-		/**
-		 * 方法
-		 */
-		methods: {
-			/**
-			 * 比例尺、指南针
-			 */
-			initNavigation(jt3d) {
-				let options = {};
-				// 用于在使用重置导航重置地图视图时设置默认视图控制。接受的值是Cesium.Cartographic 和 Cesium.Rectangle.
-				options.defaultResetView = Cesium.Rectangle.fromDegrees(121.13766, 36.99670, 121.94984, 37.55286);
-				// options.defaultResetView = Cesium.Cartographic.fromDegrees(103.84,31.15,24000);
-				// options.defaultResetView = Cesium.Cartographic.fromDegrees(Cesium.Math.toRadians(103.84),Cesium.Math.toRadians(31.15),Cesium.Math.toRadians(24000));
-				options.orientation = {
-					heading: Cesium.Math.toRadians(0),
-					pitch: Cesium.Math.toRadians(-90),
-					roll: 0
-				};
-			
-				//相机延时
-				options.duration = 4; //默认为3s
-			
-				// 用于启用或禁用罗盘。
-				options.enableCompass = true;
-				// 用于启用或禁用指南针外环。
-				options.enableCompassOuterRing = true;
-				// 用于启用或禁用缩放控件。
-				options.enableZoomControls = true;
-				// 用于启用或禁用距离图例。
-				options.enableDistanceLegend = false;
-			
-				//修改重置视图的tooltip
-				options.resetTooltip = "重置视图";
-				//修改放大按钮的tooltip
-				options.zoomInTooltip = "放大";
-				//修改缩小按钮的tooltip
-				options.zoomOutTooltip = "缩小";
-			
-				//如需自定义罗盘控件,请看下面的自定义罗盘控件
-				new jt3dNavigation(jt3d._viewer, options);
-			},
-			
-			/**
-			 * 在 Input 值改变时触发
-			 * 当 modelValue 改变时,当输入框失去焦点或用户按Enter时触发
-			 */
-			searchKeyChange() {
-				let _self = this;
-				this.search.searchListShow = true;
-				this.resultListShow = false;
-				let searchRegex = new RegExp(this.search.searchKey, 'i');
-				this.search.searchCompleteData = []; // 先把原有的数据清空,重新查询
-				if (this.search.searchKey === '') return; //如果什么都没有输入,则不用查找
-				this.search.searchDataList.forEach((item) => {
-					if (searchRegex.test(item.label)) {
-						_self.search.searchCompleteData.push(item.label)
-					}
-				});
-			},
-
-			/**
-			 * 选中联想查询数据
-			 * @param {Object} index
-			 */
-			SearchSelect(index) {
-				this.search.searchListShow = false;
-				console.log(this.search.searchCompleteData[index]);
-				this.getSearchData(this.search.searchCompleteData[index]);
-			},
-
-			/**
-			 * 查询按钮
-			 */
-			btnSearchClick() {
-				if (this.search.searchKey === "") {
-					ElMessage("请输入查询关键字");
-					return;
-				}
-				this.getSearchData(this.search.searchKey);
-			},
-
-			/**
-			 * 数据查询
-			 * @param {Object} queryString
-			 */
-			getSearchData(queryString) {
-				let _self = this;
-				_self.$http.get('/getTableList', {
-					tableName: 'base_sys_role',
-					sqlWhere: " label like '%" + queryString + "%'",
-					orderByField: ''
-				}).then(res => {
-					console.log('从服务端搜索数据', res.data)
-					_self.resultCompleteData = res.data;
-					_self.resultListShow = true;
-					_self.search.searchListShow = false;
-				});
-			}
-		},
-
-		mounted() {
-			//比例尺、指南针
-			this.initNavigation(jt3d);
-			let _self = this;
-			_self.$http.get('/getTableList', {
-				tableName: 'base_sys_role',
-				sqlWhere: '',
-				orderByField: ''
-			}).then(res => {
-				console.log('从服务端搜索数据', res.data)
-				_self.search.searchDataList = res.data;
-			});
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	$jt3d-text-color:#fff;
-	$jt3d-content-color:#fff;
-
-	$jt3d-select-bg:red;
-
-	.query-keyword {
-		position: absolute;
-		top: 80rem;
-		width: 200rem;
-		left: 10rem;
-		border: 1rem solid rgb(0 44 126 / 100%);
-
-		.el-input {
-			--el-input-bg-color: rgb(0 44 126 / 50%);
-			--el-input-border-color: rgb(0 44 126 / 50%);
-			--el-input-placeholder-color: #fff;
-
-			--el-fill-color-blank: rgb(0 44 126 / 80%);
-			--el-text-color-regular: #fff;
-			--el-color-primary: #fff --el-border-radius-base:0rem;
-			--el-border-radius-base: 0rem;
-
-			.el-button {
-				background-color: rgb(0 44 126 / 100%);
-				color: #fff;
-			}
-		}
-
-		.autocomplete {
-			--el-fill-color-blank: rgb(0 44 126 / 0%);
-		}
-	}
-
-	.autocomplete ul {
-		font-family: sans-serif;
-		position: absolute;
-		list-style: none;
-		background: rgb(0 44 126 / 30%);
-		margin: 0;
-		width: 80%;
-		margin-top: 1rem;
-		margin-left: -1rem;
-		border: 1rem solid rgb(0 44 126 / 100%);
-	}
-
-	.autocomplete ul li {
-		text-decoration: none;
-		display: block;
-		background: rgb(0 44 126 / 30%);
-		color: #fff;
-		padding: 5rem;
-		margin-left: -40rem;
-		text-align: left;
-	}
-
-	.autocomplete ul li:hover,
-	.autocomplete ul li.focus-list {
-		color: white;
-		background: #2F9AF7;
-	}
-
-	.query-result {
-		position: absolute;
-		border-top: none;
-		padding-bottom: 0rem;
-		width: 100%;
-		z-index: 100;
-		border: 1rem solid rgb(0 44 126 / 100%);
-		background: rgb(0 44 126 / 30%);
-		margin-left: -1rem;
-
-		--el-fill-color-blank: rgb(0 44 126 / 0%);
-		--color: #fff;
-		--el-color-primary: #fff;
-
-		.query-result__item {
-			height: 80rem;
-			padding: 0 10rem;
-			display: flex;
-			justify-content: flex-start;
-			align-items: center;
-			margin-left: -40rem;
-			text-align: left;
-
-			&:hover {
-				// background-color: var(--mars-select-bg);
-			}
-
-			.query-result__context {
-				flex-grow: 1;
-				width: 90%;
-
-				.query-result-text {
-					font-size: 16rem;
-					width: 200rem;
-					font-family: Source Han Sans CN;
-					font-weight: 400;
-					// color: var($jt3d-text-color);
-					color: $jt3d-text-color;
-
-					.query-result-text_num {
-						width: 20rem;
-						height: 20rem;
-						margin-right: 5rem;
-						display: inline-block;
-						text-align: center;
-						background: rgb(0 44 126 / 100%);
-					}
-				}
-
-				.query-result-sub {
-					font-size: 14rem;
-					width: 200rem;
-					margin-left: 19rem;
-					font-family: Source Han Sans CN;
-					font-weight: 400;
-					// color: var($jt3d-content-color);
-					color: $jt3d-content-color;
-				}
-			}
-
-			.query-result__more {
-				font-size: 14rem;
-				font-family: Source Han Sans CN;
-				font-weight: 400;
-				// color: var($jt3d-content-color);
-				color: $jt3d-content-color;
-			}
-		}
-
-		.query-result__page {
-			display: flex;
-			justify-content: space-between;
-			padding: 5rem;
-
-			.query-result-allcount {
-				font-size: 14rem;
-				// color: var($jt3d-text-color);
-				color: $jt3d-text-color;
-			}
-		}
-	}
-	
-	/* 四个边角样式 */
-	// .borderstyle {
-	// 	position: relative;
-	// 	width: 100%;
-	// 	height: 490rem;
-	// 	padding: 10rem;
-	// 	border: 1rem solid #008aff70 !important;
-	// 	background-color: rgba(5, 45, 115, 0.7) !important;
-	// 	box-shadow: 0 4rem 15rem 1rem #02213bb3;
-	
-
-		.angle-border {
-			position: absolute;
-			width: 12rem;
-			height: 12rem;
-		}
-	
-		.angle-border-blue {
-			position: absolute;
-			width: 70rem;
-			height: 30rem;
-		}
-	
-		.left-top-border {
-			top: -2rem;
-			left: -2rem;
-			border-left: 2rem solid #008affdd;
-			border-top: 2rem solid #008affdd;
-		}
-	
-		.right-top-border {
-			top: -2rem;
-			right: -2rem;
-			border-right: 2rem solid #008affdd;
-			border-top: 2rem solid #008affdd;
-		}
-	
-		.left-bottom-border {
-			bottom: -2rem;
-			left: -2rem;
-			border-bottom: 2rem solid #FFFFFF;
-			border-left: 2rem solid #FFFFFF;
-		}
-	
-		.right-bottom-border {
-			bottom: -2rem;
-			right: -2rem;
-			border-right: 2rem solid #FFFFFF;
-			border-bottom: 2rem solid #FFFFFF;
-		}
-	// }
-</style>

+ 0 - 300
src/views/Map3d/components/queryResult.vue

@@ -1,300 +0,0 @@
-<script setup>
-	import {
-		formattingTime
-	} from '@/assets/js/localtime.js';
-
-	import {
-		inject
-	} from "vue";
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-<template>
-	<div class="jt-queryResult">
-		<div class="_left">
-			<el-tree class="tree-line queryResultTree" ref="tree" node-key="id" :data="treeData" :default-expanded-keys="expandedKeys" :current-node-key="currentKey" @node-click="handleNodeClick" highlight-current />
-		</div>
-		<div class="_right">
-			<div id="detailDiv"></div>
-		</div>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-
-	export default {
-		props: {
-			tree: {
-				type: Object,
-				default () {
-					return []
-				}
-			}
-		},
-		data() {
-			return {
-				treeData: this.tree,
-				currentKey: "",
-				expandedKeys: [], //对应要展开的节点id
-			}
-		},
-		methods: {
-			/**
-			 * 树单击事件
-			 */
-			handleNodeClick(treeNode) {
-
-				let _self = this;
-
-				return new Promise((resolve, reject) => {
-
-					if (treeNode.parentid != 'CIM') {
-
-						//清除高亮显示
-						let list = jt3d._dataSources.getByName("单击高亮显示")
-						list.forEach(res => {
-							jt3d._dataSources.remove(res)
-						})
-
-						//高亮显示并定位显示详细信息
-						jt3d.PolygonObject.generatePolygonByPoints(treeNode.data.geometry.coordinates[0][0], {
-							color: [255, 0, 255, 0],
-							outline: true,
-							outlineWidth: 5,
-							outlineColor: [0, 255, 180, 1]
-						}).then((locationEntity) => {
-							// 初始化定位参数
-							let options = {};
-							options.duration = Cesium.defaultValue(options.duration, 2);
-							options.heading = Cesium.defaultValue(options.heading, 0);
-							options.pitch = Cesium.defaultValue(options.pitch, -60);
-							options.range = Cesium.defaultValue(options.range, 800.0);
-
-							let flyToEntity = jt3d.LocateUtil.flyToEntity(locationEntity, options);
-							flyToEntity.then(function(flag) {
-								//详细信息
-								let strHtml = "";
-								strHtml += "<table>";
-								strHtml += "<thead>";
-								strHtml += "<tr>";
-								strHtml += "<th>属性名</th>";
-								strHtml += "<th>属性值</th>";
-								strHtml += "</tr> ";
-								strHtml += " </thead>";
-								strHtml += "<tbody>";
-
-								var field = treeNode.field;
-								var properties = treeNode.data.properties
-								field.forEach(itemField => {
-									if (itemField.isDisplay === 1) {
-										var fieldDesc = itemField.fieldDescription || itemField
-											.fieldName;
-										var fieldVals = properties[itemField.fieldName];
-
-										//日期格式
-										if (itemField.fieldType === 1) {
-											let time = new Date(fieldVals).getTime();
-											fieldVals = formattingTime(time);
-										}
-
-										if (fieldVals != null && fieldVals != "" && fieldVals !=
-											undefined) {
-											strHtml += "<tr>";
-											strHtml += "<td>" + fieldDesc + "</td>";
-											strHtml += "<td>" + fieldVals + "</td>";
-											strHtml += "</tr>";
-										}
-									}
-								});
-
-								strHtml += "</tbody>";
-								strHtml += "</table>";
-
-								let divb = document.getElementById('detailDiv')
-								divb.innerHTML = strHtml; //设置显示的数据,可以是标签.
-
-							});
-
-						});
-					}
-
-					resolve(1)
-				})
-			},
-
-		},
-		mounted() {}
-	}
-</script>
-
-<style lang="scss">
-	.jt-queryResult {
-		overflow: hidden;
-
-		//左侧树
-		&>div:nth-child(1) {
-			width: 220rem;
-			height: 380rem;
-			float: left;
-			overflow: auto;
-			border-right: 5rem solid #ddd;
-
-			.el-tree {
-				background: rgb(28 59 112 / 0%);
-				height: calc(100% - 2rem);
-				color: #fff;
-				--el-tree-node-hover-bg-color: #2a67c3;
-				--el-font-size-base: 14rem;
-
-				.overflowtext {
-					width: auto !important;
-					padding: 0;
-				}
-			}
-
-
-
-			.tree-line {
-				.el-tree-node {
-					position: relative;
-				}
-
-				.el-tree-node__children {
-					padding-left: 16rem !important; // 缩进量
-
-					.el-tree-node__content {
-						padding-left: 18rem !important;
-					}
-				}
-
-				//高亮显示选中样式
-				.el-tree-node.is-current>.el-tree-node__content {
-					background: #2a67c3;
-				}
-
-				// 竖线
-				.el-tree-node::before {
-					content: "";
-					height: 100%;
-					width: 1rem;
-					position: absolute;
-					left: -3rem;
-					top: -26rem;
-					border-width: 1rem;
-					border-left: 1rem dashed rgba(255, 255, 255, .8);
-				}
-
-				// 当前层最后一个节点的竖线高度固定
-				.el-tree-node:last-child::before {
-					height: 38rem; // 可以自己调节到合适数值
-				}
-
-				// 横线
-				.el-tree-node::after {
-					content: "";
-					width: 24rem;
-					height: 20rem;
-					position: absolute;
-					left: -3rem;
-					top: 12rem;
-					border-width: 1rem;
-					border-top: 1rem dashed rgba(255, 255, 255, .8);
-				}
-
-				// 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
-				&>.el-tree-node::after {
-					border-top: none;
-				}
-
-				&>.el-tree-node::before {
-					border-left: none;
-				}
-
-				// 展开关闭的icon
-				.el-tree-node__expand-icon {
-					font-size: 16rem;
-
-					// 叶子节点(无子节点)
-					&.is-leaf {
-						color: transparent;
-						display: none; // 也可以去掉
-					}
-				}
-			}
-
-		}
-
-		//右侧基本信息
-		&>div:nth-child(2) {
-			width: calc(100% - 240rem);
-			height: calc(100% - 0rem);
-			float: left;
-			margin-left: 10rem;
-			font-size: 14rem;
-			padding-top: 5rem;
-
-			table {
-				border-collapse: collapse;
-				margin: 0 auto;
-				text-align: center;
-				width: 100%;
-			}
-
-			table td,
-			table th {
-				// border: 1rem solid #ddd;
-				color: #fff;
-				height: 30rem;
-			}
-
-			table thead th {
-				background-color: rgb(28 59 112 / 100%);
-				border: 2rem solid #ddd;
-			}
-
-			table tr:nth-child(odd) {
-				background: rgb(40 89 172 / 60%);
-				border-left: 2rem solid #ddd;
-				border-right: 2rem solid #ddd;
-				border-bottom: 1rem solid #ddd;
-			}
-
-			table tr:nth-child(even) {
-				background: rgb(28 59 112 / 60%);
-				border-left: 2rem solid #ddd;
-				border-right: 2rem solid #ddd;
-				border-bottom: 1rem solid #ddd;
-			}
-
-			// thead 表头固定,tbody 滚动
-			table>thead>tr {
-				display: table;
-				width: 100%;
-				table-layout: fixed;
-			}
-
-			table>tbody {
-				display: block;
-				height: 340rem;
-				/* 隐藏水平溢出内容 */
-				overflow-x: hidden;
-				/* 当垂直内容超出显示高度时以滚动条形式展示 */
-				overflow-y: auto;
-			}
-
-			table>tbody>tr {
-				/* 将tr设置为table元素,以此达到内容沾满table的效果 */
-				display: table;
-				/* 将tr宽度设置为100%,以此达到内容沾满table的效果 */
-				width: 100%;
-				/* 设置table-layout为fixed以达到首行和内容行对其的效果 */
-				table-layout: fixed;
-			}
-
-			table>tbody>tr>td {
-				border-right: 2rem solid #ddd;
-			}
-		}
-	}
-</style>

+ 29 - 21
src/views/Map3d/components/sbyxjc.vue

@@ -149,8 +149,16 @@
 						let popup = new that.jt3dSDK.PopupWindow.HtmlWindow(window["viewer"], [120.623,
 							36.9157
 						], "设备信息", html, 50);
-						// this.createCircle()
-						// Drawtools._createCircle( Cesium.Cartesian3.fromDegrees(120.623, 36.9157),'dynamicCircle')
+						jt3d.CircleObject.drawCircle([120.623, 36.9157], 50, {
+							// color: [255, 255, 0, 0.8]
+							color: [255, 0, 0, 1],
+							outline: true,
+							outlineColor: [255, 255, 255, 1],
+							outlineWidth: 20,
+							CircleType: 'DynamicCircle',
+							count: 2,
+							duration: 1000
+						})
 					})
 				})
 
@@ -169,29 +177,29 @@
 			createCircle() {
 
 				//定义中心和半径
-				let entity = jt3d._viewer.entities.add({
-					position: Cesium.Cartesian3.fromDegrees(120.623, 36.9157),
-					name: 'Dynamic Circle',
-					description: 'A dynamic circle.',
-				});
+				// let entity = jt3d._viewer.entities.add({
+				// 	position: Cesium.Cartesian3.fromDegrees(120.623, 36.9157),
+				// 	name: 'Dynamic Circle',
+				// 	description: 'A dynamic circle.',
+				// });
 
-				// // 添加动态圆形
-				// 添加静态圆形
-				var radius = 100;
-				var vertexFormat = Cesium.VertexFormat.POSITION_ONLY;
+				// // // 添加动态圆形
+				// // 添加静态圆形
+				// var radius = 100;
+				// var vertexFormat = Cesium.VertexFormat.POSITION_ONLY;
 
-				var circleGeometry = new Cesium.CircleGeometry({
-					center: entity.position.getValue(), // 圆心位置
-					radius: radius,
-					vertexFormat: vertexFormat
-				});
+				// var circleGeometry = new Cesium.CircleGeometry({
+				// 	center: entity.position.getValue(), // 圆心位置
+				// 	radius: radius,
+				// 	vertexFormat: vertexFormat
+				// });
 
-				var geometry = Cesium.CircleGeometry.createGeometry(circleGeometry);
+				// var geometry = Cesium.CircleGeometry.createGeometry(circleGeometry);
 
-				entity.polygon = new Cesium.PolygonGraphics();
-				entity.polygon.hierarchy = new Cesium.PolygonHierarchy(geometry);
-				entity.polygon.material = Cesium.Material.fromType(Cesium.Material.ColorType);
-				entity.polygon.material.uniforms.color = new Cesium.Color(1.0, 0.0, 0.0, 0.5);
+				// entity.polygon = new Cesium.PolygonGraphics();
+				// entity.polygon.hierarchy = new Cesium.PolygonHierarchy(geometry);
+				// entity.polygon.material = Cesium.Material.fromType(Cesium.Material.ColorType);
+				// entity.polygon.material.uniforms.color = new Cesium.Color(1.0, 0.0, 0.0, 0.5);
 			}
 		},
 		mounted() {

+ 0 - 401
src/views/Map3d/components/special-effects.vue

@@ -1,401 +0,0 @@
-<script setup>
-	import {
-		inject
-	} from "vue";
-
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="jt-weather-effects">
-		<el-collapse v-model="activeName" accordion>
-			<el-collapse-item name="特效效果">
-				<template #title>
-					<span class='iconfont icon-tianqizitiku43' />天气特效
-				</template>
-				<el-row :gutter="20">
-					<el-col :span="8" v-for="(item,index) in weather" @click="handleWeatherEffects(item.type,index)">
-						<el-avatar shape="circle" style="width:70rem;height: 70rem;" :class="currentIndex===index?'selectStyle':'defaultStyle'">
-							<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
-						</el-avatar>
-						<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
-					</el-col>
-				</el-row>
-			</el-collapse-item>
-			<el-collapse-item name="天空样式">
-				<template #title>
-					<span class='iconfont icon-tianqizitiku43' />天空样式
-				</template>
-				<el-row :gutter="20">
-					<el-col :span="8" v-for="(item,index) in skybox" @click="handleSkybox(item.type,index)">
-						<!-- <el-avatar :src="item.url" /> -->
-						<el-avatar shape="circle" src="https://empty" style="width:70rem;height: 70rem;">
-							<img :src="item.url" />
-						</el-avatar>
-						<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
-					</el-col>
-				</el-row>
-			</el-collapse-item>
-			<!-- <el-collapse-item name="粒子效果">
-				<template #title>
-					<span class='iconfont icon-tianqizitiku43' />粒子效果
-				</template>
-				<div class="el-collapse-item__content">
-					<el-button color="rgb(20 136 255)" @click="ParticleSystem('add')">加载粒子效果</el-button>
-					<el-button color="rgb(255 100 100)" @click="ParticleSystem('remove')"><span style="color: #fff;">清除粒子效果</span></el-button>
-				</div>
-			</el-collapse-item>
-			<el-collapse-item name="热力图">
-				<template #title>
-					<span class='iconfont icon-tianqizitiku43' />热力图
-				</template>
-				<div class="el-collapse-item__content">
-					<el-button color="rgb(20 136 255)" @click="HeatMap('add')">添加热力图</el-button>
-					<el-button color="rgb(255 100 100)" @click="HeatMap('remove')"><span style="color: #fff;">清除热力图</span></el-button>
-				</div>
-			</el-collapse-item> -->
-		</el-collapse>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-
-	export default {
-		data() {
-			return {
-				activeName: "特效效果",
-				currentIndex: -1,
-				weather: [{
-						label: '雨天',
-						type: 'rain',
-						number: 0,
-						icon: 'iconfont icon-yu'
-					},
-					{
-						label: '雪天',
-						type: 'snow',
-						number: 1,
-						icon: 'iconfont icon-huaban'
-					},
-					{
-						label: '雾天',
-						type: 'fog',
-						number: 2,
-						icon: 'iconfont icon-tianqizitiku43'
-					},
-					{
-						label: '关闭天气',
-						type: 'remove',
-						number: 3,
-						icon: 'iconfont icon-cloudofftianqiguanbi'
-					},
-				],
-				skybox: [{
-						label: '晚霞',
-						type: '晚霞',
-						number: 0,
-						url: 'jt3dSDK/imgs/skybox/01/py.png'
-					},
-					{
-						label: '蓝天',
-						type: '蓝天',
-						number: 1,
-						url: 'jt3dSDK/imgs/skybox/03/py.jpg'
-					},
-					{
-						label: '阴天',
-						type: '阴天',
-						number: 2,
-						url: 'jt3dSDK/imgs/skybox/02/py.jpg'
-					},
-					{
-						label: '蓝色星空',
-						type: '蓝色星空',
-						number: 3,
-						url: 'jt3dSDK/imgs/skybox/05/pz.jpg'
-					},
-					{
-						label: '紫色星空',
-						type: '紫色星空',
-						number: 4,
-						url: 'jt3dSDK/imgs/skybox/04/ny.jpg'
-					},
-				],
-			}
-		},
-		props: {},
-		watch: {},
-
-		/* 方法 */
-		methods: {
-			/**
-			 * 天空盒子事件
-			 * @param {Object} type 天空盒子类型
-			 * @param {Object} index 第几个被选中
-			 */
-			handleSkybox(type, index) {
-				this.currentIndex = index;
-
-				jt3d.SceneEffects.SkyBox.setGroundSkyBox({
-					type: type
-				});
-			},
-
-			/**
-			 * 天气特效事件
-			 * @param {Object} type 天气类型
-			 * @param {Object} index 第几个被选中
-			 */
-			handleWeatherEffects(type, index) {
-				this.currentIndex = index;
-				switch (type) {
-					case "rain": //雨天
-						jt3d.SceneEffects.Weather.removeEffect();
-						jt3d.SceneEffects.Weather.addRainEffect({
-							tiltAngle: 0.3,
-							rainSize: 0.5,
-							rainSpeed: 70
-						});
-						break;
-					case "snow": //雪天
-						jt3d.SceneEffects.Weather.removeEffect();
-						jt3d.SceneEffects.Weather.addSnowEffect();
-						break;
-					case "fog": //雾天
-						jt3d.SceneEffects.Weather.removeEffect();
-						jt3d.SceneEffects.Weather.addFogEffect();
-						break;
-					case "remove": //移除天气特效
-						this.currentIndex = -1;
-						jt3d.SceneEffects.Weather.removeEffect()
-						break;
-
-				}
-			},
-
-			/**
-			 * 粒子效果
-			 */
-			ParticleSystem(type) {
-				let options = {};
-				// 初始化参数默认值
-				options.duration = Cesium.defaultValue(options.duration, 2);
-				options.heading = Cesium.defaultValue(options.heading, 0.5); //指向,默认值0.0(北)
-				options.pitch = Cesium.defaultValue(options.pitch, -40); //俯仰角, 垂直向下。默认值-90(向下看)。
-				options.range = Cesium.defaultValue(options.range, 150); //距目标点距离
-
-				const position = {
-					x: 121.554042,
-					y: 37.395186,
-					z: 25.60
-				};
-
-				// 定位到点
-				let flyToPoint = jt3d.LocateUtil.flyToPoint({
-					longitude: position.x,
-					latitude: position.y,
-					height: position.z,
-					duration: options.duration,
-					heading: options.heading,
-					pitch: options.pitch,
-					range: options.range,
-				});
-				flyToPoint.then(function() {
-					// alert(1111)
-				});
-
-				if (type === "add") {
-
-					const positionF = {
-						x: 121.554042,
-						y: 37.395186,
-						z: 25.60
-					};
-
-					this.fireArr = [];
-					this.waterArr = [];
-
-					let fireEntity = jt3d.SceneEffects.ParticleSystem.createParticleFire([positionF.x, positionF.y, positionF.z])
-					this.fireArr.push(fireEntity)
-
-					const positionW = {
-						x: 121.553975,
-						y: 37.395075,
-						z: 18.10
-					};
-
-					let waterEntity = jt3d.SceneEffects.ParticleSystem.createParticleWater([positionW.x, positionW.y, positionW.z])
-					this.waterArr.push(waterEntity)
-
-				}
-				if (type === "remove") {
-					for (var i = 0; i < this.fireArr.length; i++) {
-						this.fireArr[i].remove()
-					}
-					for (var i = 0; i < this.waterArr.length; i++) {
-						this.waterArr[i].remove()
-					}
-				}
-			},
-
-			/**
-			 * 热力图
-			 */
-			HeatMap(type) {
-
-				if (type === "add") {
-					let viewer = this.viewer = window["viewer"];
-
-					// 矩形坐标
-					var bounds = {
-						west: 121.563298,
-						south: 37.284514,
-						east: 121.565298,
-						north: 37.286514,
-					};
-
-					// 初始化CesiumHeatmap
-					var heatMap = this.heatMap = CesiumHeatmap.create(
-						viewer, // 视图层
-						bounds, // 矩形坐标
-						// heatmap相应参数
-						{
-							backgroundColor: "rgba(0, 0, 0, 0)",
-							radius: 50,
-							maxOpacity: .5,
-							minOpacity: 0,
-							blur: .75
-						}
-					);
-
-					//加载数据,生成热力图
-					// 添加数据 最小值,最大值,数据集
-					heatMap.setWGS84Data(0, 100, getData(300));
-					viewer.zoomTo(viewer.entities);
-
-					if (this._layer) {
-						//移除热力图
-						this.viewer.entities.remove(this.heatMap._layer);
-					} else {
-						this._layer = this.heatMap._layer;
-					}
-
-					// 数据格式:动态数据 [{x: -97.6433525165054, y: 45.61443064377248, value: 11.409122369106317}]
-					function getData(length) {
-						var data = [];
-						for (var i = 0; i < length; i++) {
-							var x = 121.563298 + Math.random() * (121.565298 - 121.563298);
-							var y = 37.284514 + Math.random() * (37.286514 - 37.284514);
-							var value = Math.random() * 100;
-							data.push({
-								x: x,
-								y: y,
-								value: value
-							});
-						}
-						return data;
-					}
-				}
-				if (type === "remove") {
-
-					//移除热力图
-					this.viewer.entities.remove(this.heatMap._layer);
-				}
-			}
-		},
-
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.el-avatar{
-		width: 70rem !important;
-		height: 70rem !important;
-		font-size: 14px !important;
-		cursor: pointer;
-	}
-	
-	::v-deep .el-collapse-item__content {
-		padding: 10rem;
-		// padding-bottom: 0rem;
-		overflow-y: hidden;
-	}
-
-	::v-deep .el-collapse-item__header {
-		background: url(@/assets/images/bg_collapse_title.png) no-repeat;
-		background-size: 350rem 40rem;
-		// background-color: rgb(22 90 190);
-		// background-color: rgb(5 45 100 /60%);
-		background-color: rgb(30 130 255);
-		border-bottom: 0;
-	}
-
-	.el-col {
-		padding: 10rem;
-		// color: rgba(90, 172, 255, 1.0);
-		color: #fff;
-	}
-
-	.jt-weather-effects {
-		position: relative;
-
-		.iconfont {
-			padding: 0 10rem;
-		}
-
-		.el-collapse {
-			--el-collapse-border-color: rgb(0 44 126 / 0%);
-
-			--el-collapse-header-text-color: #ffffff;
-			--el-collapse-header-font-size: 13rem;
-			--el-collapse-content-bg-color: rgb(0 44 126 / 0%);
-			--el-collapse-content-font-size: 13rem;
-			--el-collapse-content-text-color: rgb(216 240 255);
-
-			--el-collapse-header-height: 40rem;
-			--el-collapse-header-bg-color: rgb(30 130 255);
-
-			--el-fill-color-blank: rgb(0 44 126 / 68%);
-			--el-text-color-regular: rgb(216 240 255);
-			--el-border-color: rgb(35 135 255);
-
-			.el-collapse-item__content {
-				padding: 10rem;
-				// padding-bottom: 0rem;
-			}
-		}
-
-		i {
-			display: inline-block;
-			width: 100%;
-			height: 36rem;
-			line-height: 36rem;
-			text-align: center;
-			border-radius: 5rem;
-			font-size: 40rem;
-			// color: rgba(90, 172, 255, 1.0);
-			color: #fff;
-			transition: all .3s;
-			-webkit-transition: all .3s
-		}
-
-		.selectStyle {
-			// background: rgba(135, 182, 254, 0.5);
-			background: rgb(0 44 126);
-		}
-
-		.defaultStyle {
-			background: #ffffff00;
-		}
-
-		.selectFontStyle {
-			// color: #fff;
-			color: #55ffff;
-		}
-	}
-</style>

+ 0 - 412
src/views/Map3d/components/toolbars.vue

@@ -1,412 +0,0 @@
-<script setup>
-	/**
-	 * element-plus组件
-	 */
-	import {
-		ElMessage
-	} from 'element-plus';
-
-	/**
-	 * element-plus字体
-	 */
-	import {
-		ArrowDown
-	} from '@element-plus/icons-vue';
-	import {
-		Store
-	} from '@/store/index';
-	store = Store()
-	import {
-		inject
-	} from "vue";
-	import html2canvas from "html2canvas";
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="toolbars fadein-right">
-		<!-- <div class="toolbar-item" @click="PolylineObject()">
-			<i class="iconfont icon-winfo-icon-tucengkongzhi"></i>
-			<span class="title">
-				测试动态线
-			</span>
-		</div>
-		<div class="toolbar-item" @click="showWidget('rotateCamera')">
-			<i class="iconfont icon-chaxunzuobiaozhi" />
-			<span class="title">
-				绕点旋转
-			</span>
-		</div> -->
-		<div class="toolbar-item" @click="showWidget('fullMap')">
-			<i class="iconfont icon-chaxunzuobiaozhi" />
-			<span class="title">
-				全图
-			</span>
-		</div>
-		<div class="toolbar-item" @click="showWidget('basicLayer')">
-			<i class="iconfont icon-dituzuobiao" />
-			<span class="title">
-				底图
-			</span>
-		</div>
-		<div class="toolbar-item" @click="showWidget('layers')">
-			<i class="iconfont icon-winfo-icon-tucengkongzhi"></i>
-			<span class="title">
-				图层
-			</span>
-		</div>
-		<div class="toolbar-item" @click="showWidget('viewerlabel')">
-			<i class="iconfont minsize icon-fushi"></i>
-			<span class="title">
-				视角标签
-			</span>
-		</div>
-		<el-dropdown class="toolbar-item" :hide-on-click="false" @command="handleCommand">
-			<span class="el-dropdown-link">
-				<i class="iconfont icon-xitong1" />
-				<span class="title">
-					工具
-				</span>
-				<el-icon class="el-icon--right">
-					<ArrowDown />
-				</el-icon>
-			</span>
-			<template #dropdown>
-				<span slot="slot" class="text"></span>
-				<el-dropdown-menu>
-					<el-dropdown-item command="DialogEdit"><i class="iconfont minsize icon-dituhuizhi"></i>绘制功能</el-dropdown-item>
-					<!-- <el-dropdown-item command="navigate"><i class="iconfont icon-zhijiantou"></i>地区导航</el-dropdown-item> -->
-					<!-- <el-dropdown-item command="viewerlabel"><i class="iconfont minsize icon-fushi"></i>视角标签</el-dropdown-item> -->
-					<el-dropdown-item v-if="store.userport=='PC'" command="printmap"><i class="iconfont maxsize icon-svgdayin"></i>打印地图</el-dropdown-item>
-					<el-dropdown-item command="measure"><i class="iconfont minsize icon-icon_measureTool"></i>图上量算</el-dropdown-item>
-					<!-- <el-dropdown-item command="query-graphics"><i class="iconfont icon-search"></i>图形查询</el-dropdown-item> -->
-					<!-- <el-dropdown-item command="analysis-data"><i class="iconfont maxsize icon-svgjiexiwenjian"></i>文件解析</el-dropdown-item> -->
-					<el-dropdown-item command="analysis-space"><i class="iconfont icon-duodiankeshiyu"></i>空间分析</el-dropdown-item>
-					<el-dropdown-item command="analysis-terrain"><i class="iconfont icon-iconfonttubiao_dixing"></i>地形分析</el-dropdown-item>
-					<el-dropdown-item command="special-effects"><i class="iconfont icon-yu"></i>特效效果</el-dropdown-item>
-					<el-dropdown-item command="coordsTool"><i class="iconfont icon-zuobiao"></i>坐标定位</el-dropdown-item>
-					<el-dropdown-item command="TrackRoam"><i class="iconfont maxsize icon-jurassic_jiankong"></i>路径漫游</el-dropdown-item>
-					<!-- <el-dropdown-item command="ImageLayerSplit"><i class="iconfont maxsize icon-juanlian"></i>卷帘对比</el-dropdown-item>
-					<el-dropdown-item command="ViewerSplitScreen"><i class="iconfont minsize icon-fenping"></i>分屏对比</el-dropdown-item> -->
-				</el-dropdown-menu>
-			</template>
-		</el-dropdown>
-	</div>
-</template>
-
-<script>
-	let jt3d = undefined;
-	let store = undefined
-	export default {
-		name: "toolbars",
-		data() {
-			return {}
-		},
-		/* 方法 */
-		methods: {
-			/**
-			 * 测试动态线
-			 */
-			PolylineObject() {
-				let lines = [
-					[
-						[107.3609526659472, 26.405330345862833],
-						[107.40025603208434, 26.402244579822174]
-					],
-					[
-						[107.3609801462563, 26.40314629662853],
-						[107.3999374877451, 26.400165614674155]
-					],
-					[
-						[107.36081944593964, 26.40080706752495],
-						[107.40012685036773, 26.39813952738571],
-					],
-					[
-						[107.36067906760677, 26.398625963837965],
-						[107.40034550598207, 26.39670894997551],
-					],
-				];
-
-				//定位
-				jt3d._viewer.scene.camera.setView({
-					duration: 1,
-					destination: {
-						x: -1709251.0767395466,
-						y: 5461386.32337908,
-						z: 2820645.238657382
-					},
-					orientation: {
-						heading: 0.13762265446730737,
-						pitch: -1.460307026543739,
-						roll: 0.003401834066556475
-					}
-				});
-
-				lines.forEach((item, index) => {
-
-					if (index === 0) {
-						let a1 = jt3d.PolylineObject.PolylineLinkPulseMaterialProperty(item, {
-							width: 11,
-							color: 'RED',
-							duration: 20000,
-							imgUrl: "/jt3dSDK/imgs/polylinematerial/LinkPulse.png",
-							isImageAlpha: false,
-						});
-						a1.then(function() {
-
-						});
-					}
-
-					if (index === 1) {
-						jt3d.PolylineObject.PolylineArrowMaterialProperty(item, {
-							width: 10,
-							color: "YELLOW",
-							duration: 1000,
-							count: 5,
-							direction: "horizontal",
-							order: "+",
-							imgUrl: "/jt3dSDK/imgs/polylinematerial/arrowopacity.png",
-							isImageAlpha: false,
-						});
-					}
-
-					if (index === 2) {
-						jt3d.PolylineObject.PolylineArrowMaterialProperty(item, {
-							width: 10,
-							color: 'BLUE',
-							duration: 1000,
-							count: 20,
-							direction: "horizontal",
-							order: "+",
-							imgUrl: "/jt3dSDK/imgs/polylinematerial/arrowopacity.png",
-							isImageAlpha: false,
-						});
-					}
-
-					if (index === 3) {
-						jt3d.PolylineObject.PolylineLinkPulseMaterialProperty(item, {
-							width: 10,
-							color: 'GREEN',
-							duration: 10000,
-							imgUrl: "/jt3dSDK/imgs/polylinematerial/20201124170520929.png",
-							isImageAlpha: false,
-						});
-					}
-				});
-			},
-
-			showWidget: function(type) {
-				if (type === "layers") {
-					this.closePopup()
-					this.$parent.$refs.refLayer.isshow = true;
-				} else if (type === "fullMap") {
-					this.$parent.$refs.refMap3d.fullMap(jt3d);
-				} else if (type === "rotateCamera") {
-					ElMessage.warning('在地图上单击进行自旋,再次单击停止自旋')
-					jt3d.SketchViewModel.sketchTools('point', {
-						onComplete(cPoint, gPoint) {
-							jt3d.setMapSpinByPoint(cPoint);
-						},
-						onError(message) {}
-					});
-				} else if (type == "viewerlabel") {
-					this.closePopup()
-					this.$parent.$refs.refviewerlabel.isshow = true
-				} else {
-					this.closePopup()
-					this.$parent.showbasicLayer = true
-				}
-
-			},
-
-			//关闭所有弹框
-			closePopup() {
-				this.$parent.$refs.refMeasure.isshow = false;
-				this.$parent.$refs.refQueryGraphics.isshow = false;
-				this.$parent.$refs.refAnalysisData.isshow = false;
-				this.$parent.$refs.refAnalysisSpace.isshow = false;
-				this.$parent.$refs.refAnalysisTerrain.isshow = false;
-				this.$parent.$refs.refSpecialEffects.isshow = false;
-				this.$parent.$refs.refCoordsTool.isshow = false;
-				this.$parent.$refs.refTrackRoam.isshow = false;
-				this.$parent.$refs.refViewerSplitScreen.isshow = false;
-				this.$parent.$refs.refImageLayerSplit.isshow = false;
-				this.$parent.$refs.refmapNavigate.isshow = false;
-				this.$parent.$refs.refviewerlabel.isshow = false;
-				this.$parent.$refs.refprintmap.isshow = false;
-				this.$parent.$refs.refDialogEdit.isshow = false;
-				this.$parent.showbasicLayer = false;
-				this.$parent.$refs.refLayer.isshow = false;
-				if (this.$parent.$refs._refImageLayerSplit) {
-					this.$parent.$refs._refImageLayerSplit.removeSplitLayer(); //关闭卷帘
-				}
-				if (this.$parent.$refs._refViewerSplitScreen) {
-					this.$parent.$refs._refViewerSplitScreen.removeSplitScreen(); //关闭分屏
-				}
-			},
-			/**
-			 * dropdown下拉列表事件
-			 */
-			handleCommand(command) {
-				//图上绘制组件
-				if (command === 'DialogEdit') {
-					this.closePopup()
-					this.$parent.$refs.refDialogEdit.isshow = true
-				}
-				//区域导航
-				if (command === 'navigate') {
-					this.closePopup()
-					this.$parent.$refs.refmapNavigate.isshow = true
-				}
-				//视角标签
-				if (command === 'viewerlabel') {
-					this.closePopup()
-					this.$parent.$refs.refviewerlabel.isshow = true
-				}
-				//打印地图
-				if (command === 'printmap') {
-					this.closePopup()
-					// this.$bus.emit("screenshot")
-					this.$parent.$refs._refprintmap.screenshot();
-					setTimeout(() => {
-						this.$parent.$refs.refprintmap.isshow = true
-					}, 50);
-				}
-				//图上量算
-				if (command === 'measure') {
-					this.closePopup()
-					this.$parent.$refs.refMeasure.isshow = true;
-				}
-				//图形查询
-				if (command === 'query-graphics') {
-					this.closePopup()
-					this.$parent.$refs.refQueryGraphics.isshow = true;
-				}
-				//数据分析
-				if (command === 'analysis-data') {
-					this.closePopup()
-					this.$parent.$refs.refAnalysisData.isshow = true;
-				}
-				//空间分析
-				if (command === 'analysis-space') {
-					this.closePopup()
-					this.$parent.$refs.refAnalysisSpace.isshow = true;
-				}
-				//地形分析
-				if (command === 'analysis-terrain') {
-					this.closePopup()
-					this.$parent.$refs.refAnalysisTerrain.isshow = true;
-				}
-				//特效效果
-				if (command === 'special-effects') {
-					this.closePopup()
-					this.$parent.$refs.refSpecialEffects.isshow = true;
-				}
-				//坐标定位拾取
-				if (command === 'coordsTool') {
-					this.closePopup()
-					this.$parent.$refs.refCoordsTool.isshow = true;
-				}
-				//飞行漫游
-				if (command === 'TrackRoam') {
-					this.closePopup()
-					this.$parent.$refs.refTrackRoam.isshow = true;
-				}
-				//卷帘对比
-				if (command === 'ImageLayerSplit') {
-					this.closePopup();
-					this.$parent.$refs.refImageLayerSplit.isshow = true;
-					this.$parent.$refs._refImageLayerSplit.initSplitLayer(); //开启卷帘
-				}
-				//分屏对比
-				if (command === 'ViewerSplitScreen') {
-					this.closePopup();
-					this.$parent.$refs.refViewerSplitScreen.isshow = true;
-					this.$parent.$refs.refLayer.isshow = true;
-					this.$parent.$refs._refViewerSplitScreen.initSplitScreen(); //开启分屏
-				}
-			},
-		},
-		mounted() {
-
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.text::before {
-		position: absolute;
-		width: 0rem;
-		height: 0rem;
-		left: calc(50% - 5rem);
-		top: -5rem;
-		content: '';
-		transform: rotate(45deg);
-		z-index: 10;
-		box-sizing: border-box;
-		border-bottom: 5rem solid transparent;
-		border-right: 5rem solid transparent;
-		border-top: 5rem solid rgba(255, 255, 255, 1);
-		border-left: 5rem solid rgba(255, 255, 255, 1);
-		// background: rgba(5, 45, 115, .8) !important;
-	}
-
-	.toolbars {
-		position: absolute;
-		top: 80rem;
-		width: 450rem;
-		// width: 580rem;
-		right: 20rem;
-		cursor: pointer !important;
-		padding: 0rem !important;
-		margin: 0rem !important;
-		background-image: none !important;
-		border: 1rem solid;
-		border: none;
-		border-radius: 2rem !important;
-		background-color: rgb(0 44 126 / 65%);
-		height: 40rem;
-		box-sizing: border-box;
-		line-height: 38rem;
-		text-align: left;
-		user-select: none;
-
-		cursor: default;
-
-		.toolbar-item {
-			display: inline-block;
-			padding: 0rem 12rem;
-
-			margin: 0rem;
-			height: calc(100% - 4rem);
-			color: #fff;
-			font-size: 15rem;
-			vertical-align: middle;
-
-			&:hover {
-				background-color: rgba(255, 255, 255, 0.3);
-			}
-
-			.title {
-				font-size: 16rem;
-			}
-		}
-
-		.toolbar-item:nth-last-child(1) {
-			padding-right: 0rem;
-		}
-
-		.el-icon {
-			margin-right: 5rem;
-			color: #fff;
-		}
-
-		.el-dropdown {
-			// vertical-align: middle;
-			height: 40rem;
-			line-height: 38rem;
-			box-sizing: border-box;
-		}
-	}
-</style>

+ 0 - 317
src/views/Map3d/components/viewerlabel.vue

@@ -1,317 +0,0 @@
-<script setup>
-	import {
-		inject
-	} from "vue";
-	import html2canvas from 'html2canvas';
-	import {Store} from '@/store/index';
-	store = Store()
-	import {
-		blobToBase64,
-		base64ToBlob
-	} from '@/assets/js/blobtobase64';
-	const getMapInstance = inject("getMapInstance");
-	jt3d = getMapInstance();
-</script>
-
-<template>
-	<div class="mainview">
-		<div class="header">
-			<input @input="getName()" id="inputValue" type="text" placeholder="创建视角标签" />
-			<el-button v-if="store.userport=='PC'" type="primary" @click="addviewer" size="small">添加</el-button>
-			<el-button type="primary" @click="searchviewer" size="small">查询</el-button>
-		</div>
-		<div class="middleviewer">
-			<div class="viewer" v-for="(res,index) in ImgurlList" :key="index">
-				<div class="viewertop">
-					<img :src="res.url" @click="flyto(res.info)">
-				</div>
-				<div class="viewerbottom">
-					{{res.name}}
-					<img src="@/assets/images/delete.png" class="deleteImg" @click="deleteviewer(res,index)" />
-				</div>
-			</div>
-		</div>
-	</div>
-</template>
-
-<script>
-	let store = undefined;
-	let jt3d = undefined;
-	export default {
-		data() {
-			return {
-				viewersName: '', //视角标签名称
-				ImgurlList: [], //截图地址列表
-			}
-		},
-		methods: {
-			//获取输入框值
-			getName() {
-				this.viewersName = document.getElementById("inputValue").value;
-			},
-
-			//跳转方法
-			flyto(options) {
-				jt3d.LocateUtil.flyToPoint(options)
-			},
-
-			//删除方法,传keyvalue以及需要修改属性
-			deleteviewer(item, index) {
-				//删除对应数组内的对象
-				this.ImgurlList.splice(index, 1)
-				if (item.id) {
-					this.$http.get('/delete', {
-						tableName: 'map_angle',
-						keyValue: item.id,
-					}).then(res => {
-						console.log(res.data)
-					})
-				}
-			},
-
-			//添加视角标签,当前页存数组,向数据库传入相机参数
-			addviewer() {
-				//获取当前界面截图方法
-				html2canvas(
-					this.$parent.$parent.$refs.refMap3d.$refs.cesiumContainer, {
-						// backgroundColor: null, //画出来的图片有白色的边框,不要可设置背景为透明色(null)
-						useCORS: true, //支持图片跨域
-						scale: 1 / 8, //设置放大的倍数
-					}
-				).then(canvas => {
-					//截图用img元素承装,显示在页面的上
-					let url = canvas.toDataURL('image/png')
-					//经纬度、高度
-					// 获取 相机姿态信息
-					let heading = window["viewer"].scene.camera.heading
-					let pitch = window["viewer"].scene.camera.pitch
-					let roll = window["viewer"].scene.camera.roll
-					let position = window["viewer"].scene.camera.positionCartographic
-					let longitude = Cesium.Math.toDegrees(position.longitude) //y
-					let latitude = Cesium.Math.toDegrees(position.latitude) //x
-					let height = position.height
-					let info = {
-						latitude: latitude,
-						longitude: longitude,
-						height: height,
-						pitch: Cesium.Math.toDegrees(pitch),
-						roll: Cesium.Math.toDegrees(roll),
-						heading: Cesium.Math.toDegrees(heading)
-					}
-					//dom for循环渲染列表
-					this.ImgurlList.unshift({
-						url: url,
-						name: this.viewersName,
-						info: info
-					})
-
-					//base64转换为二进制文件
-					// let blob = base64ToBlob(url)
-					// //文件转为文件流
-					// let formData = new FormData();
-					// formData.append('file',blob)
-
-					let data = {
-						name: this.viewersName,
-						x: latitude,
-						y: longitude,
-						z: height,
-						pitch: Cesium.Math.toDegrees(pitch),
-						roll: Cesium.Math.toDegrees(roll),
-						heading: Cesium.Math.toDegrees(heading),
-						screenshot: url,
-						// screenshot: '',
-						userId: this.id,
-						// id:0
-					}
-
-					//添加数据接口
-					this.$http.post('/postSubmit', {
-						tableName: 'map_angle',
-						keyValue: '',
-						formData: data,
-					}).then(res => {
-						console.log(res)
-						if (res.success == true) {
-							console.log('添加成功')
-							document.getElementById("inputValue").value = ''
-						}
-					})
-				}).catch(err => {
-					console.log(err)
-				})
-			},
-			searchviewer() {
-				this.info = JSON.parse(localStorage.getItem('person'))
-				this.id = this.info.id
-				//获取所有图片数据
-				this.$http.get('/getTableList', {
-					tableName: 'map_angle', //
-					sqlWhere: "name like '%" + this.viewersName + "%'",
-					orderByField: ''
-				}).then(res => {
-					console.log('获取图片', res.data)
-					this.ImgurlList = [];
-					res.data.forEach(item => {
-						let info = {
-							latitude: item.x,
-							longitude: item.y,
-							height: item.z,
-							pitch: item.pitch,
-							roll: item.roll,
-							heading: item.heading
-						}
-						// let url = blobToBase64(item.screenshot)
-						//dom for循环渲染列表
-						this.ImgurlList.push({
-							url: item.screenshot,
-							name: item.name,
-							info: info,
-							id: item.id
-						})
-					})
-
-					// console.log('img列表',this.ImgurlList)
-				})
-			}
-		},
-
-		mounted() {
-			this.info = JSON.parse(localStorage.getItem('person'))
-			this.id = this.info.id
-			//获取所有图片数据
-			this.$http.get('/getTableList', {
-				tableName: 'map_angle', //
-				sqlWhere: '', //+ this.loginForm.id
-				orderByField: ''
-			}).then(res => {
-				console.log('获取图片', res.data)
-				if(res.data.length == 0) return
-				res.data.forEach(item => {
-					let info = {
-						latitude: item.x,
-						longitude: item.y,
-						height: item.z,
-						pitch: item.pitch,
-						roll: item.roll,
-						heading: item.heading
-					}
-					// let url = blobToBase64(item.screenshot)
-					//dom for循环渲染列表
-					this.ImgurlList.push({
-						url: item.screenshot,
-						name: item.name,
-						info: info,
-						id: item.id
-					})
-				})
-
-				// console.log('img列表',this.ImgurlList)
-			})
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.el-button--small{
-		--el-button-size:24rem;
-		font-size:12rem;
-		padding: 5rem 12rem;
-	}
-	
-	.mainview {
-		width: 100%;
-		height: 100%;
-		height: calc(calc(100% - 115rem) / 3 + 90rem);
-
-		.header {
-			width: 100%;
-			display: flex;
-
-			input,
-			input:focus {
-				outline: none;
-				width: 185rem !important;
-				border: 1rem solid rgba(255, 255, 255, 0.8);
-				margin-right: 10rem;
-				height: 26rem !important;
-				color: rgba(255, 255, 255, 1);
-				background-color: rgba(255, 255, 255, 0) !important;
-				border-radius: 3rem;
-			}
-		}
-
-		.middleviewer {
-			width: 322rem;
-			height: 100%;
-			margin-left: 7rem;
-
-			.viewer {
-				width: 322rem !important;
-				height: 240rem !important;
-				margin-top: 15rem;
-				border: 1rem solid #ffffff !important;
-				border-radius: 1rem !important;
-
-				.viewertop {
-					width: 322rem !important;
-					height: 210rem !important;
-
-					img {
-						width: 100% !important;
-						height: 100% !important;
-					}
-				}
-
-				.viewerbottom {
-					line-height: 30rem !important;
-					text-align: center !important;
-					width: 322rem !important;
-					height: 30rem !important;
-					position: relative;
-					background-color: rgba(15, 145, 185, 0.7);
-
-					.deleteImg {
-						width: 24rem;
-						height: 24rem;
-						right: 5rem;
-						top: 3rem;
-						position: absolute;
-					}
-				}
-			}
-		}
-	}
-
-	::v-deep .el-input {
-		flex-grow: 0 !important;
-		width: 200rem !important;
-		// display: inline !important;
-		// margin-left: 5rem;
-		margin-right: 10rem;
-		height: 30rem !important;
-	}
-
-	//输入框文字颜色
-	::v-deep .el-input__inner {
-		color: rgba(255, 255, 255, 1)
-	}
-
-	//输入框背景色
-	::v-deep .el-input__wrapper {
-		background-color: rgba(255, 255, 255, 0) !important;
-	}
-
-	::v-deep .el-button {
-		border-radius: 3rem !important;
-
-	}
-
-	::v-deep .el-button--primary {
-		background-color: rgba(64, 158, 255, 0.6) !important;
-	}
-
-	::-webkit-scrollbar {
-		width: 0rem;
-	}
-</style>

+ 0 - 13
src/views/miaoqing/miaoqing.vue

@@ -23,19 +23,6 @@
 	<jt-popup2 title="水利工程" top="calc(calc(100% - 115rem) / 3 + calc(100% - 115rem) / 3 + 90rem)" ref="WaterProject">
 		<WaterLeveChart></WaterLeveChart>
 	</jt-popup2>
-
-
-	<!-- <jt-popup3 title="用水量统计" ref="ysltj">
-
-	</jt-popup3>
-
-	<jt-popup3 title="能耗同比统计" top="calc(calc(100% - 115rem) / 3 + 90rem)" ref="nhtbtj">
-
-	</jt-popup3>
-
-	<jt-popup3 title="智能监控" top="calc(calc(100% - 115rem) / 3 + calc(100% - 115rem) / 3 + 90rem)" ref="znjk"> -->
-	
-
 	
 	<jt-popup3  title="输配电工程" ref="spdgc">
 		<spdgc ref="_spdgc"></spdgc>

+ 32 - 10
src/views/siqing/siqing.vue

@@ -5,36 +5,38 @@
 		</keep-alive>
 		<component :is="Component" v-if="!$route.meta.keepAlive" />
 	</router-view>
-	
+
 	<router-link to="/home/siqing">
-		<div class="layerButtoncq" @click="layerIsShow"></div>
+		<div :class="siqingtype==1?'layerButtoncq layerButtoncqxz':'layerButtoncq'" @click="layerIsShow(1)"></div>
 	</router-link>
 	<router-link to="/home/siqing/miaoqing">
-		<div class="layerButtonmq" @click="layerIsShow"></div>
+		<div :class="siqingtype==2?'layerButtonmq layerButtonmqxz':'layerButtonmq'" @click="layerIsShow(2)"></div>
 	</router-link>
 	<router-link to="/home/siqing/turang">
-		<div class="layerButtontr" @click="layerIsShow"></div>
+		<div :class="siqingtype==3?'layerButtontr layerButtontrxz':'layerButtontr'" @click="layerIsShow(3)"></div>
 	</router-link>
 	<router-link to="/home/siqing/qixiang">
-		<div class="layerButtonqx" @click="layerIsShow"></div>
+		<div :class="siqingtype==4?'layerButtonqx layerButtonqxxz':'layerButtonqx'" @click="layerIsShow(4)"></div>
 	</router-link>
-	
+
 </template>
 
 <script>
 	export default {
 		data() {
 			return {
-
+				siqingtype: 1
 			}
 		},
 		methods: {
-			layerIsShow() {
-
+			layerIsShow(num) {
+				this.siqingtype = num
+				localStorage.setItem('siqingID',num)
 			}
 		},
 		mounted() {
-
+			let num = localStorage.siqingID
+			this.layerIsShow(num)
 		}
 	}
 </script>
@@ -57,6 +59,11 @@
 		user-select: none;
 	}
 
+	.layerButtoncqxz {
+		background: url('@/assets/images/siqing/cqsel.png') no-repeat;
+		background-size: 100% 100%;
+	}
+
 	.layerButtonmq {
 		background: url('@/assets/images/siqing/mq.png') no-repeat;
 		background-size: 100% 100%;
@@ -74,6 +81,11 @@
 		user-select: none;
 	}
 
+	.layerButtonmqxz {
+		background: url('@/assets/images/siqing/mqsel.png') no-repeat;
+		background-size: 100% 100%;
+	}
+
 	.layerButtontr {
 		background: url('@/assets/images/siqing/tr.png') no-repeat;
 		background-size: 100% 100%;
@@ -91,6 +103,11 @@
 		user-select: none;
 	}
 
+	.layerButtontrxz {
+		background: url('@/assets/images/siqing/trsel.png') no-repeat;
+		background-size: 100% 100%;
+	}
+
 	.layerButtonqx {
 		background: url('@/assets/images/siqing/qx.png') no-repeat;
 		background-size: 100% 100%;
@@ -107,4 +124,9 @@
 		z-index: 11;
 		user-select: none;
 	}
+
+	.layerButtonqxxz {
+		background: url('@/assets/images/siqing/qxsel.png') no-repeat;
+		background-size: 100% 100%;
+	}
 </style>

Some files were not shown because too many files changed in this diff