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 相关文章推荐
Sample script that displays all of the users in a given SQL Server DB
Jun 16 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
基于jquery的图片轮播 tab切换组件
Jul 19 Javascript
点击显示指定元素隐藏其他同辈元素的方法
Feb 19 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
Vue路由切换时的左滑和右滑效果示例
May 29 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
vue定义全局变量和全局方法的方法示例
Aug 01 Javascript
Vue render函数实战之实现tabs选项卡组件
Apr 22 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 xfocus防注入资料
2008/04/27 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
围观tangram js库
2010/12/28 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
xml转json的js代码
2012/08/28 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
深入理解Promise.all
2018/08/08 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python从入门到精通(DAY 2)
2015/12/20 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
使用python去除图片白色像素的实例
2019/12/12 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
人事专员的职责
2014/02/26 职场文书
高中教师评语大全
2014/04/25 职场文书
诚信贷款承诺书
2014/05/30 职场文书
找工作求职信
2014/07/07 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android