【微信小程序 + 高德地图API 】键入关键字搜索地址,获取经纬度等
前言
又到熟悉的前言,接到个需求,要引入高德地图api,我就记录一下,要是有帮助记得点赞、收藏、关注😁。
后续有时间会慢慢完善一些文章:(画饼时间)
- map组件自定义气泡、mark标记点
- 后台管理系统如何引入高德地图,静态图 + 搜索地址获取经纬度
- 把这几篇连在一起(小程序的大部分出完,就给大家编辑个快速通道,其余的大家就先自己点专栏了哈)
高德地图入门指南:https://lbs.amap.com/api/wx/gettingstarted
一、准备工作
1. 申请地图 API 密钥
- 若使用 腾讯地图(微信小程序原生支持):
前往 腾讯位置服务控制台 申请 API 密钥(Key),并在微信小程序后台配置「合法域名」(apis.map.qq.com 等)。 - 若使用 高德地图:
前往 高德开放平台 申请小程序 SDK 密钥,并下载 高德微信小程序 SDK。
2. 高德地图申请key
到高德开发平台
官网直通道:https://lbs.amap.com/
3. 下载微信小程序SDK
我下载的时候是: AMapWX_SDK_V1.3.0
官网直通道:https://lbs.amap.com/api/wx/download
解压后得到:amap-wx.js ,你可以按照你的习惯放文件,我是放到小程序的utils文件夹下:
4.配置小程序服务器域名
登录微信公众平台,在 “设置”->“开发设置” 中设置 request 合法域名,将 https://restapi.amap.com
中添加进去。
微信公众平台:https://mp.weixin.qq.com/
二、封装自己的Map 组件
先确定自己的需求要求什么程度,再定义一下自己的组件。
map组件 官网通道:https://developers.weixin.qq.com/miniprogram/dev/component/map.html
这边就按照我的需求来咯,再阐述一下吧:
1. 需求明确
在页面上键入关键字,模糊查询出相关的地址信息,用户在下拉框内选择详细地址,则在地图上标记出来。
2. 代码实现
- map 组件封装, 属性的说明如图:
官网直通车: https://developers.weixin.qq.com/miniprogram/dev/component/map.html
<mapid="map":longitude="center.longitude":latitude="center.latitude":markers="markers":scale="mapScale"@regionchange="onRegionChange"@markertap="onMarkerTap"show-location:layer-style="layerStyleId"class="map"></map>
- 引入sdk,申明变量
<script setup>
import { onMounted } from 'vue';
import amapFile from '../../utils/amap-wx.130.js'const mapScale = ref(5) // 初始缩放级别:全国视图
const layerStyleId = ref('你的keys') //在高德上申请的keysearchMap = () => {let searchText = '键入的值'let myAmapFun = new amapFile.AMapWX({key: layerStyleId })let that = this//根据关键词,给出相应的提示信息myAmapFun.getInputtips({ keywords: searchText,success: function (res) {console.log('success --- 这就是符合地址信息的多个地址了', res.tips[0].location)},fail: function (fail) {console.log('err', fail)}})}
</script>
官网接口文档,快速通道:https://lbs.amap.com/api/wx/reference/core#t7
官网接口字段说明文档:https://lbs.amap.com/api/webservice/guide/api-advanced/inputtips
POI分类列表,下载地址: https://lbs.amap.com/api/webservice/download