Echarts 全国各省市区地图JS/geojson/svg/excel数据下载地址

时间:2024-02-16 13:09:29

下载地址:http://datav.aliyun.com/tools/atlas/#&lat=21.301500289031342&lng=115.44409418670693&zoom=6.5

 

 

 js 代码:

1. static文件夹存放地图json文件

 

 

 2. 接口get请求,引入本地资源

// 获取各个国家的静态地图文件
export function getCountryFile(code){
  return Http({
    url: \'/static/geoJSON/\'+ code +\'.json\',
    method: \'GET\'
  });
}

3.echarts 地图调用

  1 <template>
  2   <div class="china" :style="{height:height,width:width}"></div>
  3 </template>
  4 <script>
  5 // import echarts from \'echarts\'
  6 import { mapState } from \'vuex\'
  7 import { getCountryFile } from \'@/api/comm.js\' 
  8 // import worldJs from \'nodeModules/echarts/map/js/world.js\'
  9 // import USA from \'static/geoJSON/USA.json\'
 10 // import Juguang from \'static/geoJSON/Juguang.json\'
 11 
 12 import jportalCommon from \'@/jportal-common-update\'
 13 
 14 export default {
 15   data(){
 16     return {
 17       chart:null,
 18       countryName: \'Belize\' // 从登录信息获取国家名字 jportalCommon.userStorageService.getUser().xxx
 19     }
 20   },
 21   computed:mapState({
 22     // 箭头函数可使代码更简练state
 23     scale: state =>state.overView.scale
 24   }),
 25   mounted () {
 26     let that =this
 27     that.chart = this.$echarts.init(this.$el);
 28     // console.log(this.$el); 两者相等
 29     // console.log(document.querySelector(\'.china\'));
 30     that.initCountry()
 31 
 32     if (this.autoResize) {
 33        window.addEventListener(\'resize\', this.__resizeHanlder)
 34     }
 35       // 监听侧边栏的变化
 36       const sidebarElm = document.getElementsByClassName(\'content-menu\')[0]
 37       sidebarElm.addEventListener(\'transitionend\', this.__resizeHanlder)
 38   },
 39   methods: {
 40     __resizeHanlder(){
 41        this.chart.resize()
 42     },
 43     initCountry () {
 44       // console.log(this.countryName)
 45       getCountryFile(this.countryName).then(contry => {
 46         // console.log(this.countryName, contry)
 47         this.$echarts.registerMap(this.countryName, contry)
 48         this.initChart()
 49       }).catch(err => {
 50         return Promise.reject(err)
 51       })
 52     },
 53     genData(){
 54        var selected = {};
 55         selected[\'project online\'] =true
 56         selected[\'item exception\'] =true
 57         return selected
 58     },
 59     initChart(){
 60       
 61       this.chart.setOption({
 62             color:this.color,
 63             geo: {
 64                         map: this.countryName,
 65                         label: {
 66                             normal:{
 67                                 show: false,
 68                                 color:\'#cccccc\'
 69                             },
 70                             emphasis: {
 71                                 show: true,
 72                                 color:\'#cccccc\'
 73                             }
 74                         },
 75                         roam: true,
 76                         scaleLimit: {
 77                             min: 1.1,
 78                             max:3
 79                         },
 80                         aspectScale: 1,
 81                         top: 50,
 82                         itemStyle: {
 83                             normal: {
 84                             areaColor: \'RGBA(212, 223, 248, 1)\',
 85                                 borderColor: \'#fff\',
 86                                 borderWidth: 1
 87                             },
 88                             emphasis: {
 89                                 areaColor: \'#538db8\',
 90                                 borderColor: \'#06426f\'
 91                             }
 92                 }
 93                     },
 94             legend: {
 95               itemWidth:10,
 96               itemHeight:5,
 97               bottom: 5,
 98               left: \'0\',
 99               data:[\'project online\',\'item exception\']
100            },
101            tooltip: {
102                     trigger: \'item\',
103                     formatter: function (params) {
104                   //return params.name + params.value[2];
105                    return params.name;
106                     }
107                  },
108             series: [
109               {
110                   name: \'project online\', // series名称
111                           type: \'scatter\',
112                           coordinateSystem: \'geo\',                           
113                           symbol: \'circle\',
114                           symbolSize: 8,
115                           hoverAnimation: true,
116                           large:true,
117                           rippleEffect: {
118                                 period:4,
119                                 scale:2,
120                                 brushType: \'stroke\'
121                             },
122                             label: {
123                                 normal: {
124                                     show: false
125                                 },
126                                 emphasis: {
127                                     show: false
128                                 }
129                             },
130                             itemStyle: {
131                                 normal: {
132                                     color: \'#05bc42\'
133                                 },
134                                 emphasis: {
135                                     borderColor: \'#ffffff\',
136                                     borderWidth: 2,
137                                     borderType: \'solid\'
138                                 }
139                             }
140                         
141               },
142                {
143                             name: \'item exception\',
144                             type:\'scatter\',
145                             coordinateSystem: \'geo\',                           
146                             symbolSize: 8,
147                             hoverAnimation: true,
148                             large:true,
149                             rippleEffect: {
150                                 period:4,
151                                 scale:2,
152                                 brushType: \'stroke\'
153                             },
154                             label: {
155                                 normal: {
156                                     show: false
157                                 },
158                                 emphasis: {
159                                     show: false
160                                 }
161                             },
162                             itemStyle: {
163                                 normal: {
164                                     color: \'#dd9017\'
165                                 },
166                                 emphasis: {
167                                     borderColor: \'#ffffff\',
168                                     borderWidth: 2,
169                                     borderType: \'solid\'
170                                 }
171                             }               
172                         },
173             ]
174        })
175     },
176     drew(){
177       this.chart.setOption({
178         legend:{
179            selected:this.genData(),
180         },
181         series:[
182           {
183             data:this.mapData.onlineSubsystem
184           },
185            {
186             data:this.mapData.unusualSubsystem
187           }
188         ]
189       })
190     }
191   },
192   watch:{
193     mapData(v){
194       this.drew()
195     },
196     scale(){
197       this.__resizeHanlder()
198     },
199     countryName (v, ov) {
200       this.initCountry() 
201     }
202   },
203   props:{
204     mapData:{
205       type:Object,
206       default:()=>{
207           return {}
208       }
209     },
210     background:{
211       type:String,
212       default:\'#fff\'
213     },
214     height:{
215        type: String,
216        default:\'100%\'
217     },
218     color:{
219       type:Array,
220       default:()=>{
221           return [\'#6faa30\',\'#fe4e77\',\'#fe4e77\']
222       }
223     },
224     width:{
225        type: String,
226        default:\'100%\'
227     },
228     autoResize: {
229       type: Boolean,
230       default: true
231     },
232   },
233 }
234 </script>
235 <style lang="scss" scoped>
236 
237 </style>
View Code

 4. 地图展示

 

 

 

http://datav.aliyun.com/tools/atlas/#&lat=21.301500289031342&lng=115.44409418670693&zoom=6.5