下面是我写的一个函数
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后定位基本也是准确的,它是怎么实现的?谢谢各位

解决方案 »

  1.   

    network定位当然不准,不过如果你离你的无线网络较近时那就还行,其实定位这个确实有点郁闷,我拿真机跑到外面,定位了好一会才定位到值。
    至于你说的“googlemap来定位,就算定位不到,也会定一段时间”,我想可能是上次定位成功过,可能googlemap保存了你当时的经纬度,当gps不可以用时,googlemap会从数据库中读。
    这是我的理解,我觉得这是可行的。
    开启一个gps service,通过位置侦听,只要gps定位成功,就发一个广播给你,你在处理。
    在不能开启gps服务的时候用network来定位。
    如果都不行,通过读数据库的历史文件来显示你的路经信息。我想也只能这样了另外我用真机在真机定位时,gps不可用,但是我走不同方向的时候它的箭头还会在变,我就感觉很奇怪,明明gps不可用,为什么箭头会变,要知道,通过network来定位,位置是不变的,因为无线路由的位置就放那,不可能变的。
    大家一起讨论讨论吧
      

  2.   

    Google 提供的服务 , 好像在中国地区都有偏差吧 ,而且不小
      

  3.   

    google map在中国出于国家信息安全考虑 已经增加了偏离量 所有地图显示不准确。
      

  4.   

    你用的什么地图?google map只有卫星图坐标是准确的,行政区图的偏移大约在500米左右
      

  5.   

    利用Android自带的Google Maps API,GOOGLE 地图是经过偏移的,而GPS获得的经纬度是准的,所以,GPS点显示在地图上不准的,推荐你用移动GIS开发平台UCMap,我们用过,能很好地解决该问题,推荐你一个移动GIS专业博客http://hi.baidu.com/geochenyj/home
      

  6.   

    需要GIS技术支持吗,我们台湾garmin提供世界级的导航支持,当然你们大陆的高德公司也不错
      

  7.   

    楼主,我也需要实现此功能,
    你能把此例子发一份给我email吗  [email protected]  thanks
      

  8.   

    楼主,能把 android中gps定位例子发给我一份嘛,邮箱[email protected] thanks
      

  9.   

    我不是搞android开发的  现在需求说要实现手机访问网站时得到经纬度坐标  尼玛   纠结了好久也没搞定