vue高德地图之玩转周边

发布时间 - 2026-01-11 01:54:51    点击率:

前言:在之前的博客中,有成功引入高德地图,这是以前的地址  vue 调用高德地图。

因为一些需求,需要使用到地图的周边功能。

完整的项目代码请查看  我的github

一 、先看要实现的结果,参考了链家的周边,如图所示。

 二 、原理分析

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
  }

三、结果展示

注意:为方便演示效果,此项目中使用了个人开发者的高德秘钥,请自行去替换成自己的。

完整的项目代码请查看  我的github

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # 高德地图  # 地图  # vue调用高德地图实例代码  # 在vue项目中引入高德地图及其UI组件的方法  # 在vue中高德地图引入和轨迹的绘制的实现  # vue使用高德地图根据坐标定位点的实现代码  # 前端vue如何使用高德地图  # vue-cli中使用高德地图的方法示例  # VUE项目调用高德地图的详细步骤  # Vue接入高德地图的完整实例  # 关键词  # 这是  # 请查看  # 自己的  # 在这个  # 中心点  # 如有  # 博客  # 绑定  # 先看  # 大家多多  # 三甲  # 每项  # 如图所示  # 都查  # 购物广场  # 替换成  # 加载  # 使用了  # 链家 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 打开php文件提示内存不足_怎么调整php内存限制【解决方案】  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  免费视频制作网站,更新又快又好的免费电影网站?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  高端建站如何打造兼具美学与转化的品牌官网?  如何快速辨别茅台真假?关键步骤解析  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Android GridView 滑动条设置一直显示状态(推荐)  香港服务器选型指南:免备案配置与高效建站方案解析  做企业网站制作流程,企业网站制作基本流程有哪些?  公司网站制作价格怎么算,公司办个官网需要多少钱?  C#如何调用原生C++ COM对象详解  Laravel如何创建自定义Facades?(详细步骤)  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何在宝塔面板中创建新站点?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  浅述节点的创建及常见功能的实现  如何在万网利用已有域名快速建站?  Laravel安装步骤详细教程_Laravel环境搭建指南  香港服务器租用每月最低只需15元?  网站页面设计需要考虑到这些问题  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  如何用VPS主机快速搭建个人网站?  详解Huffman编码算法之Java实现  Laravel如何升级到最新版本?(升级指南和步骤)  网站建设整体流程解析,建站其实很容易!  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel如何集成Inertia.js与Vue/React?(安装配置)  使用C语言编写圣诞表白程序  Laravel如何实现API速率限制?(Rate Limiting教程)  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  免费网站制作appp,免费制作app哪个平台好?  jquery插件bootstrapValidator表单验证详解  如何登录建站主机?访问步骤全解析  如何基于PHP生成高效IDC网络公司建站源码?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何在宝塔面板创建新站点?  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  如何快速生成高效建站系统源代码?  详解jQuery中基本的动画方法  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)