回复
黑皇帝安全网
管理员
管理员
  • 金钱95848枚
  • 威望90274点
  • 贡献值89936点
  • 注册日期2009-09-12
  • 最后登录2019-01-02
  • 荣誉会员
  • VIP会员
  • 社区版主
阅读:1291723回复:821

手机定位软件实现手机号码定位找人

楼主#
更多 发布于:2009-09-20 12:00

 

一、手机定位原理

手机定位是通过特定的技术来获取移动手机或中断用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的位置的技术或服务。

二、手机定位的方式

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);

//Cordova加载完成会触发
function onDeviceReady() {
}

function getCurrentPosition(){
//定位数据获取成功响应
var onSuccess = function(position) {
alert('纬度: ' + position.coords.latitude + '\n' +
'经度: ' + position.coords.longitude + '\n' +
'海拔: ' + position.coords.altitude + '\n' +
'水平精度: ' + position.coords.accuracy + '\n' +
'垂直精度: ' + position.coords.altitudeAccuracy + '\n' +
'方向: ' + position.coords.heading + '\n' +
'速度: ' + position.coords.speed + '\n' +
'时间戳: ' + position.timestamp + '\n');
};

//定位数据获取失败响应
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}

//开始获取定位数据
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}

我在无网的时候获取经纬度时:由于在办公室内比较封闭,根本就获取不到经纬度坐标(当时自己不知道);在这个问题上一直没纠结了很长时间,以为获取经纬度跟网络有关系呢,其实一点关系都没有,只不过有网络的时候系统会优先使用网络或基站获取,所以大家不要误认为无网络就获取不到经纬度的误区;还有大家可以在手机上下载一个软件,它可以帮你检测经纬度甚至你所处的位置有几颗卫星都显示出来,很好用。。。