繁体   English   中英

在网络与gps提供商之间进行连接

[英]Connecting between the network to the gps provider

我创建了一个应用程序,如果我从上一个位置移了200米,则会每10分钟生成一个位置。 它基于网络和gps提供程序。

我的问题是,如果我在同一地方呆了很多时间,出了点问题。 假设gps提供商生成的位置精度为600,而网络提供商生成的位置精度为800。 我的应用将选择gps提供商,下次gps生成位置的时间将是当我通过200台收音机时,但看起来网络位置会继续生成位置,其中某些位置可能会更准确,然后更改我的位置而我在同一个地方。

这是一个问题,因为在同一地方待几个小时会为我产生位置的语调,而不是1(这是我要的)。

我没有附加代码,因为我猜这是理论上的问题。

编辑代码附件

更新请求:

mLocationManager.requestLocationUpdates(provider, TEN_SECONDS*6*10, TEN_METERS*20, listener);

在位置之间进行选择:

    if(gpsLocation == null || gpsLocation.getAccuracy() > 1000)
    {
        if(!(networkLocation == null || networkLocation.getAccuracy() > 1000))
            location = networkLocation;
    }
    else
        if(networkLocation == null)
        {
            if(gpsLocation.getAccuracy() < 1000)
                location = gpsLocation;
        }
        else
            if(gpsLocation.getAccuracy() < networkLocation.getAccuracy() && gpsLocation.getAccuracy() < 500)
                location = gpsLocation;
            else
                if(networkLocation.getAccuracy() < 1000)
                    location = networkLocation;
    if(location!=null)
    {
        Message.obtain(mHandler,
                UPDATE_LATLNG,
                location.getLatitude() + ", " + location.getLongitude()).sendToTarget();
         if (mGeocoderAvailable) 
            doReverseGeocoding(location);
    }

这里是处理程序:

   mHandler = new Handler() 
    {
        public void handleMessage(Message msg) 
        {
            if(msg.what == UPDATE_ADDRESS)
            {
                LocationService.this.address = (String) msg.obj;
                new SendLocation(LocationService.this.id,(String)msg.obj); //sends location to the db
                LocationService.this.gpsLocation = null;
                LocationService.this.networkLocation = null;
            }
        }
    };

如果您通过GPS供应商获取位置,则该信息会更加准确,因此,如果下次您通过网络供应商获取位置,且相差超过500米,则将该位置存储为值(如果位置小于此值)是由网络提供商给出的,跳过它。 如果该位置由GPS提供,则将其存储为当前位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM