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 valueOf 使用方法
Dec 28 Javascript
Javascript JSQL,SQL无处不在,
May 05 Javascript
javascript中有趣的反柯里化深入分析
Dec 05 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
Javascript基础教程之比较操作符
Jan 18 Javascript
AngularJs  Understanding Angular Templates
Sep 02 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
Oct 19 Javascript
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
javascript将扁平的数据转为树形结构的高效率算法
Feb 27 Javascript
JS错误处理与调试操作实例分析
Apr 13 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 json相关函数用法示例
2017/03/28 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Python装饰器decorator用法实例
2014/11/10 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
客服实习的个人自我鉴定
2013/10/20 职场文书
八年级生物教学反思
2014/01/22 职场文书
毕业生求职信范文
2014/06/29 职场文书
单位员工收入证明样本
2014/10/09 职场文书
求职简历自我评价2015
2015/03/10 职场文书