博客简介

本篇博客介绍如何调用微信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相关推荐

  1. 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

    之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...

  2. Android开发:基于原生API获取位置信息、卫星信号个数及参与定位的卫星个数

    目录 概述 权限申请及开启GPS 调用原生API进行定位 获取设备收到的卫星信号个数 获取用于定位的卫星信号个数 成果图 概述 最近在做室内外无缝定位的相关demo,室外定位中,GNSS定位方法具有精 ...

  3. java 微信 百度地图_[Java教程]H5微信通过百度地图API实现导航方式二

    [Java教程]H5微信通过百度地图API实现导航方式二 0 2017-08-01 23:53:20 要有服务器才行哦 body, html {width: 100%;height: 100%;mar ...

  4. 微信小程序开发之获取用户信息

    环境 微信开发者工具 Stable 1.06.2303220 云开发控制台 v1.5.47 用户的openid和头像名称信息 openid 是小程序用户的唯一标识.注意, openid 并不是微信用户 ...

  5. 微信小程序开发:获取位置打开地图

    目录 01 准备工作 02 小程序基础知识 微信小程序的四种类型的文件 app.json app.js app.wxss app.wxml 目录树 03 获取位置打开地图 参考 效果 程序说明 04 ...

  6. 微信小程序 open-type=“getUserInfo“ 获取用户信息失败 @杨章隐

    open-type="getUserInfo" 获取用户信息失败open-type="getUserInfo" 获取用户信息"微信用户"op ...

  7. 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例

    利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: var map; var gpsPoint; var baiduPoint; ...

  8. python批量爬取小网格区域坐标系_Python爬虫实例_利用百度地图API批量获取城市所有的POI点...

    上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步: 1.设置请求参数(url,headers,co ...

  9. 微信小程序使用高德API获取位置信息

    //调用方法app.getAmapLocation().then((res) => {console.log(res);}); var amapFile = require('static/js ...

最新文章

  1. vscode使用教程python-VSCode下好用的Python插件及配置_python
  2. HDU 4031 Attack (线段树)
  3. java高并发(六)线程安全性
  4. 基于wemos D1的无线遥控灯(433m无线模块)
  5. testNG之组测试
  6. Django学习总结①
  7. 游戏编程所需要的知识
  8. 重装系统后电脑只剩下C盘怎么办?怎样给电脑磁盘分区增加盘符?
  9. 一个字由两个字节组成
  10. ThoughtWorks培训感想
  11. 让生活服务“说到做到”,美团语音应用平台的底气在哪里?
  12. 我总结了五种常用聚类分析算法,推荐收藏
  13. Vue Element正则验证(所有)
  14. shp文件中polyline是什么_polyline怎么读用法大全_polyline是什么意思
  15. 华为云服务器快速迁移方案(最多十几分钟)
  16. Selenium-淘宝登录
  17. 运维同学,你们公司的运维团队有多少人?
  18. 快钱 支付 php,GitHub - laraveler/omnipay-99bill: 基于Omnipay的快钱支付SDK
  19. python是神马?
  20. 【excel】向左匹配之vlookup、index+match、lookup

热门文章

  1. ISO9000年检记录_2014年
  2. matlab画分形图的具体思路,分形几何中一些经典图形的Matlab画法
  3. 面试技巧之----反向面试
  4. 错误:compatible versions of theorg.hibernate.cfg.annotations.EntityBinder and javx.persistence.Table冲突
  5. 1068: 二进制数 Python
  6. java游戏孙悟空上网吧_悟空模式-java-单例模式
  7. 临界时间节点外卖业务订单如何处理订单
  8. 小程序底部tabBar购物车右上角增加数字
  9. 【uni-app】底部tabbar导航栏右上角添加数字标记
  10. 数字监控系统与模拟监控系统的区别