uniapp小程序使用高德地图

本文详细介绍了如何在微信公众平台上集成高德地图API,包括设置服务内容、接口开通、manifest配置、申请应用、引入地图文件以及处理地理位置权限等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.打开微信公众平台

2.扫二维码选择对应的项目-设置-服务内容声明-用户隐私保护指引-更新-按照下面红框里的设置

3.开发管理-接口设置(根据需求把对应的api开通,注意红框getLocation,上面有些人是显示审核不通过,但是实际上线后又可以用,一直没明白为什么)

4.找到项目manifest.json文件,按照图中去配置

5.打开 高德开放平台 | 高德地图API

选择应用管理-我的应用-创建新应用

6.自定义

7.添加key

8.下载amap-wx.js文件,并拷贝到项目中,随便方法都行,引入时路径不要错,我的习惯是创建一个util文件夹专门存放js文件 相关下载-微信小程序插件 | 高德地图API

9.在微信公众平台 设置-开发设置 中设置 request 合法域名,将 https://restapi.amap.com 中添加进去

10.项目中创建一个组件封装地图

11.核心部分是map标签,用来显示地图

12.引入高德地图api提供的微信小程序接口

<script>
// 引入高德地图api提供的微信小程序的接口
	var amapFile = require('../../util/amap-wx.130.js');//如:..­/..­/libs/amap-wx.js
	// 创建地图
	var myAmapFun = new amapFile.AMapWX({key: 'xxx'});
	console.log("创建了高德地图");
	export default{
		data(){
			return{
				selectIndex:undefined,
				selectAddr:{},
				searchWords:"",
				id: 1, // 使用 marker点击事件 需要填写id
				title: 'map',
				latitude: uni.getStorageSync('mapData').latitude,
				longitude: uni.getStorageSync('mapData').longitude,
				markers: [{
					latitude: uni.getStorageSync('mapData').latitude,
					longitude: uni.getStorageSync('mapData').longitude,
					width:'40rpx',
					height:'60rpx',
					// iconPath: '../../static/tabs/cart-choose.png'
				}],
				dataTips:[],
                fullAddress: {},
				checkOne: false,
				flagClick: false,
				flag: false
			}
		},

13.其余的就是根据UI图来写对应的组件,如:搜索栏,搜索列表什么的,具体需要的方法可以参考高德开放平台手册,获取周边啥啥啥的 基础类-参考手册-微信小程序插件 | 高德地图API

14.对了,wx.getLocation(获取当前位置)这个api建议是开通下,方便用户打开地图就显示用户当前的位置(注意:一定是要在需要使用该功能的页面调用,不然官方会判定违法获取隐私,禁用你的功能,本人已踩过坑,当然,也通过申诉解封,在其他文章也有写,可以去参考下)

15.最终效果如下:

谢谢阅读!有些没写到的重点地方,还请大神指点!抱拳!

### 集成高德地图到微信小程序 要在微信小程序中集成高德地图的功能,可以按照以下方法操作: #### 获取必要的配置参数 在使用高德地图 API 前,需要先完成一些基础准备工作。登录微信开发者平台并进入应用设置页面,从中获取 `appid` 和其他必要信息[^2]。同时,在服务器域名设置部分,需将高德地图的接口地址 `https://restapi.amap.com` 添加至合法域名列表。 #### 调用高德地图服务端接口 由于微信小程序的安全策略限制,无法直接从前端发起跨域请求访问外部资源(如高德地图的服务)。因此建议通过自建服务作为中间层来转发请求。以下是具体实现方式的一个例子: 1. **创建后端代理** 构建一个简单的 HTTP 接口用于接收来自前端的小程序请求并将这些请求转交给高德地图官方API。 下面是一个基于 Node.js 的简单示例代码片段: ```javascript const express = require('express'); const axios = require('axios'); const app = express(); app.get('/amap', async (req, res) => { try { let response = await axios({ method: 'GET', url: 'https://restapi.amap.com/v3/geocode/geo', params: { ...req.query, key: '<your_high_de_map_key>' } }); return res.json(response.data); } catch(error){ console.error(error.message); return res.status(500).send({ error: 'Internal Server Error' }); } }); app.listen(process.env.PORT || 8080, () => { console.log(`Server running on port ${process.env.PORT||8080}`); }); ``` 2. **从小程序调用后端接口** 使用 wx.request 方法向自己的后端发送数据查询请求,并处理返回的结果。 示例代码如下所示: ```javascript wx.request({ url: 'http://<your_server_domain>/amap', // 替换为实际部署好的后端URL data: { address: '北京市海淀区中关村' }, success(res){ console.log(res.data); }, fail(err){ console.error(err.errMsg); } }) ``` 以上过程展示了如何利用高德地图提供的地理编码功能在一个微信小程序项目中的基本流程。需要注意的是,除了地理位置转换外,还有许多其他的实用功能可以通过类似的机制接入进来。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值