2.0.6 • Published 7 months ago

map-chart v2.0.6

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

map-chart

介绍

基于 echarts+AMap 集成的支持地图下钻 vue2 组件 数据维护 依靠 adcode

Install

pnpm add map-chart

use

import Vue from 'vue'
import MapChart from 'map-chart'
Vue.use(MapChart)

<!-- or -->
import { MapChart } from 'map-chart'

属性

属性说明类型是否必传默认值可选值
customizeKey配置选项Object--见下面配置选项
useAmap是否开启高德地图Booleanfalse--
AmapInfo高德地图配置信息,参考高德Object--见下面配置选项
echartsEvents配置 echarts 事件Array--见下面配置选项
drillDown配置下钻方式Stringclickdblclick 双击下钻| off 关闭下钻
drillingDownLevels可下钻层级String'3'1-4
generateOptionecharts option 具体参考https://echarts.apache.orgFunction--见下面配置选项
generateJson用户自定义图层 jsonFunction--见下面配置选项
mapData业务数据Array----
redrawMapView自定义 echarts 图层名称、区块合并、删除Object--见下面配置选项
loadingCfg自定义 echarts 加载动画 参考https://echarts.apache.orgObject----

customizeKey 配置选项说明

参数说明类型
userKey业务数据 keystring
value业务数据 valuestring
adname初始地图名称string
adcode初始 adcodestring
amapDomId自定义高德地图渲染 domstring

AmapInfo 配置选项说明

详细配置参考高德开发者平台
const AMapInfo = {
  security: '', // 初始化时加载秘钥
  key: '', // 申请好的Web端开发者Key,首次调用 load 时必填
  plugins: [
    'AMap.PolyEditor',
    'AMap.MarkerClusterer',
    'AMap.Driving',
    'AMap.DistrictSearch',
    'AMap.Autocomplete',
    'AMap.PlaceSearch',
    'AMap.Walking',
    'AMap.Riding',
    'AMap.DragRoute',
    'AMap.MassMarks',
    ...
  ],
  amap: {
    rotateEnable: true, //控制地图是否可以旋转
    pitchEnable: true, //控制地图是否可以倾斜
    terrain: true, // 开启地形图
    pitch: 50, //初始化角度
    viewMode: '2D', //是否为3D地图模式
    zoom: 12, //初始化地图级别
    center: [113.17, 23.8], //初始化地图中心点位置113°17',北纬23°8'
    mapStyle: '', //初始化地图样式
  },
  AMapUI: {
    version: '1.0',
  },
  AMapUIPlugins: ['overlay/SimpleMarker', 'geo/DistrictExplorer'],
}

echartsEvents 配置选项说明

computed: {
    echartsEvents() {
      return [
        {
          type: 'click',
          handler: (e) => {
            console.log('自定义事件', e)
          },
        },
      ]
    },
  },

generateOption 配置选项说明

async generateOption() {
      // 模拟业务数据
      const adcode = this.getNowAdcode()
      const areaDataJson = await this.districtExplorer.loadAreaNode(adcode)
      const mokeData = areaDataJson.features.map((item) => {
        return {
          name: item.properties.name,
          value: (Math.random() * 1000).toFixed(2),
          adcode: item.properties.adcode,
          org_id: (Math.random() * 1000).toFixed(0),
        }
      })
      this.mapData = mokeData
      // echartsOption为echarts option对象
      return echartsOption(mokeData)
    }

generateJson 配置选项说明

配置 echarts 地图 在内部 json 不满足使用情况时 支持自定义 json adcodeArr: 需要替换自定义 json 的 adcode handler: 自定义 json 获取方式

generateJson() {
      return {
        adcodeArr: ['210000', '220000', '222400'],
        handler: async (adcode) => {
          // 模拟数据自定义数据
          console.log('模拟数据自定义数据')
          const areaDataJson = await this.districtExplorer.loadAreaNode(adcode)
          return areaDataJson
        },
      }
    },

generateJson 配置选项说明

const redrawMapView = Object.freeze({
  210000: [
    {
      adcodeTarget: [210200],
      properties: {
        name: '自定义名称',
        adcode: 210200, // 自定义adcode 转 number
        centroid: [122.190893, 39.593378], // 图标展示位置
        cp: [122.190893, 39.593378], // 文字展示位置
      },
    },
    {
      adcodeTarget: [211300, 211400, 210400, 210100],
      properties: {
        name: '朝阳+葫芦岛',
        adcode: 211300, // 自定义adcode 转 number
        centroid: [120.451176, 41.576758], // 图标展示位置
        cp: [120.451176, 41.576758], // 文字展示位置
      },
    },
    {
      adcodeTarget: [210300],
      properties: {
        name: '鞍山新名字',
        adcode: 210300, // 自定义adcode 转 number
        centroid: [122.995632, 41.110626], // 图标展示位置
        cp: [122.995632, 41.110626], // 文字展示位置
      },
    },
    {
      adcodeTarget: [210500, 210600],
      delete: true,
    },
  ],
  440000: [
    {
      adcodeTarget: [440600, 440100],
      properties: {
        name: '广州+佛山',
        adcode: 440100, // 自定义adcode 转 number
        centroid: [113.122717, 24.028762], // 图标展示位置
        cp: [113.122717, 24.028762], // 文字展示位置
      },
    },
    {
      adcodeTarget: [441300],
      delete: true,
    },
  ],
})

事件

事件名称说明回调参数
update-stack地图层级变化时触发基本层级信息
created-amap高德地图初始化map:高德实例对象, aMapUIPlugins:配置的插件
enter-amap进入高德地图时触发json:当前层级信息
leave-amap离开高德地图时触发--

方法

通过$refs 方式调用

方法名称说明参数
drillUpEventRef上钻目标区域 adcode
drillDownEventRef下钻目标区域 adcode
drillMiddleEventRef同级切换目标区域 adcode、业务数据主键 key, 目标区域名称 name(存在父级图层时可不传)
updateEchartsMapDataRef更新 echarts 数据--
showAmapRef显示高德地图--
hideAmapRef隐藏高德地图--
getChartMapRef获取 echarts 实例--
2.0.3

8 months ago

2.0.5

7 months ago

2.0.4

7 months ago

2.0.6

7 months ago

2.0.2

9 months ago

2.0.1

9 months ago

2.0.0

9 months ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago