在Vue里使用G2地图制作省级地图展示各市级数据

制作效果
省级地图

一、相关依赖
1、npm安装G2

npm install @antv/g2 --save

2、npm安装data-set

npm install @antv/data-set --save

3、npm安装jquery

npm install jquery --save

4、npm安装lodash

npm install lodash --save

二、视图层代码
china和provice两个div是必须的,删除一个会报错。

<template>
  <div>
    <div style="position: relative;">
      <div id="china" style="display: none;width: 50%;height:400px;position: absolute;left: 0;top: 0;"></div>
      <div id="province" style="width: 50%;height:400px;position: absolute;right: 0;top: 0;"></div>
    </div>
  </div>
</template>

三、JS代码

import $ from 'jquery';
import _ from 'lodash';
import G2 from '@antv/g2';
const DataSet = require('@antv/data-set');

export default {
  mounted() {
    $.getScript('https://webapi.amap.com/maps?v=1.4.1&key=0d78256ea89beeb8c25d1cd047549d1f')
    .then(()=>$.getScript('https://webapi.amap.com/ui/1.0/main.js?v=1.0.11'))
    .then(()=>{
      // 调用高德 api 绘制底图以及获取 geo 数据
      var map = new AMap.Map('china', {
        zoom: 4
      });
    //.......这里省略官网案例代码
    })
  }
}

注:
1、JS部分只举例了一小部分代码,完整代码可到G2官网地图案例查找:G2官网地图链接
2、如案例运行报有关eslint错误,可关闭eslint。
3、这里把import * as $ from 'jquery'改为了import $ from 'jquery'因为运行时报$ not defined。

这里还有个自己添加的代码:
点击事件获取数据

添加自定义数据:
添加数据

整个案例是自己第一次尝试在Vue里使用G2地图,在网上没有看到相关完整案例所以分享出来供大家参考,如有不错误还请指正!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在 Vue使用高德地图,并显示省级地图,可以按照以下步骤进行操作: 1. 在 index.html 中引入高德地图 JS API: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值"></script> ``` 2. 在 Vue 组件中创建地图: ```javascript <template> <div id="map-container"></div> </template> <script> export default { mounted() { // 创建地图 const map = new AMap.Map('map-container', { zoom: 6, // 地图缩放级别 center: [116.397428, 39.90923] // 地图中心点坐标 }); // 设置地图显示省级行政区划 AMap.service('AMap.DistrictSearch', () => { const districtSearch = new AMap.DistrictSearch({ level: 'province', showbiz: false, extensions: 'all' }); districtSearch.search('北京市', (status, result) => { const bounds = result.districtList[0].boundaries; const polygon = new AMap.Polygon({ map: map, strokeWeight: 1, strokeColor: '#0091ea', fillColor: '#80d8ff', fillOpacity: 0.2, path: bounds }); map.setFitView(); }); }); } }; </script> ``` 在这个例子中,我们创建了一个 `div` 容器用于显示地图,然后在组件的 `mounted` 钩子中创建了一个地图对象,并将其显示在容器中。接下来,我们使用 `AMap.service` 方法加载 `AMap.DistrictSearch` 类,并调用 `search` 方法搜索指定的省份。搜索结果会返回一个省份的多边形边界集合,我们可以使用 `AMap.Polygon` 类创建一个多边形覆盖物,并将其添加到地图上。 最后,我们调用 `map.setFitView()` 方法将地图缩放到合适的级别,以便显示整个省份

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值