vue使用高德地图点击下钻上浮效果的实现思路


Posted in Javascript onOctober 12, 2019

这里给使用高德地图下钻提供一个思路

先讲下我的思路,高德地图api有一个地图绘制区域,你只要提供区码,就可以绘制该区域。以浙江省为例,我一开给浙江省的区码就可以绘制出浙江省的区域,接下来我要进入杭州市,当我点击杭州市的时候我先清空地图上的覆盖层并且能获取到‘杭州市'这个字符串,通过对比这个字符串我就可以给出杭州市的区码,最后绘制出杭州市的覆盖层。
接下来看代码:

第一步

绘制地图:

//创建地图
  this.map = new AMap.Map("container", {
   cursor: "default",
   resizeEnable: true,
   expandZoomRange: true,
   gestureHandling: "greedy",
   // zooms: [8, 20],
   zoom: 12,
   defaultCursor: "pointer",
   mapStyle: "amap://styles/f6e3818366ba5268d50ea3f2296eb3eb",
   showLabel: true
  });

第二步(关键)

let that = this;
  AMapUI.loadUI(["geo/DistrictExplorer"], DistrictExplorer => {
   //创建一个实例
   that.districtExplorer = new DistrictExplorer({
   eventSupport: true,
   map: this.map
   });

   //设置绘制的子区域和父区域的自身属性(包括线颜色,透明度等)执行renderAreaNode()就可以开始绘制区域了
   function renderAreaNode(areaNode) {
   //绘制子级区划
   that.districtExplorer.renderSubFeatures(areaNode, function(
    feature,
    i
   ) {
    return {
    cursor: "default",
    bubble: true,
    // strokeColor: "#00a4ce", //线颜色
    strokeColor: "#03d7a1",
    strokeOpacity: 1, //线透明度
    strokeWeight: 1.5, //线宽
    // fillColor: "#09152a", //填充色
    fillColor: "#072942",
    fillOpacity: 0.1 //填充透明度
    };
   });
   //绘制父区域
   that.districtExplorer.renderParentFeature(areaNode, {
    cursor: "default",
    bubble: true,
    // strokeColor: "#00a4ce", //线颜色
    strokeColor: "#03d7a1",
    strokeOpacity: 1, //线透明度
    strokeWeight: 1.5, //线宽
    // fillColor: "#09152a", //填充色
    fillColor: "#072942",
    fillOpacity: 0.6 //填充透明度
   });
   }

   // var adcodes = [];
   // //根据角色来绘制不同的区域
   // that.adcodes = [
   // 330200 //浙江
   // ];
   that.map.clearMap(); //清空所有绘制物
   //绘制多区域
   that.districtExplorer.loadMultiAreaNodes(this.adcodes, function(
   error,
   areaNodes
   ) {
   //设置定位节点,支持鼠标位置识别
   //注意节点的顺序,前面的高优先级
   that.districtExplorer.setAreaNodesForLocating(areaNodes);
   //清除已有的绘制内容
   that.districtExplorer.clearFeaturePolygons();
   for (var i = 0, len = areaNodes.length; i < len; i++) {
    renderAreaNode(areaNodes[i]);
   }
   //更新地图视野
   that.map.setFitView(that.districtExplorer.getAllFeaturePolygons());
   });
   //添加点标记
   that.addMarker(data);
  });

this.adcodes是区码,这里的关键在于清空,利用好 that.map.clearMap(); //清空所有绘制物 再重新进行绘制,再通过 that.map.setFitView(that.districtExplorer.getAllFeaturePolygons()); 就可以达到下钻的效果,上浮也是同理。

区码以浙江省为例

if (data.result.rows[0].cities_name == "杭州市") {
   this.adcodes = [330100];
   } else if (data.result.rows[0].cities_name == "宁波市") {
   this.adcodes = [330200];
   } else if (data.result.rows[0].cities_name == "温州市") {
   this.adcodes = [330300];
   } else if (data.result.rows[0].cities_name == "嘉兴市") {
   this.adcodes = [330400];
   } else if (data.result.rows[0].cities_name == "湖州市") {
   this.adcodes = [330500];
   } else if (data.result.rows[0].cities_name == "绍兴市") {
   this.adcodes = [330600];
   } else if (data.result.rows[0].cities_name == "金华市") {
   this.adcodes = [330700];
   } else if (data.result.rows[0].cities_name == "衢州市") {
   this.adcodes = [330800];
   } else if (data.result.rows[0].cities_name == "舟山市") {
   this.adcodes = [330900];
   } else if (data.result.rows[0].cities_name == "台州市") {
   this.adcodes = [331000];
   } else if (data.result.rows[0].cities_name == "丽水市") {
   this.adcodes = [331100];
   }

总结

以上所述是小编给大家介绍的vue使用高德地图点击下钻上浮效果的实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Javascript 继承实现例子
Aug 12 Javascript
3种不同方式的焦点图轮播特效分享
Oct 30 Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 Javascript
jQuery滚动条插件nanoscroller使用指南
Apr 21 Javascript
ECMAScript6块级作用域及新变量声明(let)
Jun 12 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
Nov 01 Javascript
jQuery常见的选择器及用法介绍
Dec 20 Javascript
jQuery实现手势解锁密码特效
Aug 14 jQuery
关于AngularJS中ng-repeat不更新视图的解决方法
Sep 30 Javascript
JavaScript 空间坐标的使用
Aug 19 Javascript
教你一步步实现一个简易promise
Nov 02 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 #Javascript
微信小程序 导入图标实现过程详解
Oct 11 #Javascript
在vue中高德地图引入和轨迹的绘制的实现
Oct 11 #Javascript
vue实现点击按钮下载文件功能
Oct 11 #Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 #Javascript
详解vue 自定义组件使用v-model 及探究其中原理
Oct 11 #Javascript
JsonProperty 的使用方法详解
Oct 11 #Javascript
You might like
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
Yii清理缓存的方法
2016/01/06 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
Python文件和目录操作详解
2015/02/08 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
python实现随机梯度下降法
2020/03/24 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
pandas apply多线程实现代码
2020/08/17 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers