首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

关于android中gps定位的有关问题

2012-04-06 
关于android中gps定位的问题下面是我写的一个函数private Boolean getLocationInfo(){LocationManager loc

关于android中gps定位的问题
下面是我写的一个函数
private Boolean getLocationInfo() 

  LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
  locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 100, 1, new LocationListener(){

  @Override
  public void onLocationChanged(Location arg0) {
  // TODO Auto-generated method stub
  if(arg0 != null)
  {
  map.this.la = arg0.getLatitude();
  map.this.lo = arg0.getLongitude();
  }
  }

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

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

  @Override
  public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
  // TODO Auto-generated method stub
  }});

  Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
  if(location == null)
  {
  f.ShowToast(map.this, "NETWORK_PROVIDER");
  location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
  }
  if(location != null)
  {
  this.la = location.getLatitude();
  this.lo = location.getLongitude();
  return true;
  }
  else
  return false;
}

遇到一些问题,请教一下大家
1.gps定位不行,都是用的NETWORK(我程序里在走network的时候会有提示)
2.我用手机里的自带的googlemap来定位,就算定位不到,也会定一段时间,而我的程序好像是gps一定位失败马上就用network了,这个延迟函数应该怎么写?
3.network定位很不准确,隔了好几条马路,而同样是手机自带的googlemap的定位在关闭gps后定位基本也是准确的,它是怎么实现的?

谢谢各位

[解决办法]
确实 ,定位是个问题,之前也有高手提到过这方面的解决方案, 但当时没注意。
再次关注吧 , 学习一下
[解决办法]
network定位当然不准,不过如果你离你的无线网络较近时那就还行,

其实定位这个确实有点郁闷,我拿真机跑到外面,定位了好一会才定位到值。
至于你说的“googlemap来定位,就算定位不到,也会定一段时间”,我想可能是上次定位成功过,可能googlemap保存了你当时的经纬度,当gps不可以用时,googlemap会从数据库中读。
这是我的理解,我觉得这是可行的。
开启一个gps service,通过位置侦听,只要gps定位成功,就发一个广播给你,你在处理。
在不能开启gps服务的时候用network来定位。
如果都不行,通过读数据库的历史文件来显示你的路经信息。我想也只能这样了

另外我用真机在真机定位时,gps不可用,但是我走不同方向的时候它的箭头还会在变,我就感觉很奇怪,明明gps不可用,为什么箭头会变,要知道,通过network来定位,位置是不变的,因为无线路由的位置就放那,不可能变的。


大家一起讨论讨论吧
[解决办法]
Google 提供的服务 , 好像在中国地区都有偏差吧 ,而且不小
[解决办法]
google map在中国出于国家信息安全考虑 已经增加了偏离量 所有地图显示不准确。
[解决办法]
你用的什么地图?google map只有卫星图坐标是准确的,行政区图的偏移大约在500米左右
[解决办法]
利用Android自带的Google Maps API,GOOGLE 地图是经过偏移的,而GPS获得的经纬度是准的,所以,GPS点显示在地图上不准的,推荐你用移动GIS开发平台UCMap,我们用过,能很好地解决该问题,推荐你一个移动GIS专业博客http://hi.baidu.com/geochenyj/home
[解决办法]
需要GIS技术支持吗,我们台湾garmin提供世界级的导航支持,当然你们大陆的高德公司也不错

热点排行