?首先尝试的腾讯地图,定位太差了,先?npm install?qqmap-wx-jssdk
// 腾讯地图 获取精度太差
// 获取经纬度
GetLocation(){
let _this = this
uni.getLocation({
type: 'wgs84',//gcj02
success(res) {
// console.log('当前位置的经度:' + res.longitude);
// console.log('当前位置的纬度:' + res.latitude);
// let pos = {
// longitude: 120.716694 ,
// latitude: 30.727476
// }
_this.GetNowCityInfo(res) //获取城市信息
}
});
},
// 获取当前城市信息
GetNowCityInfo(lag) {
let QQMapWX = require('qqmap-wx-jssdk')
let qqmapsdk = new QQMapWX({
key: 'TKUBZ-D24AF-GJ4JY-JDVM2-IBYKK-KEBCU'
})
console.log(lag.longitude + ',' +lag.latitude);
qqmapsdk.reverseGeocoder({
coord_type:1,
get_poi:1,
poi_options: 'policy=2;radius=600;page_size=20;page_index=1', //半径,取值范围 1-5000(米)policy=2 到家场景:筛选合适收货的poi,并会细化收货地址,精确到楼栋;
location: {
longitude: lag.longitude,
latitude: lag.latitude
},
// location: lag.longitude + ',' +lag.latitude,
success(res) {
conosle.log('当前位置信息',res)
if (res.status == 0 && res.message == "query ok") {
let city = res.result.address_component.city;
}
},
fail(err){
console.log(err);
}
})
},
总体来说 会差距偏大 哪怕写死经纬度都会有将近1km的误差,不推荐
高德地图
?先配置html页面,代码如下
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<link rel="stylesheet" href="<%= BASE_URL %>static/index.css" />
</head>
<body>
<!-- 该文件为 H5 平台的模板 HTML,并非应用入口,请勿直接运行此文件。 -->
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>
<div id="app"></div>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=e3a0059760ee625d3b471a7e3f08851b"></script>
</body>
</html>
重启之后在需要定位的页面写
// 高德地图 精准定位
getLocation(){
let mapObj = new AMap.Map('iCenter');
mapObj.plugin('AMap.Geolocation', function () {
let geolocation = new AMap.Geolocation({
enableHighAccuracy: true,//是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
maximumAge: 0, //定位结果缓存0毫秒,默认:0
convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
showButton: true, //显示定位按钮,默认:true
buttonPosition: 'LB', //定位按钮停靠位置,默认:'LB',左下角
buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true
showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true
panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true
zoomToAccuracy:true //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
});
mapObj.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(geolocation, 'complete', function(res){
console.log('返回定位信息',res);
});//返回定位信息
AMap.event.addListener(geolocation, 'error', function(err){
console.log('返回定位出错信息',err);
});//返回定位出错信息
});
},
?会定位的很准
|