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 相关文章推荐
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
Jquery 的扩展方法总结
Oct 01 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
Dec 28 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
Mar 18 Javascript
JavaScript在网页中画圆的函数arc使用方法
Nov 13 Javascript
JS实现的幻灯片切换显示效果
Sep 07 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
Jan 16 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
Nov 16 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
工作中常用js功能汇总
Nov 07 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页面中文乱码分析
2013/10/29 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
jquery实现心算练习代码
2010/12/06 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python 爬取疫情数据的源码
2020/02/09 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
企业文化宣传标语
2014/06/09 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
排球赛新闻稿
2015/07/17 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
Python实现生成bmp图像的方法
2021/06/13 Python