android 定位

定位方式

 

1、网络定位(network)。前提是必须连上网络:wifi3G2G

 获取到IP地址

 例如:传美版QQ,彩虹版QQ,珊瑚虫版QQ,就有一个功能显示对方的IP

 根据IP显示具体的位置;

 

 原理是建立一个库那个IP地址对应那个地方;早期警方破案就采用此特点;

 

 有局限性:针对固定的IP地址。

 如果手机网或者ip地址是动态分布IP,这个偏差就很大。这种情况是无法满足需求的。

 

2、基站定位(passive)。

 

工作原理:手机能打电话,是需要基站的。手机定位也是用基站的。

手机附近能收到3个基站的信号,就可以定位了。

基站定位有可能很准确,比如基站多的地方;

如果基站少的话就会相差很大。

精确度:几十米到几公里不等;

 

3GPS定位(gps)

A-GPS 使用了卫星定位 需要联网辅助修正位置

需要3颗卫星;

特点是:需要搜索卫星, 头顶必须是空旷的;

 

影响条件:云层、大厦、大树。

 

卫星:美国人、欧洲人的卫星。

北斗:中国的,但没有民用,只是在大巴,战机等使用。

精确度:15米左右

 

 

 

 

1 :获得位置服务

  Criteria criteria = new Criteria();

criteria.setAccuracy(Criteria.ACCURACY_FINE);

String provider = lm.getBestProvider(criteria, true);

 

 LocationManager lm  = (LocationManager) getSystemService(LOCATION_SERVICE);

2: 添加事件

 public void requestLocationUpdates(String provider, long minTime, float minDistance,
            LocationListener listener)

 provider                                     定位方式

minTime                                    位置更新之间的最小时间间隔,单位为毫秒

minDistance                               inDistance位置更新之间的最小距离,在米

LocationListener                       位置发生改变时候触发

criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度 
criteria.setAltitudeRequired(false);//不要求海拔信息 
criteria.setBearingRequired(false);//不要求方位信息 
criteria.setCostAllowed(true);//是否允许付费 
criteria.setPowerRequirement(Criteria.POWER_LOW);//对电量的要求 

 

class  MyLocationListener implements LocationListener{

  //当位置 变化的时候触发
  @Override
  public void onLocationChanged(Location location) {

 // 可以通过location获得 位置相关信息
   String longitude = "经度:" + location.getLongitude() + "\n";
   String latitude = "纬度:" + location.getLatitude() + "\n";
   String accuracy = "精度:" + location.getAccuracy() + "\n";
   
  }

  //状态发生改变时候
  @Override
  public void onStatusChanged(String provider, int status, Bundle extras) {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void onProviderEnabled(String provider) {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void onProviderDisabled(String provider) {
   // TODO Auto-generated method stub
   
  }
  
 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值