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 构造函数 实例分析
Nov 26 Javascript
javascript 图片上传预览-兼容标准
Jun 01 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
Feb 28 Javascript
javascript实现画不相交的圆
Apr 07 Javascript
jquery简单实现图片切换效果的方法
May 12 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
JS实现的四级密码强度检测功能示例
May 11 Javascript
如何理解Vue的render函数的具体用法
Aug 30 Javascript
javascript实现的字符串转换成数组操作示例
Jun 13 Javascript
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
微信小程序实现购物车小功能
Dec 30 Javascript
面试中canvas绘制图片模糊图片问题处理
Mar 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
php 无法载入mysql扩展
2010/03/12 PHP
PHP的博客ping服务代码
2012/02/04 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
python快速排序代码实例
2013/11/21 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python读取和保存图片5种方法对比
2018/09/12 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
学python最电脑配置有要求么
2020/07/05 Python
Oracle快照(snapshot)
2015/03/13 面试题
后勤工作职责
2013/12/22 职场文书
产品促销活动策划书
2014/01/15 职场文书
劳动实践课感言
2014/02/01 职场文书
房地产营销策划方案
2014/02/08 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
邀请函怎么写
2015/01/30 职场文书
铁人观后感
2015/06/16 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
七年级作文之环保作文
2019/10/17 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
Python使用MapReduce进行简单的销售统计
2022/04/22 Python