duwendi 1 рік тому
батько
коміт
a9b068cf36
1 змінених файлів з 90 додано та 103 видалено
  1. 90 103
      src/pages/index/components/parking_area.vue

+ 90 - 103
src/pages/index/components/parking_area.vue

@@ -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
 }