uni-app - 小程序使用高德地图完整版

🍉功能描述

页面自动通过定位获取用户位置并展示周边POI数据,同时支持关键词输入实时联想推荐关联地点信息,
实现精准智能的地点发现与检索功能。

🍉效果

在这里插入图片描述

🍉开发环境

unibest 2.5.4
node v18.20.5
pnpm 9.14.2
wot-design-uni ^1.7.1

开发之前一定要申请高德开放平台小程序key
在这里插入图片描述

🍉代码部分

### 使用 Uni-app 集成高德地图功能 #### 创建项目结构并初始化配置 为了在 Uni-app 中集成高德地图,需先创建一个新的 Uni-app 项目,并确保已安装最新版本的 HBuilderX 或其他支持工具。接着,在 `manifest.json` 文件中的 AppID 字段填写微信小程序对应的 AppID。 #### 获取 API Key 并设置合法域名 前往 [高德开放平台](https://lbs.amap.com/) 注册账号并申请 Web服务API key[^3]。完成注册后,登录微信公众平台的小程序后台,在 **开发管理 -> 开发设置** 页面下的 "request 合法域名" 添加项中加入 https://restapi.amap.com/ ,以便允许应用向高德服务器发起请求获取地理数据和服务。 #### 编写页面布局与样式 定义一个简单的 HTML 结构用于展示地图容器: ```html <template> <view class="container"> <!-- 地图显示区域 --> <map id="myMap" :latitude="latitude" :longitude="longitude"></map> <!-- 控制按钮和其他交互元素可以放在这里 --> </view> </template> <style lang="scss" scoped> @import './styles/map'; .map_container { position: absolute; top: 0; bottom: 80px; left: 0; right: 0; } </style> ``` 注意这里引入了一个外部 SCSS 文件来处理样式细节[^4]。 #### 实现核心逻辑 接下来编写 JavaScript 来控制地图行为和响应用户操作: ```javascript export default { data() { return { mapCtx: null, longitude: '', // 经度 latitude: '' // 纬度 }; }, onLoad(options) { this.getLocation(); }, methods: { getLocation(){ const that = this; // 调用微信内置接口获得当前位置坐标 uni.getLocation({ type:'gcj02', // 返回国测局加密后的坐标系 success(res){ that.latitude=res.latitude; that.longitude=res.longitude; // 初始化 map context 对象并与视图层关联起来 that.mapCtx=uni.createMapContext('myMap',this); // 可在此处继续执行更多基于位置的操作... }, fail(err){ console.error("Failed to get location:", err); } }); } } } ``` 上述代码片段展示了如何利用 `uni.getLocation()` 方法取得用户的当前地理位置信息,并将其赋值给组件的数据属性;之后再通过 `uni.createMapContext()` 函数实例化 Map Context 对象,从而能够在后续实现更复杂的功能如标记点位、路线规划等[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kingsaj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值