一、手机定位原理
手机定位是通过特定的技术来获取移动手机或中断用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的位置的技术或服务。
二、手机定位的方式
1.基于GPS定位,是利用手机的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位,其定位精度较高。
2.基于移动运营网的基站的定位,是利用基站对手机的距离的测算距离来确定手机的位置,不需要手机具有GPS定位功能,但是经度很大程度依赖于基站的分布及覆盖范围的大小,误差会超过一公里。
3.基于Wifi定位,此定位在小范围内定位方式。
三、前端获取定位的坐标有几种方法;
1.通过H5的geolocation的属性:
代码如下:
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(onSuccess , onError);
}else{
alert(“您的浏览器不支持使用HTML 5来获取地理位置服务”);
}
//定位数据获取成功响应
function onSuccess(position){
alert('纬度: ’ + position.coords.latitude + ‘\n’ +
'经度: ’ + position.coords.longitude + ‘\n’ +
'海拔: ’ + position.coords.altitude + ‘\n’ +
'水平精度: ’ + position.coords.accuracy + ‘\n’ +
'垂直精度: ’ + position.coords.altitudeAccura)
}
//定位数据获取失败响应
function onError(error) {
switch(error.code)
{
case error.PERMISSION_DENIED:
alert(“您拒绝对获取地理位置的请求”);
break;
case error.POSITION_UNAVAILABLE:
alert(“位置信息是不可用的”);
break;
case error.TIMEOUT:
alert(“请求您的地理位置超时”);
break;
case error.UNKNOWN_ERROR:
alert(“未知错误”);
break;
}
}
2.通过cordova的插件获取:
** 要安装一个插件,使用如下命令
cordova plugin add cordova-plugin-geolocation
实现代码如下:
document.addEventListener(“deviceready”,onDeviceReady,false);
需要注意的:
我在无网的时候获取经纬度时:由于在办公室内比较封闭,根本就获取不到经纬度坐标(当时自己不知道);在这个问题上一直没纠结了很长时间,以为获取经纬度跟网络有关系呢,其实一点关系都没有,只不过有网络的时候系统会优先使用网络或基站获取,所以大家不要误认为无网络就获取不到经纬度的误区;还有大家可以在手机上下载一个GPStest软件,它可以帮你检测经纬度甚至你所处的位置有几颗卫星都显示出来,很好用。。。
作者:liayn523
来源:CSDN
评论