如何在Android中首先使用GeoCoder获取最近的地理编码位置?

时间:2015-02-23 17:06:15

标签: android gps

假设我的当前位置是可更改的,我不知道纬度和经度的硬代码值。现在我有一个字符串,我想使用getFromLocationName()方法从该字符串中获取Address对象,我使用了这段代码:

address = coder.getFromLocationName(strAddress, maxNum);

但是这会从全球范围内返回地址列表,但我希望结果靠近我的位置,然后是世界其他地方,我该如何排序呢?我找到了另一种方法:

 getFromLocationName (String locationName, int maxResults, double lowerLeftLatitude, double lowerLeftLongitude, double upperRightLatitude, double upperRightLongitude);

但我不知道在这些纬度经度参数中放什么来满足我的愿望。任何人吗?

1 个答案:

答案 0 :(得分:-1)

/*********** Create class and implements with LocationListener ******/
public class GpsBasicsAndroidExample extends Activity implements LocationListener {

private LocationManager locationManager;
@Override
            protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_gps_basics_android_example);
/********** get Gps location service LocationManager object *****/
                locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
/* CAL METHOD requestLocationUpdates */
// Parameters :
                  //   First(provider)    :  the name of the provider with which to register 
                  //   Second(minTime)    :  the minimum time interval for notifications, 
                  //                         in milliseconds. This field is only used as a hint 
                  //                         to conserve power, and actual time between location 
                  //                         updates may be greater or lesser than this value. 
                  //   Third(minDistance) :  the minimum distance interval for notifications, in meters 
                  //   Fourth(listener)   :  a {#link LocationListener} whose onLocationChanged(Location) 
                  //                         method will be called for each location update
locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER,
                        3000,   // 3 sec
                        10, this);
/********* After registration onLocationChanged method  **/
                /********* called periodically after each 3 sec *****/
            }
/************* Called after each 3 sec ****/
            @Override
            public void onLocationChanged(Location location) {
String str = "Latitude: "+location.getLatitude()+" 
Longitude: "+location.getLongitude();
Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
            }
@Override
            public void onProviderDisabled(String provider) {
/******** Called when User off Gps ***/
Toast.makeText(getBaseContext(), "Gps turned off ", Toast.LENGTH_LONG).show();
            }
@Override
            public void onProviderEnabled(String provider) {
/******** Called when User on Gps  ***/
Toast.makeText(getBaseContext(), "Gps turned on ", Toast.LENGTH_LONG).show();
            }
@Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
                // TODO Auto-generated method stub
}
   }