2012-01-06 78 views
0

我需要计算Gps在移动位置和偏离某个位置的位置。我尝试过使用驾驶指示,但不赞成任何类似的事情会很好。如何计算移动GPS位置?

+0

意味着你要ÿ我们的位置在经度和纬度? – user1089679 2012-01-06 09:35:05

回答

0
LocationListener locationListener = new LocationListener() { 
       public void onLocationChanged(Location location) { 
       location.getLatitude(); 
          location.getLongitude() 
        // what you want to do 
       } 

       public void onStatusChanged(String provider, int status, 
         Bundle extras) { 
        Toast.makeText(LocationInfoActivity.this, 
          String.valueOf("onStatusChanged " + provider), 
          Toast.LENGTH_SHORT).show(); 
       } 

       public void onProviderEnabled(String provider) { 
        Toast.makeText(LocationInfoActivity.this, 
          String.valueOf("onProviderEnabled " + provider), 
          Toast.LENGTH_SHORT).show(); 
       } 

       public void onProviderDisabled(String provider) { 
        Toast.makeText(LocationInfoActivity.this, 
          String.valueOf("onProviderDisabled " + provider), 
          Toast.LENGTH_SHORT).show(); 
       } 
      }; 


      try { 
       locationManager.requestLocationUpdates(
         LocationManager.GPS_PROVIDER, 10000, 1, locationListener); 

    // the 1 denotes meter (deviation) 
      } catch (Exception e) { 
       Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
       locationManager.requestLocationUpdates(
         LocationManager.NETWORK_PROVIDER, 10000, 1, 
         locationListener); 
       locationManager.requestLocationUpdates(
         LocationManager.PASSIVE_PROVIDER, 10000, 1, 
         locationListener); 
      } 

     } 

参考: http://developer.android.com/guide/topics/location/obtaining-user-location.html

+1

您可以评论一下为什么使用String.valueOf(“onStatusChanged”+ provider)而不是仅仅使用onStatusChanged + provider?第二种方式不仅等同,而且更短,更快,IMO更具可读性。 – 2012-01-06 10:17:10