function plusReady() {
qddk="定位中...";
qtdk="定位中...";
$("#kqxs").val(0);
map = new plus.maps.Map("map"); //地图显示
map.centerAndZoom(new plus.maps.Point("117.266291", "31.857401"), zoom); //设置地图中心坐标
var marker=new plus.maps.Marker(new plus.maps.Point("117.266291", "31.857401"));
map.addOverlay(marker);
muiajax();
}
// 获取用户的当前位置信息
function getUserLocation() {
map.getUserLocation(function(state, point) {
if(0 == state) {
form.jd.value = point.longitude;//经度
form.wd.value = point.latitude;//纬度
map.showUserLocation( true );
console.log("当前位置:jd="+point.longitude+";wd="+point.latitude);
map.centerAndZoom(point, zoom); //设置地图中心坐标
//map.showUserLocation(true);
plus.maps.Map.reverseGeocode(point, {}, function(event) {
form.dkdz.value = event.address;
},function(error){
var code = error.code; // 错误编码
var message = error.message; // 错误描述信息
console.log(code+","+message);
});
//设置点
//坐标点
var center = new plus.maps.Point(log, lat);//公司坐标点
console.log(JSON.stringify(center)+"\n"+JSON.stringify(point));
plus.maps.Map.calculateDistance(center, point,
function(event) { //计算距离成功
form.dkjl.value = event.distance; //单位米,返回两点
console.log("实际距离:"+event.distance);
var htmlstr = "";
if(parseFloat(event.distance) > parseFloat($("#jl").val())) { //不可打卡
htmlstr += "<i class='mui-icon hits-icon-daka-no'> </i>距考勤点" + (event.distance / 1000).toFixed(2) + "km,不在考勤范围内<br>";
qddk = "不在考勤范围内!";
qtdk = "不在考勤范围内!";
} else { //可打卡
htmlstr += "<i class='mui-icon hits-icon-daka-yes'> </i>已进入考勤范围,可以打卡<br>";
qddk = "";
qtdk = "";
}
$("#dkms").html(htmlstr);
},
function(event) { //计算距离失败
dkxs("计算距离失败");
});
} else {
dkxs("获取定位失败");
}
});
}
10:59:01.263 Distance:910.9691162109375 at page/gz/kq/kq_nq.html:27
这个方法计算的距离是910米,差距太大了吧
看了一下,在百度地图上显示的位置是对的,但获取到当前坐标后,再在百度地图上展示,相差了1公里左右
3 个回复
DCloud_App_Array
var center = new plus.maps.Point(log, lat);//公司坐标点
这里log和lat的值哪里来的?计算距离是需要两个坐标点,并且必须是相同的坐标系,才能获取准确的值。
2***@qq.com (作者)
这个是用百度js地图获取的坐标,存放到数据库的。
我查了一下,发现内置地图是高德地图,现在是打包过后,安卓是正常的,苹果端相差0.9前面,
如果我加上坐标转换,安卓也不正常了
差距也是0.9km
2***@qq.com (作者)
我找到原因了, HbuliderX最新版本内置变成高德地图,现在打包,安卓是正常的,ios打包地图百世内置地图,没有变成百度地图