如何在Android应用上获得准确的纬度和经度坐标?

时间:2015-09-04 07:41:57

标签: android google-maps

我正在开发一个基于地图视图的应用程序并获取经度和经度,并在地图上显示使用google api绘制路线。当我在路上尝试应用程序(带自行车)时,错误的纬度和经度意味着获得方向和路线就像一个圆圈。

我想在Android应用上确定纬度和经度坐标。

我用于定位的Bellow代码。

public Location getLocation() {
    try {
        locationManager = (LocationManager) this.getApplicationContext().getSystemService(LOCATION_SERVICE);
        // getting GPS status
        isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        // getting network status
        isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        if (!isGPSEnabled && !isNetworkEnabled) {
            Toast.makeText(this, "Youe GPS service is not enabled",Toast.LENGTH_SHORT).show();
        } else {
               if (isNetworkEnabled) {
                locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,GPS_TIME_INTERVAL,GPS_DISTANCE, this);
                Log.d("Network", "Network");
                if (locationManager != null) {
                    location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                    if (location != null) {
                        latitude = location.getLatitude();
                        longitude = location.getLongitude();
                    }
                 }
              }
          else if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,GPS_TIME_INTERVAL,GPS_DISTANCE, this);
                        Log.d("GPS Enabled", "GPS Enabled");
                        if (locationManager != null) {
                            location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        } 
                    }
                }
           if(location != null)
            persistLocation(location);
            stopUsingGPS();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return location;
}

2 个答案:

答案 0 :(得分:1)

首选Google Play Service Location Api优于Android框架位置Api。

它具有比旧版本更多的功能。

答案 1 :(得分:0)

使用Google Play服务位置Api,我们将获得经度和纬度。 但是您不会得到确切的纬度和经度,它每秒都会变化。