前言:由于小程序只提供了外面一个获取地理位置、速度的api,并没有获取的相关地位位置的信息等等,因此我们还需要借助一些第三方的api来实现
小程序关于地理位置文档
api:https://developers.weixin.qq.com/miniprogram/dev/api/location.html,
组件:https://developers.weixin.qq.com/miniprogram/dev/component/map.html
实现:
一、使用百度地图的api来获取地理位置的信息
第一步:先去百度开放平台申请akhttp://lbsyun.baidu.com
http://lbsyun.baidu.com/index.php?title=wxjsapi/guide/key
http://lbsyun.baidu.com/apiconsole/key?application=key
第二步:创建应用
第三步:获取密钥(AK)(输入小程序appid)
第四步:在小程序公众平台配置request合法域名(https://api.map.baidu.com)
第五步:下载百度地图api
第六步:在所需的js文件内导入js
// 引用百度地图,注意:require传入一个相对路径 var bmap = require('../../libs/bmap-wx/bmap-wx.js');
第七步:编辑代码
wxml:
<view>
<viwe>经度:{{longitude}}</viwe>
<view>纬度:{{latitude}}</view>
<view>地址:{{address}}</view>
</view>
js:
// 引用百度地图微信小程序JSAPI模块 var bmap = require('../../libs/bmap-wx/bmap-wx.min.js'); var wxMarkerData = []; //定位成功回调对象 Page({ data:{ ak:"FHG7utZtdyXCCAb", //填写申请到的ak markers: [], longitude:'', //经度 latitude:'', //纬度 address:'' //地址 }, onLoad:function(options){ var that = this; /* 获取定位地理位置 */ // 新建bmap对象 var BMap = new bmap.BMapWX({ ak: that.data.ak }); var fail = function(data) { console.log(data); }; var success = function(data) { //返回数据内,已经包含经纬度 console.log(data); //使用wxMarkerData获取数据 wxMarkerData = data.wxMarkerData; //把所有数据放在初始化data内 that.setData({ markers: wxMarkerData, latitude: wxMarkerData[0].latitude, longitude: wxMarkerData[0].longitude, address: wxMarkerData[0].address }); } // 发起regeocoding检索请求 BMap.regeocoding({ fail: fail, success: success }); } })
参考文档:http://www.wxapp-union.com/portal.php?mod=view&aid=1370
二、使用腾讯地图的api来获取地理位置的信息(和百度地图差不太多)
①申请开发者密钥
②下载微信小程序JavaScriptSDK
③设置→开发设置→request:https://apis.map.qq.com
④导入js
⑤编辑代码
参考文档:https://www.jianshu.com/p/f9d1e1e91808
http://lbs.qq.com/qqmap_wx_jssdk/index.html
三、使用高德地图的api来获取地理位置的信息(和百度地图差不太多)
源码参考:https://github.com/brandonxiang/weapp-map