2011-03-04 53 views

回答

1

使用android它實際上很容易從GPS服務獲取位置。使用LocationManager最簡單的方法來做到這一點

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

customLocationListener = new CustomLocationListener(); 

locationManager.requestLocationUpdates(
     LocationManager.GPS_PROVIDER, 
     0, 
     0, 
     ll); 

.....一個Spagehtti代碼放在這裏.....

class CustomLocationListener implements LocationListener{ ............ 
     public void onLocationChanged(Location argLocation) { 
     if(location != null) {  
     int latitude=(int)(argLocation.getLatitude()*1E6); 
     int longitude=(int)(argLocation.getLongitude()*1E6); 
       } 
     } ........ } 

可能還要檢查Location Android APIAndroid Development

1
Geocoder geo = new Geocoder(getApplicationContext(), Locale.getDefault()); 
List<Address> add; 
try 
{ 
    add = geo.getFromLocation(
       location.getLatitude(), 
       location.getLongitude(), 
       1 
      ); 

    if (add.size() > 0) 
    { 
     addl1=add.get(0).getAddressLine(0); 
     addl2=add.get(0).getAddressLine(1); 
     addl3=add.get(0).getAddressLine(2); 
    }     
} 

你可以試試這個, 通過將它放入onLocationChanged來獲取位置名稱。

0

除了測試這個使用模擬器只有你可能需要從外界設定的位置,請參閱:How to emulate GPS location in the Android Emulator?

甚至使用MockLocationProvider/LocationManager.setTestProvider ..進行單元測試。

哦,順便說一句:如果您已經使用MapView,您可能也有興趣使用MyLocationOverlay。它會在地圖上顯示你的當前位置。通過繼承它,您還可以掛接onLocationChanged方法來插入一旦位置發生變化就應該運行的自定義位置代碼。

0

使用下面的代碼,它可以幫助你找到當前城市

Geocoder geocoder=new Geocoder(getBaseContext(),Locale.getDefault()); 
try 
{ 
    String city=""; 
    List<Address> addresses= geocoder.getFromLocation(
     geoPoint.getLatitudeE6()/1E6, 
     geoPoint.getLongitudeE6()/1E6, 
     1 
    ); 
    if(addresses.size()>0) 
    { 
     city+=addresses.get(0).getSubAdminArea(); 
    } 
} 
catch (IOException e) 
{ 
    e.printStackTrace(); 
} 
相關問題