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中用sort()方法对数组元素进行排序的操作
Jun 09 Javascript
通过BootStrap实现轮播图的实际应用
Sep 26 Javascript
jQuery Validate设置onkeyup验证的实例代码
Dec 09 Javascript
js自定义QQ菜单效果
Jan 10 Javascript
JavaScript获取当前时间向前推三个月的方法示例
Feb 04 Javascript
JS数组操作中的经典算法实例讲解
Jul 26 Javascript
通过js控制时间,一秒一秒自己动的实例
Oct 25 Javascript
jQuery Validate插件ajax方式验证输入值的实例
Dec 21 jQuery
Angularjs之如何在跨域请求中传输Cookie的方法
Jun 01 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
May 05 Javascript
vue.config.js中配置Vue的路径别名的方法
Feb 11 Javascript
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
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生成xml简单实例代码
2009/12/16 PHP
php smarty函数扩展
2010/03/15 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
php中使用GD库做验证码
2016/03/31 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
JS常用跨域方法实现原理解析
2020/12/09 Javascript
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
测试时代收集的软件测试面试题
2013/09/25 面试题
社区义诊活动总结
2014/04/30 职场文书
如何写早恋检讨书
2014/09/10 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
2015年电教工作总结
2015/05/26 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Win11软件图标固定到任务栏
2022/04/19 数码科技