微信小程序可以通过API获取当前位置的经纬度。
在微信小程序开发文档中可以找到这个API的使用示例。
https://developers.weixin.qq.com/miniprogram/dev/api/location.html
但是需要获取具体地址 如:湖南省长沙市岳麓区****,就需要使用到外部的API(此处用到的是腾讯的位置服务)
这是开发文档 里面有具体步骤和示例 http://lbs.qq.com/qqmap_wx_jssdk/index.html
自动获取地理位置可用于签到,具体实现如下。
一、index.wxml 显示经纬度及地址数据
<!--index.wxml-->
<
view
wx:if=
"{{latitude}}"
mode=
"widthFix"
>纬度:{{latitude}}
</
view
>
<
view
wx:if=
"{{longitude}}"
mode=
"widthFix"
>经度:{{longitude}}
</
view
>
<
view
wx:if=
"{{address}}"
mode=
"widthFix"
>地址:{{address}}
</
view
>
二、index.js 调用API获取数据
//index.js
var QQMapWX
=
require
(
'../../util/qqmap-wx-jssdk.js'
)
//引入获得地址的js文件
var qqmapsdk
;
const app
= getApp
()
Page
({
data
:
{
latitude
:
null
,
longitude
:
null
,
address
:
null
,
},
onLoad
:
function
()
{
this
.getLocation
();
//一进来就得到地址
}
,
getLocation
()
{
var that
=
this
wx
.getLocation
({//调用API得到经纬度
type
:
'wgs84'
,
success
:
function
(res
)
{
var speed
= res
.speed
var accuracy
= res
.accuracy
var latitude
= res
.latitude
var longitude
= res
.longitude
that
.setData
({
latitude
: res
.latitude
,
longitude
: res
.longitude
})
//地址解析
var demo
=
new QQMapWX
({
key
:
'****'
// 这个KEY的获取方式在上面链接 腾讯位置服务的开发文档中有详细的申请密钥步骤
});
demo
.reverseGeocoder
({//地址解析
location
:
{
latitude
: latitude
,
longitude
: longitude
},
success
:
function
(res
)
{
console
.log
(res
);
//获得地址
that
.setData
({
address
: res
.result
.address
})
},
fail
:
function
(res
)
{
console
.log
(res
);
},
complete
:
function
(res
)
{
console
.log
(res
);
}
});
}
})
}
})