vue高德地图之玩转周边


Posted in Javascript onJune 16, 2017

前言:在之前的博客中,有成功引入高德地图,这是以前的地址  vue 调用高德地图。

因为一些需求,需要使用到地图的周边功能。

完整的项目代码请查看  我的github

一 、先看要实现的结果,参考了链家的周边,如图所示。

vue高德地图之玩转周边

 二 、原理分析

1、引入高德api,这个在之前的博客提到过,vue 调用高德地图。

2、使用地图的周边插件,这是  高德网站的api。

AMap.PlaceSearch //地点搜索服务插件,提供某一特定地区的位置查询服务

在插件中的各种方法中选取了searchNearBy的方法。

searchNearBy(keyword:String,center:LngLat,radius:Number,
callback:function(status:String,result:info/SearchResult))
 
// 根据中心点经纬度、半径以及关键字进行周边查询
radius取值范围:0-50000

3、构建查询方法

searchData: function (callback) {
  let keyWords = ['地铁线路', '大型购物广场', '三甲医院', '学校'] // 自选关键词
  let distance = [1000, 3000, 3000, 3000]
  // …………………………………………………………周边分类…………………………………………………………………………………………………………
  placeSearchOptions = { // 构造地点查询类
  pageSize: 10,
  pageIndex: 1,
  city: '021', // 城市
  map: map,
  visible: false
  }
  AMap.service('AMap.PlaceSearch', function () {
  map.clearMap() // 清除地图覆盖物
  placeSearch = new AMap.PlaceSearch(placeSearchOptions)
  for (let i = 0; i < keyWords.length; i++) {
   placeSearch.searchNearBy(keyWords[i], [121.44343879031237, 31.207570983863118], distance[i], callback)
  }
  })
  return callback
 },

在这个方法中,将所有的maker都查找出来,为了能够让后续不重新加载地图和插件,如有更好的方法 ,欢迎指出。

4、将maker的切换事件绑定在footer下的各个选项中。

/* 注册每项的点击事件,默认显示num0,也就是交通,实际上所有的数据已经请求到了,点击按钮只是用来切换maker */
  clickItem: function (index, buttons) {
  map.clearMap() // 清除地图覆盖物
  buttons.forEach(function (e, index) {
   e.isActive = false
  })
  buttons[index].isActive = true
  self.listCount = self.num[index].length
  self.listText = self.num[index]
  function onClick (e) {
   console.log(e)
  }
  for (let i = 0; i < self.num[index].length; i++) {
   marker = new AMap.Marker({
//   content: 'div',
   title: 'abc',
   icon: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b' + (i + 1) + '.png',
   position: [self.num[index][i].location.lng, self.num[index][i].location.lat],
   offset: new AMap.Pixel(-24, 5),
   zIndex: 1,
   map: map,
   clickable: true
   })
   AMap.event.addListener(marker, 'click', onClick)
  }
  return marker
  }

三、结果展示

vue高德地图之玩转周边

注意:为方便演示效果,此项目中使用了个人开发者的高德秘钥,请自行去替换成自己的。

完整的项目代码请查看  我的github

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 中对象的继承〔转贴〕
Jan 22 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
Nov 30 Javascript
jQuery 中ajax异步调用的四种方式
Jun 28 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
Sep 01 Javascript
JavaScript数据类型学习笔记分享
Sep 01 Javascript
js 获取本地文件及目录的方法(推荐)
Nov 10 Javascript
javascript设计模式之策略模式学习笔记
Feb 15 Javascript
完美解决input[type=number]无法显示非数字字符的问题
Feb 28 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
基于JavaScript中字符串的match与replace方法(详解)
Dec 04 Javascript
在Vue中使用Compass的方法
Mar 02 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
Jun 16 #Javascript
JS 组件系列之BootstrapTable的treegrid功能
Jun 16 #Javascript
vue之数据交互实例代码
Jun 16 #Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 #jQuery
JS基于正则实现数字千分位用逗号分隔的方法
Jun 16 #Javascript
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 #jQuery
基于JS实现网页中的选项卡(两种方法)
Jun 16 #Javascript
You might like
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
django_orm查询性能优化方法
2018/08/20 Python
python实现dijkstra最短路由算法
2019/01/17 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
详解python播放音频的三种方法
2019/09/23 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Python中求对数方法总结
2020/03/10 Python
python实现udp聊天窗口
2020/03/31 Python
如何基于线程池提升request模块效率
2020/04/18 Python
Python中实现输入一个整数的案例
2020/05/03 Python
Python自动创建Excel并获取内容
2020/09/16 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
探矿工程师自荐信
2014/01/24 职场文书
岗位说明书范文
2014/05/07 职场文书
团日活动总结书
2014/05/08 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS