如何获得实际位置?

时间:2013-09-09 12:24:53

标签: android gps android-location

我有一个必须获得实际纬度和经度的应用。我正在尝试使用此处发布的代码执行此操作:How do I get the current GPS location programmatically in Android?GPSTracker

问题在于,有时候获取位置的速度太慢,有时会出现过时的位置。我不需要跟踪位置,我只需要在用户按下按钮时获取位置。来自Google的地图应用程序可以如此快速地获取它,我该怎么做?

3 个答案:

答案 0 :(得分:1)

如何使用新推出的融合位置信息提供商作为参考:http://developer.android.com/training/location/retrieve-current.html

public static class MyActivity extends Activity
            implements
                GooglePlayServicesClient.ConnectionCallbacks,
                GooglePlayServicesClient.OnConnectionFailedListener,
                LocationListener {
        private LocationRequest lr;
        private LocationClient lc;
        Location location;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // inflate view
        lr = LocationRequest.create();
        lr.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        lc = new LocationClient(this,
                this, this);
        lc.connect();
    }

    @Override
    public void onLocationChanged(Location location) {
       //Get new Location here.
    }

    @Override
    public void onConnectionFailed(ConnectionResult arg0) {

    }

    @Override
    public void onConnected(Bundle connectionHint) {
        lc.requestLocationUpdates(lr, this);
        // get last Location
        location = lc.getLastLocation();
    }

    @Override
    public void onDisconnected() {

    }
}

答案 1 :(得分:0)

我相信他们使用这个“新”位置api。您可以在这里找到示例代码,以帮助您启动和运行。我在我正在开发的应用程序中使用过它,它运行得非常好。我使用了“平衡”模式。

http://developer.android.com/google/play-services/location.html

答案 2 :(得分:0)

我对此可能不正确,因为我在Android中也是新手。

但据我所知,有三种不同的方式可以找到用户的位置。

  1. 使用Wi-Fi提供商
  2. 使用网络提供商
  3. 使用GPS提供商
  4. 与休息相比,从GPS获取数据的速度非常慢。

    您可以做的是,首先检查网络可用性,如果存在,请从那里获取经度和纬度。

    稍后您可以使用GPS获得更高的准确度。 但最初,从网络获取位置要快得多