小程序通过API获取位置信息 微信API 百度地图API
博客简介
本篇博客介绍如何调用微信API获取经纬度,如何调用百度地图API获取实物位置
- 微信API获取经纬度信息
- 百度地图API获取实物位置
微信小程序获取经纬度
微信提供了获取当前设备经纬度的API,我们可以方便的用调用API获取当地的经纬度坐标,找到微信官方文档获取API参数信息:
wx.getLocation(Object object)调用前需要 用户授权 scope.userLocation
获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。开启高精度定位,接口耗时会增加,可指定 highAccuracyExpireTime 作为超时时间。
参数信息
回调函数
示例代码
wx.getLocation({type: 'wgs84',success (res) {const latitude = res.latitudeconst longitude = res.longitudeconst speed = res.speedconst accuracy = res.accuracy}
})
- 实际调用:
我们可以定义一个getLocation函数,在内部直接调用API即可,最后在onloadfunction中调用getLocation
Page({onLoad: function () {var that=this;//console.log("load");that.getLocation();},//获取坐标getLocation:function(){var that=thiswx.getLocation({type: 'wgs84',success(res) {const latitude = res.latitudeconst longitude = res.longitudeconsole.log("经纬度" + latitude + ":" + longitude);}})}})
注意:getLocation调用前需要 用户授权 scope.userLocation,也就是说我们还要在app.json中加上一行:
"permission": {"scope.userLocation": {"desc": "小德气象将获取您的位置信息以展示当地天气"}},
百度地图获取实物位置
微信API定位目前仅支持 gcj02 坐标,如果想要获取当前的实物位置,比如说小区,门牌号等等,还使用第三方服务进行逆地址解析时,在这里我们选用百度地图,获取方法如下:
- 注册百度地图开发者账号
- 创建一个应用
- 找到Geocoder逆地理编码服务
- 代码调用
(1)创建百度地图开发者账号
获取账号和创建QQ号一样简单,这里是官方地址http://lbsyun.baidu.com/
(2)创建一个应用
在获取开发者账号后需要用到百度地图的服务,因此我们需要先创建一个应用:
- 找到应用管理
- 应用名称,应用类型
- 创建微信小程序的时候回有一个APP ID我们从微信官方的开发设置中获取APP ID然后将APP ID填入文本框
- 创建成功后会有一个应用的访问AK,这个AK将在调用API的时候作为必填参数
(3)我们找到服务文档中的Web服务API,从中找到逆地理编码服务 - 开发文档
- 服务接口
- Web服务API
- 正逆地理编码
- 全球逆地理编码
- 找到接口url
(4)发送request请求来调用API,获取位置信息
- 在微信的开发设置中的request请求中填入API的域名
- 通过发送request请求来调用API,获取位置信息
设置request请求来获取位置信息,我们可以设置一个getCity函数获取城市位置信息:
getCity: function (latitude, longitude){var that=thisvar url= "https://api.map.baidu.com/reverse_geocoding/v3/";var struct={location: latitude+ "," +longitude,ak: "amH0AbevGXZMHeGGIWgEPeVcmiVhGz9k",output:"json"}wx.request({url: url,data: struct,success: function(res) {console.log(JSON.stringify(res));var city = res.data.result.addressComponent.city;//获取城市信息that.setData({city:city,})//获取天气that.getWeather(city);},fail: function(res) {},complete: function(res) {},})},
这样我们就能顺利根据经纬度信息来获取实物地址了:
将json代码格式化
将Jason转化可以下载JsonView转化工具或者直接在网页上转化,地址为JsonView
这样我们填入json代码就能格式化了:
小程序通过API获取位置信息 微信API 百度地图API相关推荐
- 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)
之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...
- Android开发:基于原生API获取位置信息、卫星信号个数及参与定位的卫星个数
目录 概述 权限申请及开启GPS 调用原生API进行定位 获取设备收到的卫星信号个数 获取用于定位的卫星信号个数 成果图 概述 最近在做室内外无缝定位的相关demo,室外定位中,GNSS定位方法具有精 ...
- java 微信 百度地图_[Java教程]H5微信通过百度地图API实现导航方式二
[Java教程]H5微信通过百度地图API实现导航方式二 0 2017-08-01 23:53:20 要有服务器才行哦 body, html {width: 100%;height: 100%;mar ...
- 微信小程序开发之获取用户信息
环境 微信开发者工具 Stable 1.06.2303220 云开发控制台 v1.5.47 用户的openid和头像名称信息 openid 是小程序用户的唯一标识.注意, openid 并不是微信用户 ...
- 微信小程序开发:获取位置打开地图
目录 01 准备工作 02 小程序基础知识 微信小程序的四种类型的文件 app.json app.js app.wxss app.wxml 目录树 03 获取位置打开地图 参考 效果 程序说明 04 ...
- 微信小程序 open-type=“getUserInfo“ 获取用户信息失败 @杨章隐
open-type="getUserInfo" 获取用户信息失败open-type="getUserInfo" 获取用户信息"微信用户"op ...
- 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例
利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: var map; var gpsPoint; var baiduPoint; ...
- python批量爬取小网格区域坐标系_Python爬虫实例_利用百度地图API批量获取城市所有的POI点...
上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步: 1.设置请求参数(url,headers,co ...
- 微信小程序使用高德API获取位置信息
//调用方法app.getAmapLocation().then((res) => {console.log(res);}); var amapFile = require('static/js ...
最新文章
- vscode使用教程python-VSCode下好用的Python插件及配置_python
- HDU 4031 Attack (线段树)
- java高并发(六)线程安全性
- 基于wemos D1的无线遥控灯(433m无线模块)
- testNG之组测试
- Django学习总结①
- 游戏编程所需要的知识
- 重装系统后电脑只剩下C盘怎么办?怎样给电脑磁盘分区增加盘符?
- 一个字由两个字节组成
- ThoughtWorks培训感想
- 让生活服务“说到做到”,美团语音应用平台的底气在哪里?
- 我总结了五种常用聚类分析算法,推荐收藏
- Vue Element正则验证(所有)
- shp文件中polyline是什么_polyline怎么读用法大全_polyline是什么意思
- 华为云服务器快速迁移方案(最多十几分钟)
- Selenium-淘宝登录
- 运维同学,你们公司的运维团队有多少人?
- 快钱 支付 php,GitHub - laraveler/omnipay-99bill: 基于Omnipay的快钱支付SDK
- python是神马?
- 【excel】向左匹配之vlookup、index+match、lookup
热门文章
- ISO9000年检记录_2014年
- matlab画分形图的具体思路,分形几何中一些经典图形的Matlab画法
- 面试技巧之----反向面试
- 错误:compatible versions of theorg.hibernate.cfg.annotations.EntityBinder and javx.persistence.Table冲突
- 1068: 二进制数 Python
- java游戏孙悟空上网吧_悟空模式-java-单例模式
- 临界时间节点外卖业务订单如何处理订单
- 小程序底部tabBar购物车右上角增加数字
- 【uni-app】底部tabbar导航栏右上角添加数字标记
- 数字监控系统与模拟监控系统的区别