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 相关文章推荐
JQuery select标签操作代码段
May 16 Javascript
常用Extjs工具:Extjs.util.Format使用方法
Mar 22 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
Apr 14 Javascript
js获取url中&quot;?&quot;后面的字串方法
May 15 Javascript
javascript中new关键字详解
Dec 14 Javascript
Node.js+Express配置入门教程详解
May 19 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
Jun 27 Javascript
详解Angular.js的$q.defer()服务异步处理
Nov 06 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
详解vue中axios请求的封装
Apr 08 Javascript
vue 使用原生组件上传图片的实例
Sep 08 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教程 基本语法
2009/10/23 PHP
php 将excel导入mysql
2009/11/09 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
PHP微信支付实例解析
2016/07/22 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
vue如何截取字符串
2019/05/06 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python中random模块生成随机数详解
2016/03/10 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
餐厅收银员岗位职责
2015/04/07 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android
分享Python获取本机IP地址的几种方法
2022/03/17 Python
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技