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 toggleClass应用实例(附效果图)
Apr 06 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
Aug 05 Javascript
深入浅析JavaScript的API设计原则
Jun 14 Javascript
JS倒计时实例_天时分秒
Aug 22 Javascript
谈谈vue中mixin的一点理解
Dec 12 Javascript
详解AngularJS 过滤器的使用
Jun 02 Javascript
深入Vue-Router路由嵌套理解
Aug 13 Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
微信小程序实现工作时间段选择
Feb 15 Javascript
小程序hover-class点击态效果实现
Feb 26 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 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 购物车实例(申精)
2009/05/11 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
Joomla开启SEF的方法
2016/05/04 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
详解vue组件基础
2018/05/04 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
大学生关于奋斗的演讲稿
2014/01/09 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
党委班子对照检查材料
2014/08/19 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
个人廉政承诺书
2015/04/28 职场文书