由于微信小程序中并没有提供API让我们去直接获得定位城市信息,我们能直接获取到的就只有经纬度。
我们可以使用其他第三方地图服务可以来实现,比如腾讯地图或百度地图的API。
【腾讯地图】
以腾讯地图为例,我们可以去注册一个账号,然后在它的管理后台创建一个密钥(key)。
然后在顶部菜单里面,可以找到WebServiceAPI菜单:
http
.getLocation
=
function
(o
)
{
var latitude
= wx
.getStorageSync
(
'latitude'
);
var longitude
= wx
.getStorageSync
(
'longitude'
);
if
(latitude
==
undefined
|| latitude
==
''
)
{
wx
.getLocation
({
type
:
'wgs84'
,
success
:
function
(res
)
{
latitude
= res
.latitude
;
longitude
= res
.longitude
;
wx
.setStorage
({
key
:
"latitude"
,
data
: latitude
});
wx
.setStorage
({
key
:
"longitude"
,
data
: longitude
})
// 回调
wx
.request
({
url
:
'https://apis.map.qq.com/ws/geocoder/v1/?location=
39.984154,116.307490&key=6YKBZ-32CWK-42MJX-AA7RU-NIEL3-7SBOO'
,
header
:
{
'Content-Type'
:
'application/json'
},
method
:
"GET"
,
success
: res
=>
{
console
.log
(res
)
if
(res
.data
.status
==
0
)
{
wx
.setStorageSync
(
'location'
, res
.data
.result
.address_component
.city
)
o
.that
.setData
({
location
: res
.data
.result
.address_component
.city
})
}
},
fail
: res
=>
{
console
.log
(res
)
}
})
}
})
}
}