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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
Mar 11 Javascript
Javascript仿PHP $_GET获取URL中的参数
May 12 Javascript
全面兼容的javascript时间格式化函数(比较实用)
May 14 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
Apr 20 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
AngularJS中的作用域实例分析
May 16 Javascript
layer.open回调获取弹出层参数的实现方法
Sep 10 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 编写的日历
2006/10/09 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
PHP实现验证码校验功能
2017/11/16 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
校庆接待方案
2014/03/18 职场文书
最常使用的求职信
2014/05/25 职场文书
应届生自荐书
2014/06/23 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
2014最新离职证明范本
2014/09/12 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
毕业典礼邀请函
2015/01/31 职场文书
升职自荐信怎么写
2015/03/05 职场文书
保研推荐信格式
2015/03/25 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
运动会班级前导词
2015/07/20 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python