一、获取密钥

进入百度开放平台官网,点击右上角“API控制台”,注册成为百度地图开发者。

进入控制台,创建一个新应用。填写相应信息时,应用类型选择【微信小程序】,APPID填写小程序开发者ID。

点击提交后,即可在查看应用页面看到申请成功的密钥(AK)。

二、引入JS模块

在项目根目录下新建一个路径,下载百度地图微信小程序JavaScript API,解压后的文件中有 bmap-wx.js 文件(压缩版 bmap-wx.min.js ),将其拷贝到新建的路径下,安装完成。

三、设置请求合法域名

登录微信公众平台-> “开发” -> “开发管理” -> ”开发设置“-> “服务器域名”-> “request 合法域名” ->添加 https://api.map.baidu.com-> 点击"保存并提交"

打开开发者工具 -> “项目配置” -> 点击"刷新",合法域名设置同步完成

四、使用示例——地址解析

将结构化地址(省/市/区/街道/门牌号)解析为对应的经纬度坐标。主要方法:BMapWX对象的geocoding(geocodingParam: Object)

wxml代码:

<view class="map_container"> <map class="map" id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" show-location="true" markers="{{markers}}" bindmarkertap="makertap"></map>
</view>
<view class="rgc_info"> <view>经度:{{longitude}}</view><view>纬度:{{latitude}}</view>
</view>
<view><input placeholder="输入关键字" type="text" value="{{searchText}}"bindinput="handleInputChange"/><button bindtap="search">搜索</button>
</view>

js代码:

// 引用百度地图微信小程序JSAPI模块
var bmap = require('../../libs/bmap-wx.js'); //bmap-wx.js文件存放路径
var wxMarkerData = [];
Page({ data: {BMap: null,searchKeyword: '',markers: [], latitude: '', longitude: '', rgcData: {} }, onLoad: function() { // 新建百度地图对象 this.data.BMap = new bmap.BMapWX({ ak: 'xxx' //百度地图密钥}); this.toSearch("北京")},handleInputChange: function (e) {this.data.searchKeyword = e.detail.value},search: function () {this.toSearch(this.data.searchKeyword)},toSearch: function (keyword) {let that = this;//重要,必须let fail = function(data) { console.log(data)};let success = function(data) { wxMarkerData = data.wxMarkerData; that.setData({ markers: wxMarkerData }); that.setData({ latitude: wxMarkerData[0].latitude }); that.setData({ longitude: wxMarkerData[0].longitude }); } // 发起geocoding检索请求 that.data.BMap.geocoding({ address: keyword, fail: fail, success: success, iconPath: '../../img/marker_red.png', iconTapPath: '../../img/marker_red.png' }); }
})

wxss代码

.map_container{ height: 420px; width: 100%;
} .map { height: 100%; width: 100%;
}.rgc_info {padding: 5px;
}
.rgc_info {display: block;
}

效果:

五、功能汇总

  1. POI检索:搜索附近的美食、酒店。

    方法:search(searchParam: Object)

    参数 searchParam: Object 对象结构

    属性名 类型 是否必须 描述
    location string 经纬度例如:39.915,116.404 默认值为当前定位点
    iconPath string 小程序marker图标
    iconTapPath string 小程序点击后图标
    width number marker宽,默认为图片宽度
    height number marker高,默认为图片高度
    alpha number marker透明度,默认为1
    query string 检索关键字,默认为生活服务、美食、酒店
    success Function(searchSuccess) 检索成功后回调回调函数
    fail Function(searchFail) 检索失败后回调函数

    注:其他参数和Place API请求参数一致。

  2. POI检索词联想:供匹配输入关键字的辅助信息数据,返回关键字类的相关结果。

    方法:suggestion(suggestionParam: Object)

    参数 suggestionParam: Object 对象结构

    属性名 类型 是否必须 描述
    success Function(suggestionSuccess) 检索成功后回调函数
    fail Function(suggestionFail) 检索失败后回调函数

    注:其他参数和Place Suggestion API请求参数一致。

  3. 地址解析:将结构化地址(省/市/区/街道/门牌号)解析为对应的经纬度坐标。比如将"北京市海淀区上地十街10号"转化为"116.30051,40.0511"。当然,地址结构越完整,地址内容越准确,解析的坐标精度也会越高。

    方法:geocoding(geocodingParam: Object)

    参数 geocodingParam: Object 对象结构

    属性名 类型 是否必须 描述
    address string 待解析地址,如"北京市海淀区上地十街10号"
    iconPath string 小程序marker图标
    iconTapPath string 小程序点击后图标
    width number marker宽,默认为图片宽度
    height number marker高,默认为图片高度
    alpha number marker透明度,默认为1
    success Function(geocodingSuccess) 检索成功后回调函数
    fail Function(geocodingFail) 检索失败后回调函数

    注:其他参数和Geocoding请求参数一致。

  4. 逆地址解析:根据经纬度获得对应的地理描述信息,默认对当前定位后的坐标进行解析,也可以在调用时指定经纬度进行解析。

    方法:regeocoding(regeocodingParam: Object)

    参数 regeocodingParam: Object 对象结构

    location string 要解析的经纬度例如:39.915,116.404 默认值为当前定位点
    iconPath string 小程序marker图标
    iconTapPath string 小程序点击后图标
    width number marker宽,默认为图片宽度
    height number marker高,默认为图片高度
    alpha number marker透明度,默认为1
    success Function(regeocodingSuccess) 检索成功后回调函数
    fail Function(regeocodingFail) 检索失败后回调函数

    注:其他参数和Geocoding请求参数一致。

更多详情参考:微信小程序JavaScript API | 百度地图API SDK (baidu.com)

官方类参考和Demo:GitHub - baidumapapi/wxapp-jsapi: 百度地图微信小程序jsapi

六、其他注意事项

  • 小程序获取定位可能需要授权,定位提示:微信小程序getLocation 需要在app.json中声明permission字段

    解决方法:

    在app.json文件中进行添加下面配置

    "permission":{"scope.userLocation": {"desc": "是否允许小程序获取位置信息?"}
    }
    

    参考;微信小程序getLocation 需要在app.json中声明permission字段_但许星辰静月的博客-CSDN博客_getlocation需要在app.json中声明

  • 官方开发指南中还有天气查询功能,经测试该方法不可用,在github更新日志中有一条:

    2020.09:由于ak鉴权限制,小程序端jsapi暂不支持天气服务,可以通过webAPI天气服务调用。

在小程序中使用百度地图相关推荐

  1. php 嵌入手机百度地图,C# 程序中嵌入百度地图

    本例是对WinForm中使用百度地图的简要介绍.百度地图目前支持Android开发,IOS开发,Web开发,服务接口,具体可以参照'百度地图开放平台'. [动态加载百度地图]涉及到的知识点:WebBr ...

  2. 小程序中使用高德地图

    小程序中使用高德地图: 第一步:申请高德地图的秘钥,https://lbs.amap.com/api/wx/summary/ 按照官网这个步骤来就行. 第二步:注册完之后下载amap-wx.js这个j ...

  3. 微信小程序城市定位(百度地图API)

    概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...

  4. api 定位 微信小程序 精度_微信小程序城市定位(百度地图API)

    概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...

  5. 微信小程序加载百度地图

    1:申请百度地图服务的ak,(个人感觉浏览器和小程序类型没区别,甚至浏览器比小程序更好) 2:配置地图服务,微信小程序开发平台,设置开发设置 3:小程序里添加地图服务的js文件bmap-wx.min. ...

  6. uni-app 微信小程序中关于 map 地图使用案例分享

    这篇文章,我将带领大家使用微信内置地图详细讲解关于如何配置地图.打开地图和使用地图. 目录 1.配置地图 2.先写页面内,这里我创建了一个 map示例页面 mapDemo.vue 2.1 关于 map ...

  7. 微信小程序报错百度地图API 报错 “APP 服务被禁用“

    最近开发微信小程序时,想使用百度地图制作定位功能,结果一直报错"APP服务被禁用",查了好多资料都不行,改成服务端也不行,终于,我在参考了以下这位大佬的博客之后成功用上了百度地图. ...

  8. 微信小程序中调用百度翻译API(出现的错误54001 52003)

    我自己的54001: appid 和key出现错误, 先用的是百度提供的模板appid 及key 然后一直报错  之后用其它的appid 和key后能够正常运行 52003:这个需要自己申请一个app ...

  9. 记录在小程序中前端调用百度 Ocr 识别身份证信息

    微信小程序因为业务扩展需要用户身份证信息,这里记录一下在小程序中通过百度ocr识别的一个开发过程记录. 1. 注册百度云账号 首先,我们要去百度云注册个账号,百度云注册 ,已经注册过可以忽略这部.注册 ...

  10. 微信小程序:高德地图在小程序中的实践(含静态地图)

    前言 前人栽树,后人乘凉.记录下工作的点点滴滴,让同道中人少走弯路~ 来看看需求和问题:房产相关的项目,详情中需要显示房源地址,底部要有固定的菜单(不是tabbar),房源数据过多,数据超过一屏时,m ...

最新文章

  1. 分布式概念-分布式事务,并发处理协议
  2. dfs题目这样去接题,秒杀leetcode题目
  3. java compareto date_int compareTo(Date anotherDate)
  4. 使用netstat命令查看端口的使用情况
  5. PHP的- = :: self $this
  6. CodeForces - 1419E Decryption(质因子分解+构造)
  7. Spark Streaming实时数据分析
  8. .NET编译工具(每日构建或自动化编译)
  9. USB 转 RS-485 / 422 接口转换器
  10. Google Play Academy 组队 PK 赛,正式开赛!
  11. c语言1GB转成B,2018职称计算机考试WPS_Office精选习题9
  12. 乐乐课堂_leleketang.com
  13. 机械臂规划----三次样条曲线
  14. 天河CAD2012打开服务器文件,AutoCAD无法启动,或启动中途闪退
  15. 银联在线php支付接口,ecshop银联在线支付接口插件(官方版)
  16. Java - 文件下载输出到浏览器
  17. 实验(三):单片机I/O口实验-模拟开关灯
  18. [ASP.NET网站开发] web程序设计,期末作业,问卷填写与学生选课管理系统(超简单,容易懂!课程考核必过)(使用内置数据库)
  19. Android屏幕适配之百分比布局LinearLayout、RelativeLayout、FrameLayout
  20. 基于豹子捕猎的函数寻优算法

热门文章

  1. 开箱:阿里技术人在读什么书?
  2. LEACH路由协议MATLAB仿真代码
  3. 绝对靠谱安全的论文免费安全查重检测重复率网站
  4. bpsk调制rician_fading信道的simulink仿真
  5. 图书信息管理系统需求分析
  6. IDA install keystone
  7. 考研数二高数基础笔记
  8. 以4%参数量比肩GPT-3!Deepmind 发布检索型 LM,或将成为 LM 发展新趋势!?
  9. eviews建立时间序列模型_如何用eviews分析时间序列(全面).pdf
  10. 代码开源为黑客敞开了大门