|
@@ -80,7 +80,7 @@ export default {
|
80
|
80
|
amap: {
|
81
|
81
|
viewMode: '3D',
|
82
|
82
|
center: [114.02, 33.58],
|
83
|
|
- zoom: 10,
|
|
83
|
+ zoom: 12,
|
84
|
84
|
resizeEnable: true,
|
85
|
85
|
//使用自定义主题
|
86
|
86
|
mapStyle: 'amap://styles/grey',
|
|
@@ -200,114 +200,101 @@ export default {
|
200
|
200
|
},
|
201
|
201
|
getMapData() {
|
202
|
202
|
api.queryParkingArea_Tcrdskfb({...this.formInline}).then(res => {
|
203
|
|
- console.log(res, '===9999====')
|
204
|
|
- });
|
|
203
|
+ let resData = res.data || []
|
|
204
|
+ let data = resData.map(item => ({name: item[2], value: item[3]}))
|
|
205
|
+ let geoCoordMap = {}
|
|
206
|
+ resData.map(item => {geoCoordMap[item[2]] = [item[0],item[1]]})
|
205
|
207
|
let myChart = echarts.init(document.getElementById("map"));
|
206
|
|
- var data = [
|
207
|
|
- { name: '车场A', value: 200 },
|
208
|
|
- { name: '车场B', value: 100 },
|
209
|
|
- { name: '车场C', value: 200 },
|
210
|
|
- { name: '车场D', value: 100 },
|
211
|
|
- { name: '车场E', value: 200 },
|
212
|
|
- { name: '车场F', value: 300 },
|
213
|
|
- ];
|
214
|
|
- var geoCoordMap = {
|
215
|
|
- '车场A': [113.97421800, 33.57179100],
|
216
|
|
- '车场B': [114.03585100,33.56888800],
|
217
|
|
- '车场C': [114.03213800, 33.56496300],
|
218
|
|
- '车场D': [114.01477400, 33.59063500],
|
219
|
|
- '车场E': [114.03300900, 33.57035200],
|
220
|
|
- '车场F': [114.06586500, 33.56006500],
|
221
|
|
- };
|
222
|
|
- var convertData = function (data) {
|
223
|
|
- var res = [];
|
224
|
|
- for (var i = 0; i < data.length; i++) {
|
225
|
|
- var geoCoord = geoCoordMap[data[i].name];
|
226
|
|
- if (geoCoord) {
|
227
|
|
- res.push({
|
228
|
|
- name: data[i].name,
|
229
|
|
- value: geoCoord.concat(data[i].value)
|
230
|
|
- });
|
|
208
|
+ var convertData = function (data) {
|
|
209
|
+ var res = [];
|
|
210
|
+ for (var i = 0; i < data.length; i++) {
|
|
211
|
+ var geoCoord = geoCoordMap[data[i].name];
|
|
212
|
+ if (geoCoord) {
|
|
213
|
+ res.push({
|
|
214
|
+ name: data[i].name,
|
|
215
|
+ value: geoCoord.concat(data[i].value)
|
|
216
|
+ });
|
|
217
|
+ }
|
231
|
218
|
}
|
232
|
|
- }
|
233
|
|
- return res;
|
234
|
|
- };
|
235
|
|
- let option = {
|
236
|
|
- amap: {
|
237
|
|
- viewMode: '3D',
|
238
|
|
- center: [114.02, 33.58],
|
239
|
|
- zoom: 10,
|
240
|
|
- resizeEnable: true,
|
241
|
|
- //使用自定义主题
|
242
|
|
- mapStyle: 'amap://styles/grey',
|
243
|
|
- renderOnMoving: true,
|
244
|
|
- largeMode: false
|
245
|
|
- },
|
246
|
|
- tooltip: {
|
247
|
|
- trigger: 'item'
|
248
|
|
- },
|
249
|
|
- animation: true,
|
250
|
|
- series: [
|
251
|
|
- {
|
252
|
|
- name: 'PM2.5',
|
253
|
|
- type: 'scatter',
|
254
|
|
- coordinateSystem: 'amap',
|
255
|
|
- data: convertData(data),
|
256
|
|
- symbolSize: function (val) {
|
257
|
|
- return val[2] / 10;
|
258
|
|
- },
|
259
|
|
- encode: {
|
260
|
|
- value: 2
|
261
|
|
- },
|
262
|
|
- label: {
|
263
|
|
- formatter: '{b}',
|
264
|
|
- position: 'right',
|
265
|
|
- show: false
|
266
|
|
- },
|
267
|
|
- itemStyle: {
|
268
|
|
- normal: {
|
269
|
|
- color: '#00c1de'
|
|
219
|
+ return res;
|
|
220
|
+ };
|
|
221
|
+ let option = {
|
|
222
|
+ amap: {
|
|
223
|
+ viewMode: '3D',
|
|
224
|
+ center: [114.02, 33.58],
|
|
225
|
+ zoom: 10,
|
|
226
|
+ resizeEnable: true,
|
|
227
|
+ //使用自定义主题
|
|
228
|
+ mapStyle: 'amap://styles/grey',
|
|
229
|
+ renderOnMoving: true,
|
|
230
|
+ largeMode: false
|
|
231
|
+ },
|
|
232
|
+ tooltip: {
|
|
233
|
+ trigger: 'item'
|
|
234
|
+ },
|
|
235
|
+ animation: true,
|
|
236
|
+ series: [
|
|
237
|
+ {
|
|
238
|
+ name: '停车热度',
|
|
239
|
+ type: 'scatter',
|
|
240
|
+ coordinateSystem: 'amap',
|
|
241
|
+ data: convertData(data),
|
|
242
|
+ symbolSize: function (val) {
|
|
243
|
+ return val[2] / 100;
|
|
244
|
+ },
|
|
245
|
+ encode: {
|
|
246
|
+ value: 2
|
|
247
|
+ },
|
|
248
|
+ label: {
|
|
249
|
+ formatter: '{b}',
|
|
250
|
+ position: 'right',
|
|
251
|
+ show: false
|
|
252
|
+ },
|
|
253
|
+ itemStyle: {
|
|
254
|
+ normal: {
|
|
255
|
+ color: '#00c1de'
|
|
256
|
+ }
|
|
257
|
+ },
|
|
258
|
+ emphasis: {
|
|
259
|
+ label: {
|
|
260
|
+ show: true
|
|
261
|
+ }
|
270
|
262
|
}
|
271
|
263
|
},
|
272
|
|
- emphasis: {
|
|
264
|
+ {
|
|
265
|
+ name: 'Top 5',
|
|
266
|
+ type: 'effectScatter',
|
|
267
|
+ coordinateSystem: 'amap',
|
|
268
|
+ data: convertData(data.sort(function (a, b) {
|
|
269
|
+ return b.value - a.value;
|
|
270
|
+ }).slice(0, 5)),
|
|
271
|
+ symbolSize: function (val) {
|
|
272
|
+ return val[2] / 100;
|
|
273
|
+ },
|
|
274
|
+ encode: {
|
|
275
|
+ value: 2
|
|
276
|
+ },
|
|
277
|
+ showEffectOn: 'render',
|
|
278
|
+ rippleEffect: {
|
|
279
|
+ brushType: 'stroke'
|
|
280
|
+ },
|
|
281
|
+ hoverAnimation: true,
|
273
|
282
|
label: {
|
274
|
|
- show: true
|
275
|
|
- }
|
|
283
|
+ formatter: '{b}',
|
|
284
|
+ position: 'right',
|
|
285
|
+ show: false
|
|
286
|
+ },
|
|
287
|
+ itemStyle: {
|
|
288
|
+ color: '#f00',
|
|
289
|
+ shadowBlur: 10,
|
|
290
|
+ shadowColor: '#333'
|
|
291
|
+ },
|
|
292
|
+ zlevel: 1
|
276
|
293
|
}
|
277
|
|
- },
|
278
|
|
- {
|
279
|
|
- name: 'Top 5',
|
280
|
|
- type: 'effectScatter',
|
281
|
|
- coordinateSystem: 'amap',
|
282
|
|
- data: convertData(data.sort(function (a, b) {
|
283
|
|
- return b.value - a.value;
|
284
|
|
- }).slice(0, 5)),
|
285
|
|
- symbolSize: function (val) {
|
286
|
|
- return val[2] / 10;
|
287
|
|
- },
|
288
|
|
- encode: {
|
289
|
|
- value: 2
|
290
|
|
- },
|
291
|
|
- showEffectOn: 'render',
|
292
|
|
- rippleEffect: {
|
293
|
|
- brushType: 'stroke'
|
294
|
|
- },
|
295
|
|
- hoverAnimation: true,
|
296
|
|
- label: {
|
297
|
|
- formatter: '{b}',
|
298
|
|
- position: 'right',
|
299
|
|
- show: false
|
300
|
|
- },
|
301
|
|
- itemStyle: {
|
302
|
|
- color: '#f00',
|
303
|
|
- shadowBlur: 10,
|
304
|
|
- shadowColor: '#333'
|
305
|
|
- },
|
306
|
|
- zlevel: 1
|
307
|
|
- }
|
308
|
|
- ]
|
309
|
|
- };
|
310
|
|
- myChart.setOption(option);
|
|
294
|
+ ]
|
|
295
|
+ };
|
|
296
|
+ myChart.setOption(option);
|
|
297
|
+ });
|
311
|
298
|
}
|
312
|
299
|
}
|
313
|
300
|
}
|