在vue中使用高德地图的下属省市区查询,实现省市区的联动以及规划范围

  • 一、先上效果图
  • 二、高德地图Vue引用

一、先上效果图

二、高德地图Vue引用

1. webpack引入高德

webpack.base.conf.js中找到module.exports对象。添加externals: { 'AMap': 'AMap' }代码。

2. index.html引入高德js

index.html页面加入<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key='你的key值&plugin=AMap.DistrictSearch'"></script>

3. 在页面中引入高德js

在vue文件中import进来。import AMap from 'AMap'; //在页面中引入高德地图

4.地图初始化生成代码:

 loadmap () {this.map = new AMap.Map('container', {center: [117.258134, 38.98059],zoom: 13})}

5.结构部分代码:

 <div style="text-align: right;">省:<select id="province" style="width: 130px; height: 30px; border: 1px solid #ccc" @change="search"></select>市:<select id="city" style="width: 130px; height: 30px; border: 1px solid #ccc" @change="search"></select>区:<select id="district" style="width: 130px; height: 30px; border: 1px solid #ccc" @change="search"></select></div></el-row><div id='container' class='mymap'></div>

6.data中的数据:

data () {return {map: null,polygons: [],district: null}}

7.methods绘制地图代码:

   province() {// 行政区划查询let opts = {subdistrict: 1, // 返回下一级行政区showbiz: false // 最后一级返回街道信息}this.district = new AMap.DistrictSearch(opts) // 注意:需要使用插件同步下发功能才能这样直接使用this.district.search('中国', (status, result) => {if (status === 'complete') {this.getData(result.districtList[0])}})},getData (data, level) {let citySelect = document.getElementById('city')let districtSelect = document.getElementById('district')let bounds = data.boundariesif (bounds) {for (let i = 0, l = bounds.length; i < l; i++) {let polygon = new AMap.Polygon({map: this.map,strokeWeight: 1,strokeColor: '#0091ea',fillColor: '#80d8ff',fillOpacity: 0.2,path: bounds[i]})this.polygons.push(polygon)}this.map.setFitView() // 地图自适应}// 清空下一级别的下拉列表if (level === 'province') {citySelect.innerHTML = ''districtSelect.innerHTML = ''} else if (level === 'city') {districtSelect.innerHTML = ''}let subList = data.districtListif (subList) {let contentSub = "";let curlevel = subList[0].level;let curList = document.querySelector("#" + curlevel);if (!curList) return false;if (curlevel === "province") {curList.add(new Option("全国"));} else if (curlevel === "city") {curList.add(new Option("全市"));} else {curList.add(new Option("全区"));}for (let i = 0, l = subList.length; i < l; i++) {let name = subList[i].namelet levelSub = subList[i].levelcontentSub = new Option(name)contentSub.setAttribute('value', levelSub)contentSub.center = subList[i].centercontentSub.adcode = subList[i].adcodecurList.add(contentSub)}}},search (obj) {// 清除地图上所有覆盖物let that = thisfor (let i = 0, l = this.polygons.length; i < l; i++) {this.polygons[i].setMap(null)}let option = obj.srcElement[obj.srcElement.options.selectedIndex]let adcode = option.adcodethis.district.setLevel(option.value) // 行政区级别this.district.setExtensions('all')// 行政区查询// 按照adcode进行查询可以保证数据返回的唯一性this.district.search(adcode, function (status, result) {if (status === 'complete') {that.getData(result.districtList[0], obj.srcElement.id)}})}

8、最后加载一下:
根据自己需求加载出来

mounted () {this.loadmap()this.province()}

版权声明:本文为博主原创文章,转载请附上博文链接!

在vue中使用高德地图的下属省市区查询,实现省市区的联动以及规划范围相关推荐

  1. vue中引用高德地图根据经纬度计算两地距离

    vue中引用高德地图根据经纬度计算两地距离 一.示例图: npm安装 npm install vue-amap --save 在min.js文件中引入vue-amap import VueAMap f ...

  2. 在Vue中使用高德地图

    在Vue中使用高德地图 一.如何在Vue中引入基础高德地图 1.步骤一:注册并登录高德地图开放平台,申请密钥 2.步骤二:安装高德地图加载器 3.封装一个自定义地图组件,并初始化地图 二.根据关键词搜 ...

  3. Vue中使用高德地图

    Vue中使用高德地图定位及poi搜索,以及其他插件的使用方法 1.第一步安装 npm install vue-amap --save 2.引入vue-amap main.js import Vue f ...

  4. Vue中使用高德地图,简单明了

    一.使用步骤 1.在vue中引入高德地图的加载器   npm i @amap/amap-jsapi-loader --save 在自己的组件中去引用 <template>//这个div就是 ...

  5. Vue中使用高德地图(vue-amap)的采坑记录小白入门

    这里写目录标题 写在开始 step.1 安装组件 step.2 引入组件 step.3注册高德高德开发者账号,申请KEY step.4 正式使用 写在开始 俗话说授人以鱼不如授人以渔,直接记录代码的话 ...

  6. vue中引入高德地图Loca数据可视化

    目录 引言: 关键词: 正文: 一.如何安装或者引入: 二.如何引入: 三.如何使用: 四.完整代码: 五.效果图 参考: 引言: 前面我的文章介绍了vue中引入高德地图实例的,详情可以去参考,由于需 ...

  7. Vue中集成高德地图API实现定位与自定义样式信息窗体

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...

  8. Vue 中使用高德地图api

    比较简单的原生方式 <template><div style="margin: 0px;padding: 0px"><div id="pan ...

  9. vue中引入高德地图

    ❤️❤️❤️ Topology可视化绘图引擎 ❤️❤️❤️ 总的来说,vue组件中使用高德地图的方式有两种,一种是vue-amap :一套专门用于vue的高德地图插件:另外一种是原生的高德地图. 方式 ...

最新文章

  1. java 卖票问题_Java之多线程窗口卖票问题(Thread)
  2. javascript-对混合字母/数字数组进行排序
  3. 朱哥研究出来的分页控件
  4. 中国冶金行业投资战略及未来发展形势研究报告2021版
  5. App设计灵感之十二组精美的健身App设计案例
  6. Kafka科普系列 | 什么是LSO?
  7. Android之SparseArray<E>详解
  8. 你知道考的是平方数吗(记洛谷P1876题RE+WA的经历,Java语言描述)
  9. Transformers Assemble(PART IV)
  10. 未来智能合约平台的展望
  11. springboot代码生成器,一款经典版的java代码生成器
  12. .net core——打造自己的 dotnet new 微服务解决方案模板
  13. vue项目中用Iconfont阿里巴巴矢量图标库解析失败的解决办法
  14. 入门STM32--怎么学习STM32
  15. FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程
  16. 同比和与环比的计算公式
  17. android星星闪效果,使用Canvas绘制星星闪烁的效果
  18. OpenJudge1661:Bomb Game(翻译 day 6)
  19. Window10系统启动问题——无法启动问题
  20. 产品:“写个banner这么费劲?”

热门文章

  1. 音视频开发系列(27)AudioRecord录制PCM音频
  2. 台风红色预警:“莎莉嘉”中午前后登陆海南
  3. 为泡面贴上健康美味新标签,康师傅用“存量创新”实现自我创新
  4. linux printf int64,关于stdint:如何在C中打印int64_t类型
  5. 平安金融壹账通测试技术周报(七十一期)
  6. html三种不同的对齐段落,在不同单元格中具有对齐段落的HTML表格
  7. matlab表达式求值,Matlab进行表达式求值(含参变量代入求值)
  8. php防止文件盗链,PHP如何禁止图片文件的被盗链
  9. c语言圆弧插补源代码,模拟PLC 的圆弧插补方式在VC中绘制圆弧
  10. 关于微信获取不到相册图片问题