请先看微信小程序关于定位的API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/location.html#wxgetlocationobject可以看到:小程序 ...
请先看微信小程序关于定位的API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/location.html#wxgetlocationobject
可以看到:小程序只提供了一个获取地理位置、速度的api,并没有关于地位位置的信息等,因此需要借助一些第三方的api来实现。
实现方法一:百度地图API
1.登录百度开放平台并申请AK,填写相关信息。
2.在项目根目录下新建一个路径,下载百度地图微信小程序JavaScript API,解压后得到 bmap-wx.js 文件(解压后有bmap-wx.js和bmap-wx.min.js两种文件,考虑到轻量化,建议用压缩版的bmap-wx.min.js),将其拷贝到新建的路径下,完成。
3.设置请求合法域名
登录微信公众平台-> "设置" -> "开发设置" -> "request 合法域名" ->添加 api.map.baidu.com -> 点击"保存并提交",如图所示:
打开开发者工具 -> "项目" -> 点击"刷新",合法域名设置同步完成。
4. 使用:
[javascript] view plain copy
var app = getApp()
// 引用百度地图微信小程序JSAPI模块
var bmap = require('../../utils/bmap-wx.js');
var wxMarkerData = []; //定位成功回调对象
Page({
/**
* 页面的初始数据
*/
data: {
ak: "。。。", //填写申请到的ak
markers: [], //地图标记
longitude: '', //经度
latitude: '', //纬度
address: '', //地址
business: {}, //商圈
desc:'' , //描述
},
onLoad: function (options) {
console.log("定位");
var that = this;
//新建百度地图对象
var BMap = new bmap.BMapWX({
ak: that.data.ak
});
var success = function(data){
console.log(data);
wxMarkerData = data.wxMarkerData;
that.setData({
markers:wxMarkerData,
latitude: wxMarkerData[0].latitude,
longitude:wxMarkerData[0].longitude,
address:wxMarkerData[0].address,
business: wxMarkerData[0].business,
desc: wxMarkerData[0].desc,
city: wxMarkerData[0].title,
});
}
var fail = function(data){
console.log(data);
}
BMap.regeocoding({
fail:fail,
success:success
});
},
})
[html] view plain copy