一 概述

  • 腾讯地图sdk配置
  • 地图全屏显示并将位置定位到当前位置
  • 搜索附近的酒店
  • 显示当前位置的名称
  • 点击GPS图标,回到定位位置

二 腾讯地图sdk配置

2.1 将腾讯地图SDK添加到小程序libs文件夹下(没有先创建)

2.2 用接口测试号(也可以正式号)扫码登录后,绑定合法域名

https://apis.map.qq.com

2.3 初始化SDK(pages/map/map.js)

// 引入SDK核心类
var QQMapWX = require('../../libs/qqmap-wx-jssdk')
// 实例化API核心类
var qqmapsdk = new QQMapWX({key: 'R72BZ-EMTKU-JGKVD-2VXJM-WMHC7-xxxx' // 必填
})

三 地图全屏显示并将位置定位到当前位置

3.1 布局文件(map.wxml)

<map  id="mapId" longitude="{{longitude}}" latitude="{{latitude}}" scale="{{scale}}" show-location>
</map>

3.2 样式文件(map.wxss)

map{height: 100vh;width: 100vw;
}

3.3 逻辑文件(map.js)

  data: {longitude: null, // 地图中心点经度latitude: null, // 地图中心点纬度},onReady: function () {wx.getLocation({type: 'gcj02',success: res => {//console.log(res)this.setData({longitude: res.longitude,latitude: res.latitude,})}})},

3.4 权限设置(app.json)

 "permission": {"scope.userLocation": {"desc": "你的位置信息将用于小游戏位置接口的效果展示"}},

3.5 效果图

四 搜索附近的酒店(markers)

4.1 布局文件(map.wxml)

<map  id="mapId" bindregionchange="bindRegionChange"  longitude="{{longitude}}" latitude="{{latitude}}" markers="{{markers}}" scale="{{scale}}" show-location>
</map>

说明:

  • bindregionchange:当地图视图区域发生变化时调用
  • markers:显示搜索到的标记物

4.2 逻辑文件(map.js)

 data: {scale: '16',markers: null,longitude: null, // 地图中心点经度latitude: null, // 地图中心点纬度},//视野发生变化时触发bindRegionChange: function (e) {//console.log(e)if (e.type === 'end') {this.mapCtx.getCenterLocation({success: res => {this.getHotel(res.longitude, res.latitude)},fail: res => {console.log("搜索失败")}})}},//搜索酒店getHotel(longitude, latitude) {//调用接口qqmapsdk.search({keyword: '酒店',location: {scale: 16,longitude: longitude,latitude: latitude},success: res => {// console.log(res)var mark = []//酒店标记for (let i in res.data) {mark.push({iconPath: '/images/hotel.png',id: parseInt(i),latitude: res.data[i].location.lat,longitude: res.data[i].location.lng,width: 30,height: 30})}//中心点标记mark.push({iconPath: '/images/center.png',id: res.data.length,longitude: longitude,latitude: latitude,width: 15,height: 40})//标记显示this.setData({markers: mark})},fail: res => {console.log(res)}})},

说明:

  • MapContext.getCenterLocation(Object object):获取当前地图中心的经纬度。返回的是 gcj02 坐标系

4.3 效果图

五 显示当前位置的名称

5.1 布局文件(map.wxml)

<map  id="mapId" bindregionchange="bindRegionChange"  longitude="{{longitude}}" latitude="{{latitude}}" markers="{{markers}}" scale="{{scale}}" show-location>
</map>

5.2 样式文件(map.wxss)

cover-view.currentName{text-align: center;background-color: green;padding: 3%;color: white;
}

5.3 逻辑文件(map.js)

data: {scale: '16',markers: null,longitude: null, // 地图中心点经度latitude: null, // 地图中心点纬度currentName: ''},getPositionName(longitude, latitude) {qqmapsdk.reverseGeocoder({location: {latitude: latitude,longitude: longitude},success: res => {//console.log('定位信息', res)this.setData({currentName: res.result.address})},fail: res => {this.setData({currentName: '定位失败'})}})},

5.4 效果图

六 点击GPS图标,回到定位位置

6.1 布局文件(map.wxml)

<map  id="mapId" bindregionchange="bindRegionChange"  longitude="{{longitude}}" latitude="{{latitude}}" markers="{{markers}}" scale="{{scale}}" show-location>
<cover-view class="currentName" marker-id="1">{{currentName}}</cover-view><cover-view class="gps" marker-id="2"><cover-image src="/images/gps.png" bindtap="setPosition"></cover-image></cover-view>
</map>

6.2 样式文件(map.wxss)

cover-view.gps{position: absolute;bottom: calc(5%);right: calc(5%);
}

6.3 逻辑文件(map.js)

 setPosition: function () {// 将地图中心移动到当前定位点this.mapCtx.moveToLocation()}

6.4 效果图

七 参考代码

  • 参考代码

微信小程序开发之——附近酒店-实现(2)相关推荐

  1. 微信小程序开发之——附近酒店-分析(1)

    一 概述 map组件展示地图信息 通过腾讯地图提供的微信小程序javaScript SDK-关键词搜索(酒店)和逆地址解析(精度和纬度获取当前位置名称) 模拟器和真机演示,接口及显示问题 二 腾讯地图 ...

  2. 小程序开发工具_微信小程序开发工具:电商、酒店、展示、文章制作教程

    现在市面上各种微信小程序开发工具已经很多了,类型也不同,很多小白不知道该怎么用.其实如果能够选对智能小程序开发平台,那么开发小程序也可以是很简单的事,不管是什么类型,都能很快生成.接下来我就跟教大家各 ...

  3. 小程序开发代码_快速学会微信小程序开发,无需懂代码!

    现在想要制作自己的小程序的人越来越多,但大多数都不懂任何代码知识,不知该如何制作.其实随着各种第三方开发工具的出现,无需微信小程序开发源代码,小白也能顺利生成一个自己的小程序了.下面我就跟大家说下该如 ...

  4. 微信小程序开发详细步骤解决方案

    什么行业适合使用微信小程序? 01. 什么是微信小程序? 微信内嵌的小程序,不需要下载安装就能使用,具有开发成本低.使用方便等特点,它实现了应用"触手可及",用户通过扫描或搜索就能 ...

  5. 小程序开发工具_有哪些好用的微信小程序开发工具?如何选择?

    小程序对商家和个人的帮助很大,可以为商家导入新的线上流量.那么该如何拥有自己的小程序呢?如果你想自己制作小程序的话,目前有两种方式,一种是使用"微信开发者工具",需要精通代码编程, ...

  6. 微信小程序开发流程的两种方法科普

    现在微信小程序早已渗透我们日常生活的方方面面,很多商家看到了小程序带来的巨大流量,也想开发一个自己的小程序.所以今天就跟大家科普下微信小程序开发流程,你会发现这个开发过程其实非常简单. 1. 在微信公 ...

  7. 小程序发布上线流程_微信小程序开发流程的两种方法科普

    现在微信小程序早已渗透到我们日常生活的方方面面,很多商家看到了小程序带来的巨大流量,也想开发一个自己的小程序.所以今天就跟大家科普下微信小程序开发流程,你会发现这个开发过程其实非常简单. 1. 在微信 ...

  8. 微信小程序开发的完整流程介绍,新手必读

    自从跳一跳小程序游戏出现后,一夜之间,小程序就变得家喻户晓了,功能开发也越来越丰富,在微信搜一搜就会发现许多大品牌早已有自己的小程序了,越来越多的企业和商家都看中了这个风口,想快速开发出一款属于自己的 ...

  9. 微信小程序开发(2)_data属性

    假设我们的环境都做好了,现在我们开始开发自己的小程序 首先我们开发出自己的 Hello World 我们要做的事情是当前点击hello World的时候HelloWorld的颜色发生变化: 这个是我们 ...

最新文章

  1. WindowsServer2003双网卡配置
  2. 漏洞战争软件漏洞分析精要 学习笔记
  3. 踏上Silverlight的征程 体验Silverlight之美
  4. 微软 Azure 再下一城:收购 Kinvolk,改进开源 Linux
  5. CEF与快速交换的比较
  6. realtek audio console无法连接rpc服务_笔记本网络连接图标不见了怎么办?
  7. 计算机信息的应用安全中心在哪,怎么通过windows安全中心扫描出当前具有威胁的应用...
  8. 模式识别与机器学习(国科大2021-2022秋季学期课程)-基础概念及算法
  9. rovio环境配置与测试笔记
  10. html 调用桌面exe程序,如何使用HTML、CSS和JavaScript轻松构建桌面应用程序
  11. c++thread里暂停线程_C语言如何正确的终止正在运行的子线程
  12. 计算机无法找到手机热点,苹果手机个人热点找不到如何解决
  13. python三重积分_蒙特卡罗方法。三重积分。Python。“+”的操作数父级不受支持...
  14. 手机在下载文件时乱码问题
  15. 定时器的几种实现方案
  16. Error 1935 错误!
  17. the remaind barkley posite eggplant
  18. Material Design(1)
  19. VMware虚拟机模拟VxWorks硬件环境
  20. 全国计算机用代码作弊,魔兽争霸3重制版秘籍代码大全 war3作弊指令大全

热门文章

  1. uniapp微信登录报错-100,login:fail [:-1]未能完成操作。(PGWXAPI错误-1。)
  2. 如何使用远程服务器(1)——连接服务器
  3. NO2:设置RedHat Linux下的samba开机启动
  4. 【计算机网络七】查缺补漏
  5. 芯科通信携100G CFP4 QSFP28 参加莫斯科通信展2017
  6. 4、在线blast比对结果解析(保守结构域)
  7. 手把手教你编写Python抢购脚本抢购布洛芬
  8. JAVA开发热部署JRebel+XRebel激活
  9. 用matlab求累次极限,Matlab笔记——数值计算—高数篇015
  10. 屏幕显示密度dpi_华为mate7——修改 DPI 屏幕密度 !可使屏幕在视觉上变得更大...