zoukankan      html  css  js  c++  java
  • 在echart的map上把symbol替换成gif通过convertToPixel坐标转换成px定位到页面,没有做echart的缩放情况下

    1.dom

    <!-- 地图 -->
          <div class="map">
            <chart class="map-chart" ref="worldMap" auto-resize :options="mapOption" style=" 100%;height: 100%; margin:auto"></chart>
            <div class="map-position" @click="getProvienceNum(centerPsition.name)" :style="{top: centerPsition.top, left: centerPsition.left}">
              <span>{{centerPsition.name}}</span>
              <img src="/static/gif/center.gif" alt="">
              <div class="ripple" ></div>
            </div>
            <div class="map-position" v-for="(item, index) in allIconPosition" :key="index+'a'" :style="{top: item.top, left: item.left}" @click="getProvienceNum(item.name)" >
              <span>{{item.name}}</span>
              <img src="/static/gif/position.gif" alt="">
              <div class="ripple wave-ellipse" ></div>
            </div>
          </div>
    

    2.data: mapOption根据echart官网即可得到

          centerPsition: {}, // 中心位置
          allIconPosition: [], // 所有的位置
         geoCoordMap: { // 每个地区的经纬度
            '四川': [104.04, 30.40],
            '北京': [116.4551, 40.2539],
            '广西': [108.19, 22.48],
            '湖南': [112.59, 28.12],
            '福建': [119.18, 26.05],
            '湖北': [114.17, 30.35],
            '山东': [117.00, 36.40],
            '上海': [121.4648, 31.2891],
            '江苏': [118.46, 32.03]
          },
          BJData: [ // 每个地区的连线
            [{name: '北京'}, {name: '山东', value: 140}],
            [{name: '四川'}, {name: '山东', value: 140}],
            [{name: '广西'}, {name: '山东', value: 140}],
            [{name: '湖南'}, {name: '山东', value: 140}],
            [{name: '福建'}, {name: '山东', value: 140}],
            [{name: '湖北'}, {name: '山东', value: 140}],
            [{name: '上海'}, {name: '山东', value: 140}]
            // [{name: '山东'}, {name: '山东', value: 140}]
          ]

    3.js

        // 每个图形的定位
        getPicPosition () {
          let BJData = this.BJData // 地区连线
          let geoCoordMap = this.geoCoordMap // 所有地区经纬度
          let myechart = this.$refs.worldMap
          let newArr = []
          if (myechart) {
            for (let item of BJData) {
              let result = myechart.convertToPixel('geo', geoCoordMap[item[0].name])
              let name = item[0].name
              let left = result[0] - 13 + 'px'
              let top = result[1] - 6 + 'px'
              newArr.push({
                name,
                left,
                top
              })
            }
            this.allIconPosition = newArr
            let result = myechart.convertToPixel('geo', geoCoordMap[BJData[0][1].name])
            this.centerPsition = {name: BJData[0][1].name, left: result[0] - 13 + 'px', top: result[1] - 6 + 'px'}
          }
        }
      },
    

     4.图

     世界地图包含中国地图的json代码太长了,没贴,准备弄个资源供下载。

  • 相关阅读:
    我倾向于使用发布版本进行调试,而不是使用调试版本
    常见WinDbg问题及解决方案
    在崩溃转储中查找所有可能的上下文记录
    向C/C++程序员介绍Windbg 脚本
    VS 使用技巧(1)
    Windows资源监视器软件的原理
    微架构、指令集架构与汇编语言的关系
    调试寄存器 原理与使用:DR0-DR7
    如何学习调试?
    WinDbg: 执行 SOS 扩展命令 !clrstack时报错 Access violation exception (0xC0000005)
  • 原文地址:https://www.cnblogs.com/wgl0126/p/13070931.html
Copyright © 2011-2022 走看看