这两天终于解决了这个GPS室内定位的问题,速度控制在3s以内,采用了百度的移动地图api,定位的思路是,先采用GPS定位,如果GPS无法获取,就采用NET_WORK进行定位,如果net_work无法获取,就采用基站定位,综合这三种方式,一定可以获取你当前所在为位置的经纬度的!

解决方案 »

  1.   

    我做了一个监听gps事件  但是没有时时更新
    lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    currentLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    updateView(currentLocation);
     
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0,gpsListener);
     private LocationListener gpsListener = new LocationListener() {
     /**
     * 位置信息变化时触发
     */
    @Override
    public void onLocationChanged(Location location) {
    if (isBetterLocation(location, currentLocation)) {
    currentLocation = location;
    updateView(location);
    Toast.makeText(context, "位置信息变化时触发", Toast.LENGTH_LONG).show();

    }
    /**
     * GPS禁用时触发
     */
    @Override
    public void onProviderDisabled(String provider) {
    updateView(null);
    }
    /**
     * GPS开启时触发
     */
    @Override
    public void onProviderEnabled(String provider) {
    Location location = lm.getLastKnownLocation(provider);
    updateView(location);
    }
    /**
     * GPS状态变化时触发
     */
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {


    };
    怎么解决
      

  2.   

    我也是采用这种方法,优先采用gps定位,但是出现了一个问题,由室外到室内,gps定位经纬度显示正常但是显示的却是上次定位的经纬度,怎么监听它由室外到室内,需要采用网络定位呢?
      

  3.   

    我怎么才能判断GPS没有获取到坐标呢?