2013-07-17 29 views
0

是否有可能通过“GPS”在改变其像3-4英尺的非常短距离的位置后获得用户的精确纬度和经度。通过GPS在Android上查找当前位置

其实我已经在android中创建了一个应用程序,它给了我一个用户的经度和纬度,但它改变了它在用户的同一个点或位置上的值。

请帮我解决这个问题。 在此先感谢。

+0

请参阅[here](http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/) –

回答

0

我的经验说,这取决于手机/设备使用的是,如果你的设备支持AGPS然后让GPS坐标会更容易和快速(没有相关的您编码技巧,因为您将使用android SDK)。普通的GPS也会返回准确的数据,尝试从谷歌播放下载Savaari应用程序,它的作用就像魅力,你的第二个问题是可以在特定的时间或距离间隔后获得坐标,当你注册你的列表程序时,你必须提供时间和距离(以米为单位)之后,您想要接收GPS值。

看看这个片断: -

public void startReadingGPS(int readAfterMinimumTime, int readAfterMinimumDistance){ 
     locationManager = (LocationManager)mContext.getSystemService(Context.LOCATION_SERVICE); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, readAfterMinimumTime, readAfterMinimumDistance, this); 
    } 

公共无效requestLocationUpdates使用指定供应商(字符串提供商,长minTime,浮minDistance才会,LocationListener的侦听器) 在API级别1 注册位置更新,并待决意图。

有关如何使用此方法的更多详细信息,请参阅requestLocationUpdates(long,float,Criteria,PendingIntent)。

参数 提供商的提供商与的名称登记位置更新之间 minTime最小时间间隔,以毫秒为单位的位置更新之间 minDistance才会最小距离,以米为单位 听者LocationListener的其onLocationChanged(位置)方法将被称为为每个位置更新

+0

欣赏您的答案,但我的另一个问题是,我将永远不会改变位置,但GPS将不断改变经纬度。请建议如何将它稳定在同一位置。 – AKber

+0

在你的位置监听器中添加8到10米的变化实际上在Android GPS的情况下它的准确度约为8米,这意味着即使你将手机放在一个地方,它仍然会改变坐标我的拍摄将会增加10米后的GPS读数, 祝一切顺利 ! –

0

,你应该在你的活动实施LocationListener的

private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters 

     // The minimum time between updates in milliseconds 


     private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute 


      boolean isGPSEnabled = false; 

       LocationManager locationManager = (LocationManager) yourapplicationcontext 
             .getSystemService(LOCATION_SERVICE); 

           // getting GPS status 
           isGPSEnabled = locationManager 
             .isProviderEnabled(LocationManager.GPS_PROVIDER); 
      if (isGPSEnabled) { 
          if (location == null) { 
           locationManager.requestLocationUpdates(
             LocationManager.GPS_PROVIDER, 
             MIN_TIME_BW_UPDATES, 
             MIN_DISTANCE_CHANGE_FOR_UPDATES, 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(); 
            } 
           } 
          } 
         } 
//Add this permission 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.INTERNET" />