当前位置: 首页 > news >正文

微信小程序使用腾讯地图实现地点搜索并且随着地图的滑动加载滑动到区域的地点,本文地点使用医院关键词作为搜索地点

实现效果如下

1.页面加载时,根据getLocation方法获取用户当前经纬度获取20条医院位置信息

在这里插入图片描述

2.页面滑动时,根据滑动到的经纬度再次获取20条医院位置信息

在这里插入图片描述

获取到的医院位置信息

在这里插入图片描述

实现方法如下

1.在.wxml中添加触发滑动的方法bindregiοnchange=“onMapRegionChange”

<map id="map" class="map" scale="{{scale}}" markers="{{markers}}" latitude="{{lat}}" show-location longitude="{{lng}}" enable-satellite="{{mapChange}}" bindmarkertap="onMarkerTap" bindregionchange="onMapRegionChange">

2.在.js中

Page({data: {markers: [],  //覆盖物txKey: "你的腾讯地图key",  //腾讯地图keyregionChanged: false     // 地图区域是否发生变化的标志},onLoad(options) {let that = this//获取用户当前位置wx.getLocation({type: 'gcj02',success: function (res) {console.log('用户已授权位置权限,经纬度:' + res.longitude, res.latitude);that.setData({lat: res.latitude,lng: res.longitude})//调用地点搜索方法,把用户当前位置经纬度传递给该方法that.getHospitalLoacal(res.longitude,res.latitude)}})},//触发滑动方法onMapRegionChange: function (e) {if (e.type === 'end') {this.setData({regionChanged: false});//获取到滑动的经纬度,传递给该方法this.getHospitalLoacal(e.detail.centerLocation.longitude, e.detail.centerLocation.latitude);}},//地点搜索方法getHospitalLoacal(lng,lat){console.log("搜索医院···")// 使用腾讯地图API进行关键词搜索wx.request({url: 'https://apis.map.qq.com/ws/place/v1/search',data: {keyword: '医院',  // 搜索关键词为“医院”/**格式:boundary=nearby(lat,lng,radius[, auto_extend])子参数:lat,lng:搜索中心点的经纬度,格式顺序为纬度在前,经度在后radius:搜索半径,单位:米,取值范围:10到1000auto_extend:[可选] 当前范围无结果时,是否自动扩大范围,取值:0 不扩大1 [默认] 自动扩大范围(依次按照按1公里、2公里、5公里,最大到全城市范围搜索)*/boundary: 'nearby('+lat+','+lng+',1000,1)',key: this.data.txKey,page_size: 20,//每页条目数,最大限制为20条,默认为10条page_index: 1 //第x页,默认第1页},success: res => {if (res.data.status === 0) {let hospitals = res.data.data.map(item => {return {id: item.id,longitude: item.location.lng,latitude: item.location.lat,title: item.title,iconPath: '/images/hospital.png', // 自定义标记的图标width: 30,height: 30};});this.setData({markers: hospitals});} else {console.error('地图API请求失败:', res.data.message);}},fail: error => {console.error('地图API请求失败:', error);}});}
})



如果本文对你有帮助,记得一键三连哦,你的支持和鼓励就是我最大的动力!^_^

相关文章:

  • 高校大学校园后勤移动报修系统 微信小程序uniapp+vue
  • CocosCreator 面试题(十五)Cocos Creator如何内置protobuf JS版本?
  • 乐观锁解决库存超卖问题
  • 基于helm的方式在k8s集群中部署gitlab - 备份恢复(二)
  • 算法基础一
  • JBase到JRT
  • 使用Rust开发小游戏
  • 基于Python实现汽车销售数据可视化+预测【500010086.1】
  • notion 3.0.0 版本最新桌面端汉化教程,支持MAC和WIN版本
  • 【C++】类型转换 ③ ( 重新解释类型转换 reinterpret_cast | 指针类型数据转换 )
  • Unity中Shader的Standard材质解析(一)
  • 免杀原理(php)
  • vite和webpack的区别和练习
  • tcp和 udp区别
  • Python 进阶(十一):高精度计算(decimal 模块)
  • [nginx文档翻译系列] 控制nginx
  • CSS 提示工具(Tooltip)
  • css选择器
  • ES6核心特性
  • extract-text-webpack-plugin用法
  • hadoop集群管理系统搭建规划说明
  • Hibernate【inverse和cascade属性】知识要点
  • Java 网络编程(2):UDP 的使用
  • springboot_database项目介绍
  • 创建一种深思熟虑的文化
  • 第十八天-企业应用架构模式-基本模式
  • 前嗅ForeSpider采集配置界面介绍
  • 通信类
  • 在Unity中实现一个简单的消息管理器
  • 在weex里面使用chart图表
  • #stm32驱动外设模块总结w5500模块
  • (1)Android开发优化---------UI优化
  • (arch)linux 转换文件编码格式
  • (Python) SOAP Web Service (HTTP POST)
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (实战篇)如何缓存数据
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .NET Core中Emit的使用
  • .NET MVC第三章、三种传值方式
  • .Net Web项目创建比较不错的参考文章
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net程序集学习心得
  • .NET单元测试
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @拔赤:Web前端开发十日谈
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [acwing周赛复盘] 第 94 场周赛20230311