前言:由於小程序只提供了外面一個獲取地理位置、速度的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