echarts 4.5.0-rc.2 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/pull_request_template.md +66 -0
- package/.github/workflows/nodejs.yml +12 -2
- package/CONTRIBUTING.md +16 -160
- package/NOTICE +1 -1
- package/README.md +2 -2
- package/dist/echarts-en.common.js +2808 -1188
- package/dist/echarts-en.common.min.js +1 -1
- package/dist/echarts-en.js +3559 -1437
- package/dist/echarts-en.js.map +1 -1
- package/dist/echarts-en.min.js +1 -1
- package/dist/echarts-en.simple.js +2453 -1002
- package/dist/echarts-en.simple.min.js +1 -1
- package/dist/echarts.common.js +2782 -1188
- package/dist/echarts.common.min.js +1 -1
- package/dist/echarts.js +3533 -1437
- package/dist/echarts.js.map +1 -1
- package/dist/echarts.min.js +1 -1
- package/dist/echarts.simple.js +2427 -1002
- package/dist/echarts.simple.min.js +1 -1
- package/dist/extension/bmap.js +336 -2
- package/dist/extension/bmap.js.map +1 -1
- package/dist/extension/bmap.min.js +1 -1
- package/extension/bmap/BMapView.js +6 -2
- package/extension-src/bmap/BMapView.js +3 -2
- package/lib/chart/bar/BarSeries.js +14 -1
- package/lib/chart/bar/BarView.js +161 -16
- package/lib/chart/bar/BaseBarSeries.js +3 -1
- package/lib/chart/candlestick/candlestickVisual.js +1 -1
- package/lib/chart/effectScatter/EffectScatterSeries.js +3 -1
- package/lib/chart/funnel/FunnelSeries.js +13 -5
- package/lib/chart/gauge/GaugeSeries.js +0 -2
- package/lib/chart/graph/GraphSeries.js +11 -5
- package/lib/chart/graph/GraphView.js +30 -12
- package/lib/chart/heatmap/HeatmapView.js +4 -4
- package/lib/chart/helper/EffectLine.js +23 -1
- package/lib/chart/helper/EffectSymbol.js +2 -1
- package/lib/chart/helper/Line.js +94 -33
- package/lib/chart/helper/LineDraw.js +5 -1
- package/lib/chart/helper/Symbol.js +1 -2
- package/lib/chart/helper/createClipPathFromCoordSys.js +4 -1
- package/lib/chart/helper/createListFromArray.js +14 -8
- package/lib/chart/helper/createRenderPlanner.js +6 -3
- package/lib/chart/helper/whiskerBoxCommon.js +22 -16
- package/lib/chart/line/LineSeries.js +3 -1
- package/lib/chart/line/LineView.js +41 -2
- package/lib/chart/map/MapSeries.js +11 -3
- package/lib/chart/pie/PieSeries.js +27 -6
- package/lib/chart/pie/PieView.js +22 -15
- package/lib/chart/pie/labelLayout.js +102 -19
- package/lib/chart/pie/pieLayout.js +19 -7
- package/lib/chart/radar/RadarSeries.js +23 -3
- package/lib/chart/sankey/SankeySeries.js +13 -1
- package/lib/chart/sankey/SankeyView.js +70 -32
- package/lib/chart/sankey/sankeyLayout.js +22 -3
- package/lib/chart/scatter/ScatterSeries.js +3 -1
- package/lib/chart/sunburst/SunburstPiece.js +1 -0
- package/lib/chart/sunburst/SunburstSeries.js +12 -7
- package/lib/chart/sunburst/SunburstView.js +5 -1
- package/lib/chart/themeRiver/ThemeRiverSeries.js +3 -3
- package/lib/chart/tree/TreeSeries.js +20 -3
- package/lib/chart/tree/TreeView.js +151 -25
- package/lib/chart/treemap/TreemapSeries.js +15 -3
- package/lib/chart/treemap/TreemapView.js +80 -38
- package/lib/component/axis/AngleAxisView.js +64 -7
- package/lib/component/axis/AxisBuilder.js +62 -24
- package/lib/component/axis/CartesianAxisView.js +52 -85
- package/lib/component/axis/RadiusAxisView.js +36 -4
- package/lib/component/axis/SingleAxisView.js +21 -6
- package/lib/component/axis/axisSplitHelper.js +132 -0
- package/lib/component/brush/BrushView.js +11 -1
- package/lib/component/brush/visualEncoding.js +13 -2
- package/lib/component/dataZoom/SliderZoomView.js +4 -10
- package/lib/component/helper/BrushController.js +33 -43
- package/lib/component/helper/MapDraw.js +30 -4
- package/lib/component/legend/LegendModel.js +3 -3
- package/lib/component/legend/LegendView.js +17 -13
- package/lib/component/legend/ScrollableLegendView.js +18 -18
- package/lib/component/marker/MarkLineModel.js +2 -1
- package/lib/component/marker/markerHelper.js +7 -4
- package/lib/component/title.js +6 -2
- package/lib/component/toolbox/ToolboxView.js +5 -1
- package/lib/component/toolbox/feature/MagicType.js +20 -14
- package/lib/component/toolbox/feature/SaveAsImage.js +2 -1
- package/lib/component/tooltip/TooltipContent.js +60 -23
- package/lib/component/tooltip/TooltipView.js +7 -8
- package/lib/component/visualMap/PiecewiseModel.js +3 -6
- package/lib/coord/Axis.js +30 -2
- package/lib/coord/View.js +9 -0
- package/lib/coord/axisDefault.js +21 -2
- package/lib/coord/axisHelper.js +22 -16
- package/lib/coord/calendar/Calendar.js +8 -4
- package/lib/coord/geo/geoJSONLoader.js +3 -2
- package/lib/coord/geo/geoSourceManager.js +3 -2
- package/lib/coord/geo/parseGeoJson.js +3 -2
- package/lib/coord/radar/Radar.js +5 -5
- package/lib/data/DataDimensionInfo.js +157 -0
- package/lib/data/List.js +25 -19
- package/lib/data/Tree.js +9 -19
- package/lib/data/helper/completeDimensions.js +43 -32
- package/lib/data/helper/createDimensions.js +2 -0
- package/lib/data/helper/sourceHelper.js +214 -114
- package/lib/echarts.js +57 -34
- package/lib/langEN.js +26 -0
- package/lib/layout/barGrid.js +19 -13
- package/lib/layout/barPolar.js +0 -5
- package/lib/loading/default.js +43 -27
- package/lib/model/Series.js +4 -4
- package/lib/model/referHelper.js +40 -12
- package/lib/scale/Interval.js +87 -2
- package/lib/scale/Log.js +9 -2
- package/lib/scale/helper.js +1 -43
- package/lib/stream/Scheduler.js +9 -1
- package/lib/theme/dark.js +3 -0
- package/lib/util/format.js +19 -2
- package/lib/util/graphic.js +14 -12
- package/lib/visual/LegendVisualProvider.js +75 -0
- package/lib/visual/dataColor.js +2 -12
- package/lib/visual/seriesColor.js +15 -7
- package/lib/visual/symbol.js +12 -2
- package/map/js/china.js +1 -1
- package/map/js/province/chongqing.js +1 -1
- package/map/js/province/gansu.js +2 -2
- package/map/js/province/tianjin.js +1 -28
- package/map/json/china.json +1 -1
- package/map/json/province/chongqing.json +1 -1
- package/map/json/province/tianjin.json +1 -1
- package/package.json +11 -6
- package/src/chart/bar/BarSeries.js +15 -1
- package/src/chart/bar/BarView.js +162 -15
- package/src/chart/bar/BaseBarSeries.js +1 -1
- package/src/chart/candlestick/candlestickVisual.js +1 -1
- package/src/chart/effectScatter/EffectScatterSeries.js +1 -1
- package/src/chart/funnel/FunnelSeries.js +10 -4
- package/src/chart/gauge/GaugeSeries.js +0 -1
- package/src/chart/graph/GraphSeries.js +10 -4
- package/src/chart/graph/GraphView.js +28 -10
- package/src/chart/heatmap/HeatmapView.js +4 -4
- package/src/chart/helper/EffectLine.js +23 -1
- package/src/chart/helper/EffectSymbol.js +2 -1
- package/src/chart/helper/Line.js +84 -26
- package/src/chart/helper/LineDraw.js +5 -1
- package/src/chart/helper/Symbol.js +2 -2
- package/src/chart/helper/createClipPathFromCoordSys.js +4 -0
- package/src/chart/helper/createListFromArray.js +13 -8
- package/src/chart/helper/createRenderPlanner.js +5 -2
- package/src/chart/helper/whiskerBoxCommon.js +21 -16
- package/src/chart/line/LineSeries.js +1 -1
- package/src/chart/line/LineView.js +45 -1
- package/src/chart/map/MapSeries.js +8 -3
- package/src/chart/pie/PieSeries.js +26 -5
- package/src/chart/pie/PieView.js +20 -15
- package/src/chart/pie/labelLayout.js +114 -22
- package/src/chart/pie/pieLayout.js +20 -7
- package/src/chart/radar/RadarSeries.js +27 -3
- package/src/chart/sankey/SankeySeries.js +12 -1
- package/src/chart/sankey/SankeyView.js +75 -30
- package/src/chart/sankey/sankeyLayout.js +25 -5
- package/src/chart/scatter/ScatterSeries.js +1 -1
- package/src/chart/sunburst/SunburstPiece.js +2 -0
- package/src/chart/sunburst/SunburstSeries.js +12 -7
- package/src/chart/sunburst/SunburstView.js +2 -1
- package/src/chart/themeRiver/ThemeRiverSeries.js +4 -3
- package/src/chart/tree/TreeSeries.js +19 -6
- package/src/chart/tree/TreeView.js +155 -22
- package/src/chart/treemap/TreemapSeries.js +15 -5
- package/src/chart/treemap/TreemapView.js +77 -41
- package/src/component/axis/AngleAxisView.js +75 -7
- package/src/component/axis/AxisBuilder.js +77 -32
- package/src/component/axis/CartesianAxisView.js +47 -83
- package/src/component/axis/RadiusAxisView.js +37 -4
- package/src/component/axis/SingleAxisView.js +21 -4
- package/src/component/axis/axisSplitHelper.js +114 -0
- package/src/component/brush/BrushView.js +8 -1
- package/src/component/brush/visualEncoding.js +6 -3
- package/src/component/dataZoom/SliderZoomView.js +4 -9
- package/src/component/helper/BrushController.js +40 -47
- package/src/component/helper/MapDraw.js +27 -4
- package/src/component/legend/LegendModel.js +3 -3
- package/src/component/legend/LegendView.js +18 -12
- package/src/component/legend/ScrollableLegendView.js +18 -16
- package/src/component/marker/MarkLineModel.js +2 -1
- package/src/component/marker/markerHelper.js +8 -5
- package/src/component/title.js +3 -2
- package/src/component/toolbox/ToolboxView.js +5 -0
- package/src/component/toolbox/feature/MagicType.js +19 -13
- package/src/component/toolbox/feature/SaveAsImage.js +2 -1
- package/src/component/tooltip/TooltipContent.js +59 -22
- package/src/component/tooltip/TooltipView.js +10 -8
- package/src/component/visualMap/PiecewiseModel.js +5 -9
- package/src/coord/Axis.js +29 -2
- package/src/coord/View.js +10 -1
- package/src/coord/axisDefault.js +25 -1
- package/src/coord/axisHelper.js +26 -19
- package/src/coord/calendar/Calendar.js +12 -5
- package/src/coord/geo/geoJSONLoader.js +3 -2
- package/src/coord/geo/geoSourceManager.js +3 -2
- package/src/coord/geo/parseGeoJson.js +3 -2
- package/src/coord/radar/Radar.js +6 -8
- package/src/data/DataDimensionInfo.js +135 -0
- package/src/data/List.js +29 -16
- package/src/data/Tree.js +12 -17
- package/src/data/helper/completeDimensions.js +49 -30
- package/src/data/helper/createDimensions.js +2 -0
- package/src/data/helper/sourceHelper.js +216 -124
- package/src/echarts.js +60 -36
- package/src/langEN.js +26 -0
- package/src/layout/barGrid.js +22 -10
- package/src/layout/barPolar.js +0 -4
- package/src/loading/default.js +46 -34
- package/src/model/Series.js +4 -4
- package/src/model/referHelper.js +34 -11
- package/src/scale/Interval.js +84 -4
- package/src/scale/Log.js +9 -2
- package/src/scale/helper.js +1 -39
- package/src/stream/Scheduler.js +8 -0
- package/src/theme/dark.js +3 -0
- package/src/util/format.js +17 -1
- package/src/util/graphic.js +13 -11
- package/src/visual/LegendVisualProvider.js +55 -0
- package/src/visual/dataColor.js +0 -13
- package/src/visual/seriesColor.js +13 -7
- package/src/visual/symbol.js +11 -2
- package/theme/azul.js +163 -0
- package/theme/bee-inspired.js +178 -0
- package/theme/blue.js +178 -0
- package/theme/caravan.js +178 -0
- package/theme/carp.js +163 -0
- package/theme/cool.js +180 -0
- package/theme/dark-blue.js +168 -0
- package/theme/dark-bold.js +168 -0
- package/theme/dark-digerati.js +168 -0
- package/theme/dark-fresh-cut.js +168 -0
- package/theme/dark-mushroom.js +168 -0
- package/theme/dark.js +69 -62
- package/theme/eduardo.js +178 -0
- package/theme/forest.js +163 -0
- package/theme/fresh-cut.js +163 -0
- package/theme/fruit.js +178 -0
- package/theme/gray.js +220 -0
- package/theme/green.js +222 -0
- package/theme/helianthus.js +263 -0
- package/theme/infographic.js +72 -57
- package/theme/inspired.js +163 -0
- package/theme/jazz.js +163 -0
- package/theme/london.js +163 -0
- package/theme/macarons.js +80 -57
- package/theme/macarons2.js +251 -0
- package/theme/mint.js +155 -0
- package/theme/red-velvet.js +163 -0
- package/theme/red.js +225 -0
- package/theme/roma.js +55 -22
- package/theme/royal.js +163 -0
- package/theme/sakura.js +140 -0
- package/theme/shine.js +52 -45
- package/theme/tech-blue.js +180 -0
- package/theme/vintage.js +37 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"FeatureCollection","features":[{"id":"120101","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BhB`R@DA@CD@DCFCHBLDF@DABKFIJGQG@COEQM@@OASB"],"encodeOffsets":[[119992,40041]]},"properties":{"cp":[117.195907,39.118327],"name":"和平区","childNum":1}},{"id":"120102","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@XFFIE@BGGA@KVBN_]CCCLgMGE@CD@AGB@AEGMEACB@BA@BFWFACKA@DA@@DA@C@CCCDGIAKMBWLGFERWT]bADCNE@DDIDEFBHTHBD@DLMPJj@ARX@"],"encodeOffsets":[[120075,40099]]},"properties":{"cp":[117.226568,39.122125],"name":"河东区","childNum":1}},{"id":"120103","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@TAPB@@RNPF@DRHPSXSFQHEXKE@CMIFUQA@DC@CCA@CDE@CEE@FOc@@D{@ch]IGFCFE`A\\"],"encodeOffsets":[[119992,40041]]},"properties":{"cp":[117.217536,39.101897],"name":"河西区","childNum":1}},{"id":"120104","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@C@@DCBQ@AcAmBOFaDEHEgKID]ZQTINCJEdkhHDRNCB@FD@BAFDFHB@JIDANFDECCZCBA\\B@Hd@LB@CAU"],"encodeOffsets":[[120007,40074]]},"properties":{"cp":[117.164143,39.120474],"name":"南开区","childNum":1}},{"id":"120105","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@FBBAJBFDJK\\NFEFBLKBBBATP`]QOLB@AHBBEJ@DDDE@QW@BQi@OIKN@CACQECG@CFCJCCCMCGAEDCFBT@DSTQN@BFDBDCJBJAHKAIFDDXDAB"],"encodeOffsets":[[119993,40130]]},"properties":{"cp":[117.201569,39.156632],"name":"河北区","childNum":1}},{"id":"120106","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@JELBBGAIDIACEC@ARMTSKAc@@G[AABYDDDCFMECBIJC@CPHZ@LHNFFNHBCDAZBB@DEJE"],"encodeOffsets":[[119980,40125]]},"properties":{"cp":[117.163301,39.175066],"name":"红桥区","childNum":1}},{"id":"120110","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@CK@QOCEAEK@KAAKAKEoRECIYK{\\Af@BMb@@WAGBC@GV@KYBUkB@@OD@AEUE@IQDAGSJEDFD@CIDAAKDE@KECOKKEABMVMRGBSGE@KDCDADDN@FCHCBGAIGUKUEcB]JULINIZGD[AU@QDMDGFQR_NODiBcDBLHJDCDDF@@CB@@CLBBDXEAEB@@ADAFBHNBFA@BHC@@DHF
NKhDD^DM`UA@LHBAHF@EJWE@RCFCCI@AFGA@BKARP_^ZXZL\\JfHNHEdEAAFBBQCAFPHRGtMBEB@NB^Cb@lECFHDPD@DNBJCFE@CEG@GTCPHBF`@JFBCHJJKRCP@JGTIAQGIDAPAVH@GCEKEEBAAVEBDADPFBBCFBBHE@WHClQPCFBTARE"],"encodeOffsets":[[120391,40118]]},"properties":{"cp":[117.313967,39.087764],"name":"东丽区","childNum":1}},{"id":"120111","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@CGECABC@@EDAQMGClgD]DM^c^YHCF@VrwJBBINBHAFAHBDAN@LDDGCCA@AC@AACBAAEFKA@KDCCJCJDFGF@DCBGDQJERFHGMCLEAAGAFGMMAWE@BHQLKIBAJECCCAAGQW[DAAjS@AIYXKGGT@NBFEBABOJBDMFADGG@BGH@@AACFKGCG@FMWMDABCBAACLCIGCAE@[P¥\\]N¯MNORU^]XKF`_XIIAIkDDZF@@FMDJLmTSDaHgDBJE@@DOBDH[HFJCBCGCBIMKH[L@AAAADUBACECGHWKCHTHBHaJDLF@JNF@FNLAH\\FABPD@EF@@HELCHVF@GXBB@DJBI\\PB@BN@BHK@GBAJ\\F@AACLABBAB@DFHB@FFJCDL@BA@@DF@JEBKHB@CjHBENDH@HSFBDKEAFG\\H@DE@AF@HHBANH@BQ@CBGNFT@`LFABIN@ALDBCFRHFB`D`ANANCG[DM"],"encodeOffsets":[[119940,40092]]},"properties":{"cp":[117.012247,39.139446],"name":"西青区","childNum":1}},{"id":"120112","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ZAZEVKXSPGVEnDHCJYJMVKNEPCdAZHRJJHHBDADG@ECMBCDCLCF@THHANQPWD@DBXRJ@HAJERSJAJBDCEOCAKYBQCA@GBCDSGAGBIHSNA@KCQMCF]INaCuOSGU{zm_yENH@HDELBD@BG@AHH@CHEBCNIAAPABEFMAS@HHWLJZ@BiTBB\\CRXBHDBDDIFABLJRKAGF@BXNNEHHBBBKFNDGHQEIFCRAHCDE@EHICIDDDLCB@ELBFABBD@BBDB@DDCHKCM@CBGAEBGBMAAJIAMP|@@Cd@EPF@DFF@DCB@DDD@@CRBEVNJ@D"],"encodeOffsets":[[120108,40016]]},"properties":{"cp":[117.382549,38.989577],"name":"津南区","childNum":1}},{"id":"120113","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@PQFFJICABACCDAKGJGLHRMVMMERKHH`WBFFCRFJHHIBOK_MC@QLCDIBAMA@COCGCDEkFa@]DMAA@AFsNQHOGBERDAABEFBFcMGeG[IQGGCmgABAAKLEAEF[MILECKA@BA@CABAWCCCIFEFYACBADICIIGM@KMDgDO@UCWIDECABKM@AJEB_KS@MEAH@DARG@BMGA@GBEF@@C[GEHFBCLEAGTG@MCAFgGA@@DGAALIFE@@CB@@ACKIDIGQJ@DHD@@GAAH@FDPbB@BDEJ@BBAFBNBHDBCDBDHBEJFBBDCFANA@AFTFFARPBNLABARA@DD@BB@HFA@PXBBLDACRKEAJF@GPD@AN@BjHCGZFJUN@BA^F@FIAAFNDCF@B\\LONADtJTAFBDCPBDGPETBADNDFFDFCD@LHBBKJFALIA@DB@@BNFBGHBBEN@@DHD@FFBDAH@AHBBCLDBF@@HFBBGJ@BBAFfLLABCH@ADLFJENAHKLAFBDEH@AHBDJB@DB@B@AADEFCLBNCDMDER@BKGA@ADEZDBELH"],"encodeOffsets":[[120140,40274]]},"properties":{"cp":[117.13482,39.225555],"name":"北辰区","childNum":1}},{"id":"120114","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DKEC^QZS^QwVMAAB@CCI@@CB@H@JCBCFEDBCFF@D@H@FALIXMBIECM@ADE@OABEPA@CBCD@HEDIGEC@AC@KJ@DCH@@DFADEDAFBFALGBMFABKGAAA@CAALEJOFAFIFEB@JKDEJBDCCAEAFI@IDIDINECABGBQBCFC@AOKIHED@EKG@JDFOH@EIEDEFOC@BCEACAACAEI@AAHUXC@GD@AMDED@BEF@BBHAKADID@BGCIBEIIGCAFOAGAEF@BHBALQ@CFCNMDKAEDCFBBC@@CIAACBGG@CFEAKBGLMBIFKEBCG@ADKBeKBEAAI@AHEA@GE@CADKAABGG@CBEA@EGC@CM@AFGAAHME@AA@@CJBBKIEALGA@KDCCEEEMCBCSAOFCHOACDEASBsIBCPM[K@ADEMCBEJB@E]EABM@IVYEDHiG@ABMC@HOE@BILFDQCBAKWA@OEB@GAAC@@CQBABKBAMQOEBSEBEB@BMDEACEAFIGAACDCCAAGAMBEAAI@CF@AaACO@EBGHB@@GC@CRICE@CBAAAKBBD@B[EBIHAL@AGM@@AOAJ[IA@CAAHWM@AHJ@G^G@AF@DA@@FEBBFcJqAEDECFFABBRCHBFEDDNAHA@@`@@CHG@AT`D@AH@@PBBCJDBFABGB@@BBAB@BIFBBDJ@@FE@DHKD@JA@@FGCCDE@AZFDM\\JBCZCRKA@FGA@JHB@FBBXFBCFB@BB@CRJ@DJ@HCTF@ADB@AHEAIFKACH@CA@CLA@FBAFB@@DH@CFE@ADIEKA@FAABIB@BCG@@CC@BAOMCJGG[C@BABG\\AAAD@FL@@DJBADHB@BA@ABOCCDC@@BC@ADB@ADA@AFL@@A\\D@FFBBEB@CLB@ELB@@BAB@DBB@DEA@DD@AFCACDBHJDALF@AFFBBCPB@DB@ABBBBBD@@DDBFB@DHBCHDBLEJNMF@DKCIFCFQCBAA@@AEBAA@@EA@DOICDGD@BB@ALDA@BYLKA@BBGGA@AMHEABCC@GNLE@NC@@DAAAFEAAJKBBBF@CB@BF@AFH@@BN@ADZF@DD@@DF@DCFBEBF@@JB@EDCPA@@FI@@BF@@DDCCTH@C@TD@BB@G^FAGPECBGG@@BSAEDALG@AJA@AHC@ABC@@FEAAHB@@DB@BDF@AHHFA@DBABD@D@CBBBCBXH@DB@AFH@EHCACFCBCFA@CFDACL@BB@AFB@BCDBBA@BBBBCFBADE@B@@BCBBBD@ABE@ABAA@BLD@BHDBEGA@AD@CABEL@CJHBEHDBEJBBPDFCBEJDDBH@@FADHBMNIHFDEFFD@AJFADBBBAF@D@AHDBRDBD@RCBBJV@@BD@BDPBFEBBCDTHL@DAHBBCDBABTDCJJBGJNBAND@ADFBHE@DED@H@@@FH@X@BCBBBCB@DFZ@DMA@CFA@GMCADGAGBCNMAAIA@KXGCODOJMD@LJJC@C@KC@BCFAFDRDBAD@CD^F@DF@BFFA@FJB@DbEPEbElMTIZGAAFA@CJ@BE@@@FHA@EJA@CHBADBGPA@BG@AFBBVGHFL@BBABD@"],"encodeOffsets":[[119960,40574]]},"properties":{"cp":[117.057959,39.376925],"name":"武清区","childNum":1}},{"id":"120115","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@GBAAE@AFC@CFBNC@@HWDGVBBJ@BFBDDBFBADD@EPCFJF@FPGCE@ILH@FFCJGPL@BEDADARAHDBMFCJCJ@JEJFBDBCDIACFILA@EFEJEBIPKFBB@DBBHBALEBANKHEBEACBCFEB@CG@CDI@@LBDD@HFCJGFC@AD@DOBAFPBF@BCN@FDAJWNKJEBG@C@E@DECAEFADIDG@ADJ@DDA@BBUNx]RYT]RFDCLJBADDBGDBDHBFJJ@TBBHB@@DH@AFKBCB@HE@@BEA@D@@ADBHC@@AA@@DCB@DB@@FJ@@FD@@HH@E\\F@ADB@ARBBBFED@BD@@BCA@HD@AJE@@ACAAHDB@BH@AHCB@EAAADGB@BE@BBK@FLEBDDADA@BDNB@DJCBBIR@DBBDBFALDX@DHL@DJFA@BH@HHKJAB@DC@GFOHED@BCBAZE@ADE@AFGACEEDA@@AGAAVJ@IVB@@DB@@DHGJB@JpFBCFBEPPBBCNFBGHBPC@EHBFFRDRA^GD@JCFDJGHBLGFECCBGHBBCFBDCFB@EFGD@@BF@@DPALEDCECDEDABED@HCHJH@FDDEFDHENCLBDDDA@ERABEN@JEDDBACEJ@AINMRBJGAIDCZEJCLAFRTJHAHJHFD@@AEKBAFBRJGF@BPAFBHEDBFHBAFO@@NFH@BEFGHAD@BFBBJID@BFDBDEB@J@AGDCL@FBNIBBFJD@HKDCNDF@DAFGFCdE@A@AICBCJC@C@AGAEFC@@MIBAABC@CKA@CBANACAGC@ARBJG@GLGHCX@LENBNE@EDAFBHHD@DCDIIMLCBGN@@AIEBANEGKLEJDDAAGIKHKCIBECIECSF@GBKGCIDC@FKAAGCBOC@OB@MKGC@CHCAAEFUB@HDLPJDBCAIFGDARDHGBC@EIKDGB@N@PHJHBLHBNARQXGFG@GIGK@IDEFEAAC@EHILCP@JCDGCEOFCBGABCKCBSEEK@ADIGO@AEOCEDDBqNAAH]MKiIAW@@CA@GA@DIMA@CGAAD_EEH@FIA@HIAAHUEDOHAFIOSKGSEcDAEI@@CBCOEC@CDCFEBKEFIMEGEA@@BIA@ERFBDQCABADQDCCAHMJBDEMEADGAUCCC@CDA@CCCICGO@BDJG@CADGK@CCGFICCBKEEDGBCAAEKDAABGFE@ACABCAAeA@HM@GBYD@BE@@NABGB@CCAW@@ACAEF_BYECII@CG"],"encodeOffsets":[[120145,40295]]},"properties":{"cp":[117.308094,39.716965],"name":"宝坻区","childNum":1}},{"id":"120116","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@LCFBLCBDJC@CEIFHTCBJRF@FXPC@@lAAVLZU@@HADBH@Xa@ANe@[BL|J\\FBpQLFLBBB@LFLFBPD@RDLpMpGBPNREHE@@dVF@BJB@BD@@DFDLBDGHGDA^c\\@@cFD@@jEBJZFLhrePFBEJGAENE@IVC@@RBLV@DPT@zJLHPFVDNECC@SACjQJBJCACIDMQhQD@tCD]LBHDBH@GLHNB@DQHBAFDHE@@DEBDFFAD@@BF@BBAB@BNFBEHCXDT@JGAGVEBEDCDB@BF@@DRC@BZ@PAP@BCFAJ@@B@BTC@DB@JEAAB@FB@ACAB@@CC@BCHOF@BADAAADCHBH@HECEB@BCHBDBBCFDBAACBAD@BBPGJF@@ABDB@BD@ABBDDAFCBC@CB@CCAKNECG@EF@@EzQBiAC@Ey@BUI@±]GaQaý¥Y_YeK]EaDqPmHcD{DKQBMMaKEUC_BOASY_YAYDXSIaa¹JgCeOQ[@RUbK¶MPGJMA¯CUSQÓgOKMWEa³OqIGFG@EBEACIGCFK]EE@@DFD@B@BG@BHCFC@@EEAIHEACBC@BFCBQCaDFKACEBECADE@SSKMIKHQKHEJ@[UGCoO@d[CFSMIAIE@AH[A@DOA@AQKOEEBARGNI@G@BSgE@AOACJSKMVC@IXF@hJAFmKCHB@PVVFAHHB@JC@CH@BABD@ABMFC@@BSB@BAAAHG@JL@BBBWABHHB@N@BMBMAEEESMA@EA@@CCE@FC@AEQ@@GCAA@AJC@BEK@AAABSGA@@FEA@BCBC@@EC@@DK@LHBD@HCDBFCBABB@F@@FB@@DFJ@HB@BLADK@HBDBCBG@@DH@@F@DCJIB@JK@AJFBCLBHH@DCBJFF@PATBHB@ABDTbB@DaCAAE@@CAACAOF@HADE@@BICAFBHEBhTBPDBJCFCªvEFeVTROJVT`OFH®_\\OF@DBJHKDBDABADCB¶n`|yHVPTvbDM^JDERNLDB@TMJGHAHBCTAD@HDBARLZDBFPCDIAGBUVOFGB"],"encodeOffsets":[[120348,39943]]},"properties":{"cp":[117.654173,39.032846],"name":"滨海新区","childNum":1}},{"id":"120117","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ABCJKD@RNDL`APGJIGQEEDAE_XGGQLNFUNQNKGIHLHCBDDABDBIJEEORFFAFDJAHC@CJLBDHJ@DJZF`AFEDB@BX@DB@DHABA@MF@@AZCHAN@@GfBBBADDB@BEFAHBBLCBFDBHAFCLFDAJDHEDDL@CHDBH@CI@AHPJDDD@DCB@DDDVDHBBCNFCFIAGNDBCDCRABDBCREAQ@FJB@AB@HFNFEJLFFADEDCD@PFAD@DJ@BFdCTFLHPTEJGBCPVFBGJB@GJB@EFG`FBCHB@DNBCJB@@HDB@@BXjJNLGZ@DBBrMACFANDBFP@JHBCL@FFATLDADHBDAPEAC@EBIFIJGNJJ@JBJJHJHFSZA@BND@@LVB@BJ@AFDBBDEDILjTABlEHHTBvWVAPDHCDFL@LHHB`MFALDNC^M^GJIEKABEGACC@IMA@AOB@EACIGAAEBAECCBDAAAAADAAEFCBDB@ACB@AAAABEBAD@AG@ADFAEB@A@GKSCCgG@AEJA@AFO@ECCQEEEOBGYG@BqGBKXBFKCYJKOIKNEASCeA_ECSBGFENEF@HDZ@FCBE`TEFB@EFHFFEECBCFDFADBDEUWCOGBAIECLG@CEIFA@CF@CGBEGACRA@GMHKG@CAAG^KDCsC@gRNRJCBDIDIAiRBD@TDDMFUCOEKGyIS@COU@AK@QD@JUF@FMHBFIEAfOgqEKIYFA@i@EC@d[@]dCBGHCHKAEC@CC@@AIA@AUE@cF@FGMQAOgFVSBEAODkRGD@XGFAADEAAOEBCACUFBBFALFDF@HUGOBCBHJBRSJIHO@QDILGIADIE_@AEOGSD@HFH@DEFID"],"encodeOffsets":[[120221,40183]]},"properties":{"cp":[117.82828,39.328886],"name":"宁河区","childNum":1}},{"id":"120118","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AHC@@FCA@DHB@JS@@DA@@H]BCTKfG@BHK@@FEAADJD@RJhNNI@@FQBBDCBQA@BBLMIBNFJADHHEBuK@IA@AKU@UDDHKI@HAGAAC]@CDCA@MSAHPGBOEMEIA@EC@@DA@MBAASB@BCB@TE@@BBBBDAHCBDFABFNGBBFKBBFC@BDB@FPC@BPCPMACEoBE@AAC@@DcB_D@ECB@A@BA@B@@DC@@CA@@IE@AAG@BDK@EBABQA@JE@@HC@ABA@@BB@ADOA@DIAACA@NxQB@FIBHXHABFKBFLIDLPDTF@DNC@CAGB@FA@BJDXmBA[@@D@@NL@BHB@H\\BTD@HRB@JF@FL@FHDNDABJDCDTD@DTA@@LF@BB@XGBADE@@B@B@DJXJ@XEDFHAFHCBBDBDJBBHTCAIGBAAGBEA@EC@BCB@@BBAC@@AB@@CD@@DB@@DJ@DDF@DAF@@CLABBF@@AB@BBJ@@IBBDBB@ACJBJDR@@HD@@GfBAFXBCLH@GTPFjKAGSGDGXLHGFDBDVABCBB@B\\KLGJNDADHDAEI\\GCGPA@CF@AIhCbGTCnSIKNC@EE@CYlCBJJJ`W~W\\M^WV]^_°VIEG_PUSPISQfUFE©uEDIDCAAOgSFAAGBEJD@AF@BC@GPEDBBB@DF@BBbD@CaACSBAA@AGBS@OEEAICDG@AGDKEABIL@@IJADI@C@EG@@CH@DACAGAL@@OA@@GEI@CA@@EE@A@BADAAEDC@GACOKB@BMEB@ESEAABECAWBAECBBCC@CIBCS@@IWD"],"encodeOffsets":[[119909,39513]]},"properties":{"cp":[116.925304,38.935671],"name":"静海区","childNum":1}},{"id":"120119","type":"Feature","geometry":{"type":"Polygon","coordinates":[],"encodeOffsets":[]},"properties":{"cp":[117.407449,40.045342],"name":"蓟州区","childNum":0}}],"UTF8Encoding":true}
|
|
1
|
+
{"type":"FeatureCollection","features":[{"id":"120101","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BhB`R@DA@CD@DCFCHBLDF@DABKFIJGQG@COEQM@@OASB"],"encodeOffsets":[[119992,40041]]},"properties":{"cp":[117.195907,39.118327],"name":"和平区","childNum":1}},{"id":"120102","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@XFFIE@BGGA@KVBN_]CCCLgMGE@CD@AGB@AEGMEACB@BA@BFWFACKA@DA@@DA@C@CCCDGIAKMBWLGFERWT]bADCNE@DDIDEFBHTHBD@DLMPJj@ARX@"],"encodeOffsets":[[120075,40099]]},"properties":{"cp":[117.226568,39.122125],"name":"河东区","childNum":1}},{"id":"120103","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@TAPB@@RNPF@DRHPSXSFQHEXKE@CMIFUQA@DC@CCA@CDE@CEE@FOc@@D{@ch]IGFCFE`A\\"],"encodeOffsets":[[119992,40041]]},"properties":{"cp":[117.217536,39.101897],"name":"河西区","childNum":1}},{"id":"120104","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@C@@DCBQ@AcAmBOFaDEHEgKID]ZQTINCJEdkhHDRNCB@FD@BAFDFHB@JIDANFDECCZCBA\\B@Hd@LB@CAU"],"encodeOffsets":[[120007,40074]]},"properties":{"cp":[117.164143,39.120474],"name":"南开区","childNum":1}},{"id":"120105","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@FBBAJBFDJK\\NFEFBLKBBBATP`]QOLB@AHBBEJ@DDDE@QW@BQi@OIKN@CACQECG@CFCJCCCMCGAEDCFBT@DSTQN@BFDBDCJBJAHKAIFDDXDAB"],"encodeOffsets":[[119993,40130]]},"properties":{"cp":[117.201569,39.156632],"name":"河北区","childNum":1}},{"id":"120106","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@JELBBGAIDIACEC@ARMTSKAc@@G[AABYDDDCFMECBIJC@CPHZ@LHNFFNHBCDAZBB@DEJE"],"encodeOffsets":[[119980,40125]]},"properties":{"cp":[117.163301,39.175066],"name":"红桥区","childNum":1}},{"id":"120110","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@CK@QOCEAEK@KAAKAKEoRECIYK{\\Af@BMb@@WAGBC@GV@KYBUkB@@OD@AEUE@IQDAGSJEDFD@CIDAAKDE@KECOKKEABMVMRGBSGE@KDCDADDN@FCHCBGAIGUKUEcB]JULINIZGD[AU@QDMDGFQR_NODiBcDBLHJDCDDF@@CB@@CLBBDXEAEB@@ADAFBHNBFA@BHC@@DHF
NKhDD^DM`UA@LHBAHF@EJWE@RCFCCI@AFGA@BKARP_^ZXZL\\JfHNHEdEAAFBBQCAFPHRGtMBEB@NB^Cb@lECFHDPD@DNBJCFE@CEG@GTCPHBF`@JFBCHJJKRCP@JGTIAQGIDAPAVH@GCEKEEBAAVEBDADPFBBCFBBHE@WHClQPCFBTARE"],"encodeOffsets":[[120391,40118]]},"properties":{"cp":[117.313967,39.087764],"name":"东丽区","childNum":1}},{"id":"120111","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@CGECABC@@EDAQMGClgD]DM^c^YHCF@VrwJBBINBHAFAHBDAN@LDDGCCA@AC@AACBAAEFKA@KDCCJCJDFGF@DCBGDQJERFHGMCLEAAGAFGMMAWE@BHQLKIBAJECCCAAGQW[DAAjS@AIYXKGGT@NBFEBABOJBDMFADGG@BGH@@AACFKGCG@FMWMDABCBAACLCIGCAE@[P¥\\]N¯MNORU^]XKF`_XIIAIkDDZF@@FMDJLmTSDaHgDBJE@@DOBDH[HFJCBCGCBIMKH[L@AAAADUBACECGHWKCHTHBHaJDLF@JNF@FNLAH\\FABPD@EF@@HELCHVF@GXBB@DJBI\\PB@BN@BHK@GBAJ\\F@AACLABBAB@DFHB@FFJCDL@BA@@DF@JEBKHB@CjHBENDH@HSFBDKEAFG\\H@DE@AF@HHBANH@BQ@CBGNFT@`LFABIN@ALDBCFRHFB`D`ANANCG[DM"],"encodeOffsets":[[119940,40092]]},"properties":{"cp":[117.122247,39.029446],"name":"西青区","childNum":1}},{"id":"120112","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ZAZEVKXSPGVEnDHCJYJMVKNEPCdAZHRJJHHBDADG@ECMBCDCLCF@THHANQPWD@DBXRJ@HAJERSJAJBDCEOCAKYBQCA@GBCDSGAGBIHSNA@KCQMCF]INaCuOSGU{zm_yENH@HDELBD@BG@AHH@CHEBCNIAAPABEFMAS@HHWLJZ@BiTBB\\CRXBHDBDDIFABLJRKAGF@BXNNEHHBBBKFNDGHQEIFCRAHCDE@EHICIDDDLCB@ELBFABBD@BBDB@DDCHKCM@CBGAEBGBMAAJIAMP|@@Cd@EPF@DFF@DCB@DDD@@CRBEVNJ@D"],"encodeOffsets":[[120108,40016]]},"properties":{"cp":[117.382549,38.989577],"name":"津南区","childNum":1}},{"id":"120113","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@PQFFJICABACCDAKGJGLHRMVMMERKHH`WBFFCRFJHHIBOK_MC@QLCDIBAMA@COCGCDEkFa@]DMAA@AFsNQHOGBERDAABEFBFcMGeG[IQGGCmgABAAKLEAEF[MILECKA@BA@CABAWCCCIFEFYACBADICIIGM@KMDgDO@UCWIDECABKM@AJEB_KS@MEAH@DARG@BMGA@GBEF@@C[GEHFBCLEAGTG@MCAFgGA@@DGAALIFE@@CB@@ACKIDIGQJ@DHD@@GAAH@FDPbB@BDEJ@BBAFBNBHDBCDBDHBEJFBBDCFANA@AFTFFARPBNLABARA@DD@BB@HFA@PXBBLDACRKEAJF@GPD@AN@BjHCGZFJUN@BA^F@FIAAFNDCF@B\\LONADtJTAFBDCPBDGPETBADNDFFDFCD@LHBBKJFALIA@DB@@BNFBGHBBEN@@DHD@FFBDAH@AHBBCLDBF@@HFBBGJ@BBAFfLLABCH@ADLFJENAHKLAFBDEH@AHBDJB@DB@B@AADEFCLBNCDMDER@BKGA@ADEZDBELH"],"encodeOffsets":[[120140,40274]]},"properties":{"cp":[117.17482,39.255555],"name":"北辰区","childNum":1}},{"id":"120114","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DKEC^QZS^QwVMAAB@CCI@@CB@H@JCBCFEDBCFF@D@H@FALIXMBIECM@ADE@OABEPA@CBCD@HEDIGEC@AC@KJ@DCH@@DFADEDAFBFALGBMFABKGAAA@CAALEJOFAFIFEB@JKDEJBDCCAEAFI@IDIDINECABGBQBCFC@AOKIHED@EKG@JDFOH@EIEDEFOC@BCEACAACAEI@AAHUXC@GD@AMDED@BEF@BBHAKADID@BGCIBEIIGCAFOAGAEF@BHBALQ@CFCNMDKAEDCFBBC@@CIAACBGG@CFEAKBGLMBIFKEBCG@ADKBeKBEAAI@AHEA@GE@CADKAABGG@CBEA@EGC@CM@AFGAAHME@AA@@CJBBKIEALGA@KDCCEEEMCBCSAOFCHOACDEASBsIBCPM[K@ADEMCBEJB@E]EABM@IVYEDHiG@ABMC@HOE@BILFDQCBAKWA@OEB@GAAC@@CQBABKBAMQOEBSEBEB@BMDEACEAFIGAACDCCAAGAMBEAAI@CF@AaACO@EBGHB@@GC@CRICE@CBAAAKBBD@B[EBIHAL@AGM@@AOAJ[IA@CAAHWM@AHJ@G^G@AF@DA@@FEBBFcJqAEDECFFABBRCHBFEDDNAHA@@`@@CHG@AT`D@AH@@PBBCJDBFABGB@@BBAB@BIFBBDJ@@FE@DHKD@JA@@FGCCDE@AZFDM\\JBCZCRKA@FGA@JHB@FBBXFBCFB@BB@CRJ@DJ@HCTF@ADB@AHEAIFKACH@CA@CLA@FBAFB@@DH@CFE@ADIEKA@FAABIB@BCG@@CC@BAOMCJGG[C@BABG\\AAAD@FL@@DJBADHB@BA@ABOCCDC@@BC@ADB@ADA@AFL@@A\\D@FFBBEB@CLB@ELB@@BAB@DBB@DEA@DD@AFCACDBHJDALF@AFFBBCPB@DB@ABBBBBD@@DDBFB@DHBCHDBLEJNMF@DKCIFCFQCBAA@@AEBAA@@EA@DOICDGD@BB@ALDA@BYLKA@BBGGA@AMHEABCC@GNLE@NC@@DAAAFEAAJKBBBF@CB@BF@AFH@@BN@ADZF@DD@@DF@DCFBEBF@@JB@EDCPA@@FI@@BF@@DDCCTH@C@TD@BB@G^FAGPECBGG@@BSAEDALG@AJA@AHC@ABC@@FEAAHB@@DB@BDF@AHHFA@DBABD@D@CBBBCBXH@DB@AFH@EHCACFCBCFA@CFDACL@BB@AFB@BCDBBA@BBBBCFBADE@B@@BCBBBD@ABE@ABAA@BLD@BHDBEGA@AD@CABEL@CJHBEHDBEJBBPDFCBEJDDBH@@FADHBMNIHFDEFFD@AJFADBBBAF@D@AHDBRDBD@RCBBJV@@BD@BDPBFEBBCDTHL@DAHBBCDBABTDCJJBGJNBAND@ADFBHE@DED@H@@@FH@X@BCBBBCB@DFZ@DMA@CFA@GMCADGAGBCNMAAIA@KXGCODOJMD@LJJC@C@KC@BCFAFDRDBAD@CD^F@DF@BFFA@FJB@DbEPEbElMTIZGAAFA@CJ@BE@@@FHA@EJA@CHBADBGPA@BG@AFBBVGHFL@BBABD@"],"encodeOffsets":[[119960,40574]]},"properties":{"cp":[117.057959,39.466925],"name":"武清区","childNum":1}},{"id":"120115","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@GBAAE@AFC@CFBNC@@HWDGVBBJ@BFBDDBFBADD@EPCFJF@FPGCE@ILH@FFCJGPL@BEDADARAHDBMFCJCJ@JEJFBDBCDIACFILA@EFEJEBIPKFBB@DBBHBALEBANKHEBEACBCFEB@CG@CDI@@LBDD@HFCJGFC@AD@DOBAFPBF@BCN@FDAJWNKJEBG@C@E@DECAEFADIDG@ADJ@DDA@BBUNx]RYT]RFDCLJBADDBGDBDHBFJJ@TBBHB@@DH@AFKBCB@HE@@BEA@D@@ADBHC@@AA@@DCB@DB@@FJ@@FD@@HH@E\\F@ADB@ARBBBFED@BD@@BCA@HD@AJE@@ACAAHDB@BH@AHCB@EAAADGB@BE@BBK@FLEBDDADA@BDNB@DJCBBIR@DBBDBFALDX@DHL@DJFA@BH@HHKJAB@DC@GFOHED@BCBAZE@ADE@AFGACEEDA@@AGAAVJ@IVB@@DB@@DHGJB@JpFBCFBEPPBBCNFBGHBPC@EHBFFRDRA^GD@JCFDJGHBLGFECCBGHBBCFBDCFB@EFGD@@BF@@DPALEDCECDEDABED@HCHJH@FDDEFDHENCLBDDDA@ERABEN@JEDDBACEJ@AINMRBJGAIDCZEJCLAFRTJHAHJHFD@@AEKBAFBRJGF@BPAFBHEDBFHBAFO@@NFH@BEFGHAD@BFBBJID@BFDBDEB@J@AGDCL@FBNIBBFJD@HKDCNDF@DAFGFCdE@A@AICBCJC@C@AGAEFC@@MIBAABC@CKA@CBANACAGC@ARBJG@GLGHCX@LENBNE@EDAFBHHD@DCDIIMLCBGN@@AIEBANEGKLEJDDAAGIKHKCIBECIECSF@GBKGCIDC@FKAAGCBOC@OB@MKGC@CHCAAEFUB@HDLPJDBCAIFGDARDHGBC@EIKDGB@N@PHJHBLHBNARQXGFG@GIGK@IDEFEAAC@EHILCP@JCDGCEOFCBGABCKCBSEEK@ADIGO@AEOCEDDBqNAAH]MKiIAW@@CA@GA@DIMA@CGAAD_EEH@FIA@HIAAHUEDOHAFIOSKGSEcDAEI@@CBCOEC@CDCFEBKEFIMEGEA@@BIA@ERFBDQCABADQDCCAHMJBDEMEADGAUCCC@CDA@CCCICGO@BDJG@CADGK@CCGFICCBKEEDGBCAAEKDAABGFE@ACABCAAeA@HM@GBYD@BE@@NABGB@CCAW@@ACAEF_BYECII@CG"],"encodeOffsets":[[120145,40295]]},"properties":{"cp":[117.428094,39.596965],"name":"宝坻区","childNum":1}},{"id":"120116","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@LCFBLCBDJC@CEIFHTCBJRF@FXPC@@lAAVLZU@@HADBH@Xa@ANe@[BL|J\\FBpQLFLBBB@LFLFBPD@RDLpMpGBPNREHE@@dVF@BJB@BD@@DFDLBDGHGDA^c\\@@cFD@@jEBJZFLhrePFBEJGAENE@IVC@@RBLV@DPT@zJLHPFVDNECC@SACjQJBJCACIDMQhQD@tCD]LBHDBH@GLHNB@DQHBAFDHE@@DEBDFFAD@@BF@BBAB@BNFBEHCXDT@JGAGVEBEDCDB@BF@@DRC@BZ@PAP@BCFAJ@@B@BTC@DB@JEAAB@FB@ACAB@@CC@BCHOF@BADAAADCHBH@HECEB@BCHBDBBCFDBAACBAD@BBPGJF@@ABDB@BD@ABBDDAFCBC@CB@CCAKNECG@EF@@EzQBiAC@Ey@BUI@±]GaQaý¥Y_YeK]EaDqPmHcD{DKQBMMaKEUC_BOASY_YAYDXSIaa¹JgCeOQ[@RUbK¶MPGJMA¯CUSQÓgOKMWEa³OqIGFG@EBEACIGCFK]EE@@DFD@B@BG@BHCFC@@EEAIHEACBC@BFCBQCaDFKACEBECADE@SSKMIKHQKHEJ@[UGCoO@d[CFSMIAIE@AH[A@DOA@AQKOEEBARGNI@G@BSgE@AOACJSKMVC@IXF@hJAFmKCHB@PVVFAHHB@JC@CH@BABD@ABMFC@@BSB@BAAAHG@JL@BBBWABHHB@N@BMBMAEEESMA@EA@@CCE@FC@AEQ@@GCAA@AJC@BEK@AAABSGA@@FEA@BCBC@@EC@@DK@LHBD@HCDBFCBABB@F@@FB@@DFJ@HB@BLADK@HBDBCBG@@DH@@F@DCJIB@JK@AJFBCLBHH@DCBJFF@PATBHB@ABDTbB@DaCAAE@@CAACAOF@HADE@@BICAFBHEBhTBPDBJCFCªvEFeVTROJVT`OFH®_\\OF@DBJHKDBDABADCB¶n`|yHVPTvbDM^JDERNLDB@TMJGHAHBCTAD@HDBARLZDBFPCDIAGBUVOFGB"],"encodeOffsets":[[120348,39943]]},"properties":{"cp":[117.654173,39.032846],"name":"滨海新区","childNum":1}},{"id":"120117","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ABCJKD@RNDL`APGJIGQEEDAE_XGGQLNFUNQNKGIHLHCBDDABDBIJEEORFFAFDJAHC@CJLBDHJ@DJZF`AFEDB@BX@DB@DHABA@MF@@AZCHAN@@GfBBBADDB@BEFAHBBLCBFDBHAFCLFDAJDHEDDL@CHDBH@CI@AHPJDDD@DCB@DDDVDHBBCNFCFIAGNDBCDCRABDBCREAQ@FJB@AB@HFNFEJLFFADEDCD@PFAD@DJ@BFdCTFLHPTEJGBCPVFBGJB@GJB@EFG`FBCHB@DNBCJB@@HDB@@BXjJNLGZ@DBBrMACFANDBFP@JHBCL@FFATLDADHBDAPEAC@EBIFIJGNJJ@JBJJHJHFSZA@BND@@LVB@BJ@AFDBBDEDILjTABlEHHTBvWVAPDHCDFL@LHHB`MFALDNC^M^GJIEKABEGACC@IMA@AOB@EACIGAAEBAECCBDAAAAADAAEFCBDB@ACB@AAAABEBAD@AG@ADFAEB@A@GKSCCgG@AEJA@AFO@ECCQEEEOBGYG@BqGBKXBFKCYJKOIKNEASCeA_ECSBGFENEF@HDZ@FCBE`TEFB@EFHFFEECBCFDFADBDEUWCOGBAIECLG@CEIFA@CF@CGBEGACRA@GMHKG@CAAG^KDCsC@gRNRJCBDIDIAiRBD@TDDMFUCOEKGyIS@COU@AK@QD@JUF@FMHBFIEAfOgqEKIYFA@i@EC@d[@]dCBGHCHKAEC@CC@@AIA@AUE@cF@FGMQAOgFVSBEAODkRGD@XGFAADEAAOEBCACUFBBFALFDF@HUGOBCBHJBRSJIHO@QDILGIADIE_@AEOGSD@HFH@DEFID"],"encodeOffsets":[[120221,40183]]},"properties":{"cp":[117.63828,39.358886],"name":"宁河区","childNum":1}},{"id":"120118","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AHC@@FCA@DHB@JS@@DA@@H]BCTKfG@BHK@@FEAADJD@RJhNNI@@FQBBDCBQA@BBLMIBNFJADHHEBuK@IA@AKU@UDDHKI@HAGAAC]@CDCA@MSAHPGBOEMEIA@EC@@DA@MBAASB@BCB@TE@@BBBBDAHCBDFABFNGBBFKBBFC@BDB@FPC@BPCPMACEoBE@AAC@@DcB_D@ECB@A@BA@B@@DC@@CA@@IE@AAG@BDK@EBABQA@JE@@HC@ABA@@BB@ADOA@DIAACA@NxQB@FIBHXHABFKBFLIDLPDTF@DNC@CAGB@FA@BJDXmBA[@@D@@NL@BHB@H\\BTD@HRB@JF@FL@FHDNDABJDCDTD@DTA@@LF@BB@XGBADE@@B@B@DJXJ@XEDFHAFHCBBDBDJBBHTCAIGBAAGBEA@EC@BCB@@BBAC@@AB@@CD@@DB@@DJ@DDF@DAF@@CLABBF@@AB@BBJ@@IBBDBB@ACJBJDR@@HD@@GfBAFXBCLH@GTPFjKAGSGDGXLHGFDBDVABCBB@B\\KLGJNDADHDAEI\\GCGPA@CF@AIhCbGTCnSIKNC@EE@CYlCBJJJ`W~W\\M^WV]^_°VIEG_PUSPISQfUFE©uEDIDCAAOgSFAAGBEJD@AF@BC@GPEDBBB@DF@BBbD@CaACSBAA@AGBS@OEEAICDG@AGDKEABIL@@IJADI@C@EG@@CH@DACAGAL@@OA@@GEI@CA@@EE@A@BADAAEDC@GACOKB@BMEB@ESEAABECAWBAECBBCC@CIBCS@@IWD"],"encodeOffsets":[[119909,39513]]},"properties":{"cp":[116.925304,38.935671],"name":"静海区","childNum":1}},{"id":"120119","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@AECDAACDA@AACDE@CF@JMJEHB@BPBJKBEBED@@DB@DC@CFBBAD@@GDCCAFGD@BABBBADBDBDGAEJCBCCE@C^GACDCDBAE@BA@BAC@BABMF@EAFC@@C@@AH@AAD@C@DACA@AMEAC@GECJID@@BBABA@BDB@AB@@BBB@DBBDBFADBBHD@BGD@@ABGD@@EF@CCBAA@@GF@BL@@@EFABB@@B@ACJADHEBF@ABBJDBH@BBFCHAD@BDB@DIBIBCDBCDFB@ED@@AH@AAFCH@JBFEXBBB@DB@H@DADA@ABADGI@BID@DET@BGD@BCD@BBBCACAIMGICGCKB@FA@@EAB@BCA@DAA@MB@AEAEEEBG@SZOBDAJHHFCDBBABFD@@MB@ARZ@@GB@@IDFFAFABAAEDAHA@CE@@CCAFCAEDA@EA@@@CCCA@CCA@CCEAGBAAEACDCKK@CGFKBA@CAKHIICEGBEFOHE@ICKBAFEF@DI@OJIBIAABI@@DA@@CKCEGG@OIMAIBACIAC@EBCAQ@ABCAACCAEAQDE@EDE@EFB@A@ABBDB@BC@DDB@HEAGDGFCB@DCDADI@@BE@@BABC@EAA@@AAACBGAAB@BI@EADCE@ECGDBFEDCAIBE@ABE@CICDCACFEA@ABABIFCDCBEB@DABIQMAIA@@GC@AKB@@ACCCCGDEKGDCEEBGKBM\\IGIB@AGCBCC@BABCEAFE@@AOADAAEF@@BF@FHAEBA@KBA@ECBBBCBACEB@CC@ACFAFSL@BBDEDiRUC@@ADAFEBGHBNQBHFCCEDGIABICCADE@ADAAC@@AD@@CF@@EB@@MBBD@@AB@@BD@FBRWFQ@ENAACC@ICK@@EBGACACIGCILC@CFAIOG@CCEBCCK@CDBHI@A@CFCAAEC@IJAAAEG@CBEHAFG@ME@@EPABEGCAGFEAOB@AHEQIEAABFL@BC@GEGIGBSIEQMBGDWDEFBJIHE@IAOLBLI@DFABCCIFM@AFQB@FCBCCKAMDGFECCFECG@GIGDC@AFCBCFFDCDKFOB@CE@@AC@EH@FEACDEAADGAAHDDQNGAGFC@CAIDC@CBCFE@ADHDCDDD@DH@BDOVAFGFO@AAAGA@KBCGA@OHE@IAAHG@ODEAE@MLA@CEE@ADBFEDCA@CAAM@CDPJ@DGDA@@ECCE@CHIDGEA@@FDFBHFHSNAFBDDBNFBD@FEBO@E@EPKB@DNBNDCDCJ@DHFD@FCFDADEHEDE@CDBDHEFFJFLBDFAF@HAB@BGDBBJED@F@B@DGD@FLBHCBBBALTD@BD@@DB@@JF@AFHB@DB@@PCHB@@HBDABCABDEJBJCDE@AD@NAD@DBRABDBEHEDBDCHDHDADABBFA@FBFTCBAF@FDDCFBJAHD@BEF@BIFCLGFDDHBCBBB@BED@LN@LCBDADHDBHNHDHHDHAHHHA@AD@@CJBNCDEBCHAFFAJFBBFD@DFDBH@FCD@DAB@@FLHDFBFBB@JJDDBBAHAJFFGD@DA@ENBDBJAJDFJD@BCBDBHK@@BDBDDA@G@DDJHBBD@BBEH@FIJ@DCB@DF@H@B@FCBB@BA@@BDB@DDAAADAC@ACF@@DBA@ABB@BDBBBF@D@FEDABBCHDCDBBAP@BBEDJDJHHA@DDBBBEBEFC@CDIG@BCBCAACG@@DA@BFBB@BA@E@AD@BAB@FFFBCAAJDFAFBKHC@AAC@AD@DE@BJCDBBA@F@DDL@LBAD@DABCDFDDF@BFBJA@EDABDDBB@AADBFHDABBAHCFFJD@DBDAF@D@DCD@HDBBFDBDLADBBAF@NGJ@FCDCLABEDBJ@DCBIHABAD@NCD@JGFBN@NDF@BAJBJ@DBF@NDD@@EB@DCD@BDTALGC@D@ACDCBCEIEAACAECCDAF@JGBAAIFC"],"encodeOffsets":[[120398,41158]]},"properties":{"cp":[117.407449,40.045342],"name":"蓟州区","childNum":1}}],"UTF8Encoding":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "echarts",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.0",
|
|
4
4
|
"description": "A powerful charting and visualization library for browser",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": [
|
|
@@ -19,14 +19,15 @@
|
|
|
19
19
|
"help": "node build/build.js --help",
|
|
20
20
|
"prepublish": "node build/build.js --prepublish",
|
|
21
21
|
"test:visual": "node test/runTest/server.js",
|
|
22
|
-
"test": "node
|
|
22
|
+
"test:visual:report": "node test/runTest/genReport.js",
|
|
23
|
+
"test": "node build/build.js --prepublish && jest --config test/ut/jest.config.js",
|
|
23
24
|
"mktest": "node test/build/mktest.js",
|
|
24
25
|
"mktest:help": "node test/build/mktest.js -h",
|
|
25
26
|
"lint": "./node_modules/.bin/eslint src extension-src",
|
|
26
27
|
"lint:dist": "echo 'It might take a while. Please wait ...' && ./node_modules/.bin/jshint --config .jshintrc-dist dist/echarts.js"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
|
-
"zrender": "4.1
|
|
30
|
+
"zrender": "4.3.1"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
33
|
"@babel/core": "7.3.4",
|
|
@@ -35,13 +36,19 @@
|
|
|
35
36
|
"@babel/template": "7.0.0-beta.31",
|
|
36
37
|
"@babel/types": "7.0.0-beta.31",
|
|
37
38
|
"assert": "1.4.1",
|
|
39
|
+
"canvas": "^2.6.0",
|
|
38
40
|
"commander": "2.11.0",
|
|
39
41
|
"coordtransform": "2.0.2",
|
|
40
42
|
"escodegen": "1.8.0",
|
|
43
|
+
"eslint": "6.3.0",
|
|
41
44
|
"esprima": "2.7.2",
|
|
42
45
|
"estraverse": "4.1.1",
|
|
43
46
|
"fs-extra": "0.26.7",
|
|
44
47
|
"glob": "7.0.0",
|
|
48
|
+
"jest": "^24.9.0",
|
|
49
|
+
"jest-canvas-mock": "^2.2.0",
|
|
50
|
+
"jsdom": "^15.2.1",
|
|
51
|
+
"jshint": "2.10.2",
|
|
45
52
|
"open": "6.4.0",
|
|
46
53
|
"pixelmatch": "5.0.2",
|
|
47
54
|
"pngjs": "3.4.0",
|
|
@@ -53,8 +60,6 @@
|
|
|
53
60
|
"semver": "6.3.0",
|
|
54
61
|
"serve-handler": "6.1.1",
|
|
55
62
|
"slugify": "1.3.4",
|
|
56
|
-
"socket.io": "2.2.0"
|
|
57
|
-
"jshint": "2.10.2",
|
|
58
|
-
"eslint": "6.3.0"
|
|
63
|
+
"socket.io": "2.2.0"
|
|
59
64
|
}
|
|
60
65
|
}
|
|
@@ -57,6 +57,20 @@ export default BaseBarSeries.extend({
|
|
|
57
57
|
|
|
58
58
|
// If use caps on two sides of bars
|
|
59
59
|
// Only available on tangential polar bar
|
|
60
|
-
roundCap: false
|
|
60
|
+
roundCap: false,
|
|
61
|
+
|
|
62
|
+
showBackground: false,
|
|
63
|
+
backgroundStyle: {
|
|
64
|
+
color: 'rgba(180, 180, 180, 0.2)',
|
|
65
|
+
borderColor: null,
|
|
66
|
+
borderWidth: 0,
|
|
67
|
+
borderType: 'solid',
|
|
68
|
+
borderRadius: 0,
|
|
69
|
+
shadowBlur: 0,
|
|
70
|
+
shadowColor: null,
|
|
71
|
+
shadowOffsetX: 0,
|
|
72
|
+
shadowOffsetY: 0,
|
|
73
|
+
opacity: 1
|
|
74
|
+
}
|
|
61
75
|
}
|
|
62
76
|
});
|
package/src/chart/bar/BarView.js
CHANGED
|
@@ -25,6 +25,7 @@ import {setLabel} from './helper';
|
|
|
25
25
|
import Model from '../../model/Model';
|
|
26
26
|
import barItemStyle from './barItemStyle';
|
|
27
27
|
import Path from 'zrender/src/graphic/Path';
|
|
28
|
+
import Group from 'zrender/src/container/Group';
|
|
28
29
|
import {throttle} from '../../util/throttle';
|
|
29
30
|
import {createClipPath} from '../helper/createClipPathFromCoordSys';
|
|
30
31
|
import Sausage from '../../util/shape/sausage';
|
|
@@ -127,15 +128,34 @@ export default echarts.extendChartView({
|
|
|
127
128
|
|
|
128
129
|
var roundCap = seriesModel.get('roundCap', true);
|
|
129
130
|
|
|
131
|
+
var drawBackground = seriesModel.get('showBackground', true);
|
|
132
|
+
var backgroundModel = seriesModel.getModel('backgroundStyle');
|
|
133
|
+
var barBorderRadius = backgroundModel.get('barBorderRadius') || 0;
|
|
134
|
+
|
|
135
|
+
var bgEls = [];
|
|
136
|
+
var oldBgEls = this._backgroundEls || [];
|
|
137
|
+
|
|
130
138
|
data.diff(oldData)
|
|
131
139
|
.add(function (dataIndex) {
|
|
140
|
+
var itemModel = data.getItemModel(dataIndex);
|
|
141
|
+
var layout = getLayout[coord.type](data, dataIndex, itemModel);
|
|
142
|
+
|
|
143
|
+
if (drawBackground) {
|
|
144
|
+
var bgLayout = getLayout[coord.type](data, dataIndex);
|
|
145
|
+
var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);
|
|
146
|
+
bgEl.useStyle(backgroundModel.getBarItemStyle());
|
|
147
|
+
// Only cartesian2d support borderRadius.
|
|
148
|
+
if (coord.type === 'cartesian2d') {
|
|
149
|
+
bgEl.setShape('r', barBorderRadius);
|
|
150
|
+
}
|
|
151
|
+
bgEls[dataIndex] = bgEl;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// If dataZoom in filteMode: 'empty', the baseValue can be set as NaN in "axisProxy".
|
|
132
155
|
if (!data.hasValue(dataIndex)) {
|
|
133
156
|
return;
|
|
134
157
|
}
|
|
135
158
|
|
|
136
|
-
var itemModel = data.getItemModel(dataIndex);
|
|
137
|
-
var layout = getLayout[coord.type](data, dataIndex, itemModel);
|
|
138
|
-
|
|
139
159
|
if (needsClip) {
|
|
140
160
|
// Clip will modify the layout params.
|
|
141
161
|
// And return a boolean to determine if the shape are fully clipped.
|
|
@@ -158,16 +178,29 @@ export default echarts.extendChartView({
|
|
|
158
178
|
);
|
|
159
179
|
})
|
|
160
180
|
.update(function (newIndex, oldIndex) {
|
|
161
|
-
var
|
|
181
|
+
var itemModel = data.getItemModel(newIndex);
|
|
182
|
+
var layout = getLayout[coord.type](data, newIndex, itemModel);
|
|
162
183
|
|
|
184
|
+
if (drawBackground) {
|
|
185
|
+
var bgEl = oldBgEls[oldIndex];
|
|
186
|
+
bgEl.useStyle(backgroundModel.getBarItemStyle());
|
|
187
|
+
// Only cartesian2d support borderRadius.
|
|
188
|
+
if (coord.type === 'cartesian2d') {
|
|
189
|
+
bgEl.setShape('r', barBorderRadius);
|
|
190
|
+
}
|
|
191
|
+
bgEls[newIndex] = bgEl;
|
|
192
|
+
|
|
193
|
+
var bgLayout = getLayout[coord.type](data, newIndex);
|
|
194
|
+
var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);
|
|
195
|
+
graphic.updateProps(bgEl, { shape: shape }, animationModel, newIndex);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
var el = oldData.getItemGraphicEl(oldIndex);
|
|
163
199
|
if (!data.hasValue(newIndex)) {
|
|
164
200
|
group.remove(el);
|
|
165
201
|
return;
|
|
166
202
|
}
|
|
167
203
|
|
|
168
|
-
var itemModel = data.getItemModel(newIndex);
|
|
169
|
-
var layout = getLayout[coord.type](data, newIndex, itemModel);
|
|
170
|
-
|
|
171
204
|
if (needsClip) {
|
|
172
205
|
var isClipped = clip[coord.type](coordSysClipArea, layout);
|
|
173
206
|
if (isClipped) {
|
|
@@ -205,6 +238,15 @@ export default echarts.extendChartView({
|
|
|
205
238
|
})
|
|
206
239
|
.execute();
|
|
207
240
|
|
|
241
|
+
var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());
|
|
242
|
+
bgGroup.removeAll();
|
|
243
|
+
|
|
244
|
+
for (var i = 0; i < bgEls.length; ++i) {
|
|
245
|
+
bgGroup.add(bgEls[i]);
|
|
246
|
+
}
|
|
247
|
+
group.add(bgGroup);
|
|
248
|
+
this._backgroundEls = bgEls;
|
|
249
|
+
|
|
208
250
|
this._data = data;
|
|
209
251
|
},
|
|
210
252
|
|
|
@@ -225,6 +267,7 @@ export default echarts.extendChartView({
|
|
|
225
267
|
},
|
|
226
268
|
|
|
227
269
|
_incrementalRenderLarge: function (params, seriesModel) {
|
|
270
|
+
this._removeBackground();
|
|
228
271
|
createLarge(seriesModel, this.group, true);
|
|
229
272
|
},
|
|
230
273
|
|
|
@@ -238,6 +281,9 @@ export default echarts.extendChartView({
|
|
|
238
281
|
var group = this.group;
|
|
239
282
|
var data = this._data;
|
|
240
283
|
if (ecModel && ecModel.get('animation') && data && !this._isLargeDraw) {
|
|
284
|
+
this._removeBackground();
|
|
285
|
+
this._backgroundEls = [];
|
|
286
|
+
|
|
241
287
|
data.eachItemGraphicEl(function (el) {
|
|
242
288
|
if (el.type === 'sector') {
|
|
243
289
|
removeSector(el.dataIndex, ecModel, el);
|
|
@@ -251,6 +297,11 @@ export default echarts.extendChartView({
|
|
|
251
297
|
group.removeAll();
|
|
252
298
|
}
|
|
253
299
|
this._data = null;
|
|
300
|
+
},
|
|
301
|
+
|
|
302
|
+
_removeBackground: function () {
|
|
303
|
+
this.group.remove(this._backgroundGroup);
|
|
304
|
+
this._backgroundGroup = null;
|
|
254
305
|
}
|
|
255
306
|
|
|
256
307
|
});
|
|
@@ -308,7 +359,12 @@ var elementCreator = {
|
|
|
308
359
|
dataIndex, layout, isHorizontal,
|
|
309
360
|
animationModel, isUpdate
|
|
310
361
|
) {
|
|
311
|
-
var rect = new graphic.Rect({
|
|
362
|
+
var rect = new graphic.Rect({
|
|
363
|
+
shape: zrUtil.extend({}, layout),
|
|
364
|
+
z2: 1
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
rect.name = 'item';
|
|
312
368
|
|
|
313
369
|
// Animation
|
|
314
370
|
if (animationModel) {
|
|
@@ -338,9 +394,12 @@ var elementCreator = {
|
|
|
338
394
|
var ShapeClass = (!isRadial && roundCap) ? Sausage : graphic.Sector;
|
|
339
395
|
|
|
340
396
|
var sector = new ShapeClass({
|
|
341
|
-
shape: zrUtil.defaults({clockwise: clockwise}, layout)
|
|
397
|
+
shape: zrUtil.defaults({clockwise: clockwise}, layout),
|
|
398
|
+
z2: 1
|
|
342
399
|
});
|
|
343
400
|
|
|
401
|
+
sector.name = 'item';
|
|
402
|
+
|
|
344
403
|
// Animation
|
|
345
404
|
if (animationModel) {
|
|
346
405
|
var sectorShape = sector.shape;
|
|
@@ -382,9 +441,11 @@ function removeSector(dataIndex, animationModel, el) {
|
|
|
382
441
|
}
|
|
383
442
|
|
|
384
443
|
var getLayout = {
|
|
444
|
+
// itemModel is only used to get borderWidth, which is not needed
|
|
445
|
+
// when calculating bar background layout.
|
|
385
446
|
cartesian2d: function (data, dataIndex, itemModel) {
|
|
386
447
|
var layout = data.getItemLayout(dataIndex);
|
|
387
|
-
var fixedLineWidth = getLineWidth(itemModel, layout);
|
|
448
|
+
var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;
|
|
388
449
|
|
|
389
450
|
// fix layout with lineWidth
|
|
390
451
|
var signX = layout.width > 0 ? 1 : -1;
|
|
@@ -410,11 +471,18 @@ var getLayout = {
|
|
|
410
471
|
}
|
|
411
472
|
};
|
|
412
473
|
|
|
474
|
+
function isZeroOnPolar(layout) {
|
|
475
|
+
return layout.startAngle != null
|
|
476
|
+
&& layout.endAngle != null
|
|
477
|
+
&& layout.startAngle === layout.endAngle;
|
|
478
|
+
}
|
|
479
|
+
|
|
413
480
|
function updateStyle(
|
|
414
481
|
el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar
|
|
415
482
|
) {
|
|
416
483
|
var color = data.getItemVisual(dataIndex, 'color');
|
|
417
484
|
var opacity = data.getItemVisual(dataIndex, 'opacity');
|
|
485
|
+
var stroke = data.getVisual('borderColor');
|
|
418
486
|
var itemStyleModel = itemModel.getModel('itemStyle');
|
|
419
487
|
var hoverStyle = itemModel.getModel('emphasis.itemStyle').getBarItemStyle();
|
|
420
488
|
|
|
@@ -424,7 +492,8 @@ function updateStyle(
|
|
|
424
492
|
|
|
425
493
|
el.useStyle(zrUtil.defaults(
|
|
426
494
|
{
|
|
427
|
-
|
|
495
|
+
stroke: isZeroOnPolar(layout) ? 'none' : stroke,
|
|
496
|
+
fill: isZeroOnPolar(layout) ? 'none' : color,
|
|
428
497
|
opacity: opacity
|
|
429
498
|
},
|
|
430
499
|
itemStyleModel.getBarItemStyle()
|
|
@@ -443,14 +512,19 @@ function updateStyle(
|
|
|
443
512
|
seriesModel, dataIndex, labelPositionOutside
|
|
444
513
|
);
|
|
445
514
|
}
|
|
446
|
-
|
|
515
|
+
if (isZeroOnPolar(layout)) {
|
|
516
|
+
hoverStyle.fill = hoverStyle.stroke = 'none';
|
|
517
|
+
}
|
|
447
518
|
graphic.setHoverStyle(el, hoverStyle);
|
|
448
519
|
}
|
|
449
520
|
|
|
450
521
|
// In case width or height are too small.
|
|
451
522
|
function getLineWidth(itemModel, rawLayout) {
|
|
452
523
|
var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;
|
|
453
|
-
|
|
524
|
+
// width or height may be NaN for empty data
|
|
525
|
+
var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);
|
|
526
|
+
var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);
|
|
527
|
+
return Math.min(lineWidth, width, height);
|
|
454
528
|
}
|
|
455
529
|
|
|
456
530
|
|
|
@@ -482,13 +556,38 @@ function createLarge(seriesModel, group, incremental) {
|
|
|
482
556
|
var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;
|
|
483
557
|
startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');
|
|
484
558
|
|
|
559
|
+
var largeDataIndices = data.getLayout('largeDataIndices');
|
|
560
|
+
var barWidth = data.getLayout('barWidth');
|
|
561
|
+
|
|
562
|
+
var backgroundModel = seriesModel.getModel('backgroundStyle');
|
|
563
|
+
var drawBackground = seriesModel.get('showBackground', true);
|
|
564
|
+
|
|
565
|
+
if (drawBackground) {
|
|
566
|
+
var points = data.getLayout('largeBackgroundPoints');
|
|
567
|
+
var backgroundStartPoint = [];
|
|
568
|
+
backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');
|
|
569
|
+
|
|
570
|
+
var bgEl = new LargePath({
|
|
571
|
+
shape: {points: points},
|
|
572
|
+
incremental: !!incremental,
|
|
573
|
+
__startPoint: backgroundStartPoint,
|
|
574
|
+
__baseDimIdx: baseDimIdx,
|
|
575
|
+
__largeDataIndices: largeDataIndices,
|
|
576
|
+
__barWidth: barWidth,
|
|
577
|
+
silent: true,
|
|
578
|
+
z2: 0
|
|
579
|
+
});
|
|
580
|
+
setLargeBackgroundStyle(bgEl, backgroundModel, data);
|
|
581
|
+
group.add(bgEl);
|
|
582
|
+
}
|
|
583
|
+
|
|
485
584
|
var el = new LargePath({
|
|
486
585
|
shape: {points: data.getLayout('largePoints')},
|
|
487
586
|
incremental: !!incremental,
|
|
488
587
|
__startPoint: startPoint,
|
|
489
588
|
__baseDimIdx: baseDimIdx,
|
|
490
|
-
__largeDataIndices:
|
|
491
|
-
__barWidth:
|
|
589
|
+
__largeDataIndices: largeDataIndices,
|
|
590
|
+
__barWidth: barWidth
|
|
492
591
|
});
|
|
493
592
|
group.add(el);
|
|
494
593
|
setLargeStyle(el, seriesModel, data);
|
|
@@ -553,3 +652,51 @@ function setLargeStyle(el, seriesModel, data) {
|
|
|
553
652
|
el.style.lineWidth = data.getLayout('barWidth');
|
|
554
653
|
}
|
|
555
654
|
|
|
655
|
+
function setLargeBackgroundStyle(el, backgroundModel, data) {
|
|
656
|
+
var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');
|
|
657
|
+
var itemStyle = backgroundModel.getItemStyle(['color', 'borderColor']);
|
|
658
|
+
|
|
659
|
+
el.useStyle(itemStyle);
|
|
660
|
+
el.style.fill = null;
|
|
661
|
+
el.style.stroke = borderColor;
|
|
662
|
+
el.style.lineWidth = data.getLayout('barWidth');
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
function createBackgroundShape(isHorizontalOrRadial, layout, coord) {
|
|
666
|
+
var coordLayout;
|
|
667
|
+
var isPolar = coord.type === 'polar';
|
|
668
|
+
if (isPolar) {
|
|
669
|
+
coordLayout = coord.getArea();
|
|
670
|
+
}
|
|
671
|
+
else {
|
|
672
|
+
coordLayout = coord.grid.getRect();
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
if (isPolar) {
|
|
676
|
+
return {
|
|
677
|
+
cx: coordLayout.cx,
|
|
678
|
+
cy: coordLayout.cy,
|
|
679
|
+
r0: isHorizontalOrRadial ? coordLayout.r0 : layout.r0,
|
|
680
|
+
r: isHorizontalOrRadial ? coordLayout.r : layout.r,
|
|
681
|
+
startAngle: isHorizontalOrRadial ? layout.startAngle : 0,
|
|
682
|
+
endAngle: isHorizontalOrRadial ? layout.endAngle : Math.PI * 2
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
return {
|
|
687
|
+
x: isHorizontalOrRadial ? layout.x : coordLayout.x,
|
|
688
|
+
y: isHorizontalOrRadial ? coordLayout.y : layout.y,
|
|
689
|
+
width: isHorizontalOrRadial ? layout.width : coordLayout.width,
|
|
690
|
+
height: isHorizontalOrRadial ? coordLayout.height : layout.height
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
function createBackgroundEl(coord, isHorizontalOrRadial, layout) {
|
|
696
|
+
var ElementClz = coord.type === 'polar' ? graphic.Sector : graphic.Rect;
|
|
697
|
+
return new ElementClz({
|
|
698
|
+
shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),
|
|
699
|
+
silent: true,
|
|
700
|
+
z2: 0
|
|
701
|
+
});
|
|
702
|
+
}
|
|
@@ -25,7 +25,7 @@ export default SeriesModel.extend({
|
|
|
25
25
|
type: 'series.__base_bar__',
|
|
26
26
|
|
|
27
27
|
getInitialData: function (option, ecModel) {
|
|
28
|
-
return createListFromArray(this.getSource(), this);
|
|
28
|
+
return createListFromArray(this.getSource(), this, {useEncodeDefaulter: true});
|
|
29
29
|
},
|
|
30
30
|
|
|
31
31
|
getMarkerPosition: function (value) {
|
|
@@ -36,7 +36,6 @@ export default {
|
|
|
36
36
|
reset: function (seriesModel, ecModel) {
|
|
37
37
|
|
|
38
38
|
var data = seriesModel.getData();
|
|
39
|
-
var isLargeRender = seriesModel.pipelineContext.large;
|
|
40
39
|
|
|
41
40
|
data.setVisual({
|
|
42
41
|
legendSymbol: 'roundRect',
|
|
@@ -51,6 +50,7 @@ export default {
|
|
|
51
50
|
return;
|
|
52
51
|
}
|
|
53
52
|
|
|
53
|
+
var isLargeRender = seriesModel.pipelineContext.large;
|
|
54
54
|
return !isLargeRender && {progress: progress};
|
|
55
55
|
|
|
56
56
|
|
|
@@ -27,7 +27,7 @@ export default SeriesModel.extend({
|
|
|
27
27
|
dependencies: ['grid', 'polar'],
|
|
28
28
|
|
|
29
29
|
getInitialData: function (option, ecModel) {
|
|
30
|
-
return createListFromArray(this.getSource(), this);
|
|
30
|
+
return createListFromArray(this.getSource(), this, {useEncodeDefaulter: true});
|
|
31
31
|
},
|
|
32
32
|
|
|
33
33
|
brushSelector: 'point',
|
|
@@ -18,8 +18,11 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import * as echarts from '../../echarts';
|
|
21
|
+
import * as zrUtil from 'zrender/src/core/util';
|
|
21
22
|
import createListSimply from '../helper/createListSimply';
|
|
22
23
|
import {defaultEmphasis} from '../../util/model';
|
|
24
|
+
import {makeSeriesEncodeForNameBased} from '../../data/helper/sourceHelper';
|
|
25
|
+
import LegendVisualProvider from '../../visual/LegendVisualProvider';
|
|
23
26
|
|
|
24
27
|
var FunnelSeries = echarts.extendSeriesModel({
|
|
25
28
|
|
|
@@ -30,15 +33,18 @@ var FunnelSeries = echarts.extendSeriesModel({
|
|
|
30
33
|
|
|
31
34
|
// Enable legend selection for each data item
|
|
32
35
|
// Use a function instead of direct access because data reference may changed
|
|
33
|
-
this.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
this.legendVisualProvider = new LegendVisualProvider(
|
|
37
|
+
zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)
|
|
38
|
+
);
|
|
36
39
|
// Extend labelLine emphasis
|
|
37
40
|
this._defaultLabelLine(option);
|
|
38
41
|
},
|
|
39
42
|
|
|
40
43
|
getInitialData: function (option, ecModel) {
|
|
41
|
-
return createListSimply(this,
|
|
44
|
+
return createListSimply(this, {
|
|
45
|
+
coordDimensions: ['value'],
|
|
46
|
+
encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)
|
|
47
|
+
});
|
|
42
48
|
},
|
|
43
49
|
|
|
44
50
|
_defaultLabelLine: function (option) {
|
|
@@ -24,6 +24,7 @@ import {defaultEmphasis} from '../../util/model';
|
|
|
24
24
|
import Model from '../../model/Model';
|
|
25
25
|
import {encodeHTML} from '../../util/format';
|
|
26
26
|
import createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';
|
|
27
|
+
import LegendVisualProvider from '../../visual/LegendVisualProvider';
|
|
27
28
|
|
|
28
29
|
var GraphSeries = echarts.extendSeriesModel({
|
|
29
30
|
|
|
@@ -32,10 +33,14 @@ var GraphSeries = echarts.extendSeriesModel({
|
|
|
32
33
|
init: function (option) {
|
|
33
34
|
GraphSeries.superApply(this, 'init', arguments);
|
|
34
35
|
|
|
36
|
+
var self = this;
|
|
37
|
+
function getCategoriesData() {
|
|
38
|
+
return self._categoriesData;
|
|
39
|
+
}
|
|
35
40
|
// Provide data for legend select
|
|
36
|
-
this.
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
this.legendVisualProvider = new LegendVisualProvider(
|
|
42
|
+
getCategoriesData, getCategoriesData
|
|
43
|
+
);
|
|
39
44
|
|
|
40
45
|
this.fillDataTextStyle(option.edges || option.links);
|
|
41
46
|
|
|
@@ -237,7 +242,8 @@ var GraphSeries = echarts.extendSeriesModel({
|
|
|
237
242
|
edgeSymbol: ['none', 'none'],
|
|
238
243
|
edgeSymbolSize: 10,
|
|
239
244
|
edgeLabel: {
|
|
240
|
-
position: 'middle'
|
|
245
|
+
position: 'middle',
|
|
246
|
+
distance: 5
|
|
241
247
|
},
|
|
242
248
|
|
|
243
249
|
draggable: false,
|
|
@@ -94,6 +94,7 @@ export default echarts.extendChartView({
|
|
|
94
94
|
},
|
|
95
95
|
|
|
96
96
|
render: function (seriesModel, ecModel, api) {
|
|
97
|
+
var graphView = this;
|
|
97
98
|
var coordSys = seriesModel.coordinateSystem;
|
|
98
99
|
|
|
99
100
|
this._model = seriesModel;
|
|
@@ -163,6 +164,7 @@ export default echarts.extendChartView({
|
|
|
163
164
|
|
|
164
165
|
if (itemModel.get('focusNodeAdjacency')) {
|
|
165
166
|
el.on('mouseover', el[FOCUS_ADJACENCY] = function () {
|
|
167
|
+
graphView._clearTimer();
|
|
166
168
|
api.dispatchAction({
|
|
167
169
|
type: 'focusNodeAdjacency',
|
|
168
170
|
seriesId: seriesModel.id,
|
|
@@ -170,10 +172,7 @@ export default echarts.extendChartView({
|
|
|
170
172
|
});
|
|
171
173
|
});
|
|
172
174
|
el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {
|
|
173
|
-
|
|
174
|
-
type: 'unfocusNodeAdjacency',
|
|
175
|
-
seriesId: seriesModel.id
|
|
176
|
-
});
|
|
175
|
+
graphView._dispatchUnfocus(api);
|
|
177
176
|
});
|
|
178
177
|
}
|
|
179
178
|
|
|
@@ -187,6 +186,7 @@ export default echarts.extendChartView({
|
|
|
187
186
|
|
|
188
187
|
if (edge.getModel().get('focusNodeAdjacency')) {
|
|
189
188
|
el.on('mouseover', el[FOCUS_ADJACENCY] = function () {
|
|
189
|
+
graphView._clearTimer();
|
|
190
190
|
api.dispatchAction({
|
|
191
191
|
type: 'focusNodeAdjacency',
|
|
192
192
|
seriesId: seriesModel.id,
|
|
@@ -194,10 +194,7 @@ export default echarts.extendChartView({
|
|
|
194
194
|
});
|
|
195
195
|
});
|
|
196
196
|
el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {
|
|
197
|
-
|
|
198
|
-
type: 'unfocusNodeAdjacency',
|
|
199
|
-
seriesId: seriesModel.id
|
|
200
|
-
});
|
|
197
|
+
graphView._dispatchUnfocus(api);
|
|
201
198
|
});
|
|
202
199
|
}
|
|
203
200
|
});
|
|
@@ -249,10 +246,31 @@ export default echarts.extendChartView({
|
|
|
249
246
|
dispose: function () {
|
|
250
247
|
this._controller && this._controller.dispose();
|
|
251
248
|
this._controllerHost = {};
|
|
249
|
+
this._clearTimer();
|
|
250
|
+
},
|
|
251
|
+
|
|
252
|
+
_dispatchUnfocus: function (api, opt) {
|
|
253
|
+
var self = this;
|
|
254
|
+
this._clearTimer();
|
|
255
|
+
this._unfocusDelayTimer = setTimeout(function () {
|
|
256
|
+
self._unfocusDelayTimer = null;
|
|
257
|
+
api.dispatchAction({
|
|
258
|
+
type: 'unfocusNodeAdjacency',
|
|
259
|
+
seriesId: self._model.id
|
|
260
|
+
});
|
|
261
|
+
}, 500);
|
|
262
|
+
|
|
263
|
+
},
|
|
264
|
+
|
|
265
|
+
_clearTimer: function () {
|
|
266
|
+
if (this._unfocusDelayTimer) {
|
|
267
|
+
clearTimeout(this._unfocusDelayTimer);
|
|
268
|
+
this._unfocusDelayTimer = null;
|
|
269
|
+
}
|
|
252
270
|
},
|
|
253
271
|
|
|
254
272
|
focusNodeAdjacency: function (seriesModel, ecModel, api, payload) {
|
|
255
|
-
var data =
|
|
273
|
+
var data = seriesModel.getData();
|
|
256
274
|
var graph = data.graph;
|
|
257
275
|
var dataIndex = payload.dataIndex;
|
|
258
276
|
var edgeDataIndex = payload.edgeDataIndex;
|
|
@@ -290,7 +308,7 @@ export default echarts.extendChartView({
|
|
|
290
308
|
},
|
|
291
309
|
|
|
292
310
|
unfocusNodeAdjacency: function (seriesModel, ecModel, api, payload) {
|
|
293
|
-
var graph =
|
|
311
|
+
var graph = seriesModel.getData().graph;
|
|
294
312
|
|
|
295
313
|
graph.eachNode(function (node) {
|
|
296
314
|
fadeOutItem(node, nodeOpacityPath);
|
|
@@ -185,10 +185,10 @@ export default echarts.extendChartView({
|
|
|
185
185
|
|
|
186
186
|
rect = new graphic.Rect({
|
|
187
187
|
shape: {
|
|
188
|
-
x: point[0] - width / 2,
|
|
189
|
-
y: point[1] - height / 2,
|
|
190
|
-
width: width,
|
|
191
|
-
height: height
|
|
188
|
+
x: Math.floor(Math.round(point[0]) - width / 2),
|
|
189
|
+
y: Math.floor(Math.round(point[1]) - height / 2),
|
|
190
|
+
width: Math.ceil(width),
|
|
191
|
+
height: Math.ceil(height)
|
|
192
192
|
},
|
|
193
193
|
style: {
|
|
194
194
|
fill: data.getItemVisual(idx, 'color'),
|