2013-03-13 78 views
0

我打算開發一個應用程序,我需要將用戶的當前位置檢索到應用程序中,以獲取特定位置的數據。在開始之前,我想了解一個GPS系統如何工作Android &與WiFi的關係如何。任何人都可以告訴我有關GPS設備的完整解釋關於GPS &地理代碼參考Android設備&建議我如何開始。GPS和地理位置如何爲Android設備工作

+0

烈Ryna,talonmies @後面有問這個問題,一個明顯的思想。我只想知道GPS在Android智能手機中的工作方式,我必須掌握所有依賴關係的知識,以便以後不會產生任何併發症。謝謝。 – 2013-03-18 12:32:02

回答

3

Android有三種獲取用戶當前位置的方法。

  1. 通過Wi-Fi
  2. 通過你的networkprovider。
  3. 通過Android設備中的GPS芯片。

其中最準確的方法是從GPS獲取座標。這將使你的準確位置在經過多頭,但它也將使用大部分電池。這通常用於準確性很重要的導航地圖中。

其餘的兩種方法都不太準確,但也使用更少的電池。如果當前位置的準確性不是那麼重要,您可以使用後兩者。所有這些方法都可以通過android的LocationManager獲得。

編輯:

 // To get Updates From GPS Use 
    mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, 
      currentlocation); 

     //To get Updates From network Use 
    mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, 
      currentlocation); 
+0

非常感謝您的回答。我可以問你,我怎麼才能通過使用WiFi連接獲取當前位置。它適合多少以及它是如何對應用程序不準確或有害的。 – 2013-03-13 06:14:03

+0

我們通常將GPS提供商用於導航目的。如果您的應用沒有這種要求,並且您只想顯示周圍環境的一般信息,那麼您應該通過網絡提供商選擇位置更新。即使當週圍沒有wifi時,這樣你也會得到不準確的當前位置。您將通過使用Network Provider.LocationListener currentlocation = new CurrentLocation()獲取您的位置更新; mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,currentlocation); mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,currentlocation); – 2013-03-13 06:22:48

1

看看這個,它可以幫助你,

LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
LocationListener mlocListener = new MyLocationListener(); 

mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, 
    mlocListener); 


public class MyLocationListener implements LocationListener { 

@Override 
public void onLocationChanged(Location loc) { 
loc.getLatitude(); 
loc.getLongitude(); 

Geocoder gcd = new Geocoder(getApplicationContext(), 
     Locale.getDefault()); 
try { 
    mAddresses = gcd.getFromLocation(loc.getLatitude(), 
      loc.getLongitude(), 1); 

} catch (IOException e) { 

} 

String cityName = (mAddresses != null) ? mAddresses.get(0) 
     .getLocality() : TimeZone.getDefault().getID(); 
String countryName = (mAddresses != null) ? mAddresses.get(0) 
     .getCountryName() : Locale.getDefault().getDisplayCountry() 
     .toString(); 


     mCurrentSpeed.setText(loc.getSpeed()); 
    } 

    @Override 
    public void onProviderDisabled(String provider) { 
    Toast.makeText(getApplicationContext(), "Gps Disabled", 
      Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onProviderEnabled(String provider) { 
     Toast.makeText(getApplicationContext(), "Gps Enabled", 
     Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
} 
4

GPS

這些天,大多數Android智能手機有AGPS安裝芯片。 AGPS意指輔助GPS需要幫助o f網絡塔和WI-FI熱點,以快速確定附近的位置,並幫助安卓GPS智能手機鎖定GPS衛星。帶有AGPS芯片的智能手機也可鎖定GPS衛星,無需數據計劃或網絡,但需要清晰的天空視野,並需要一些時間來鎖定GPS衛星。

谷歌地圖是一種導航系統,其地圖通過加載具有活動數據連接的地圖,並通常在網絡塔或WI-FI熱點的幫助下找到您的設備位置,該位置的位置不準確。要準確在Android中的位置有兩個設置在我的位置一個是使用無線網絡,這是位計算和其他是使用GPS衛星需要更多的電池加上清晰的天空視圖。所以我們可以說AGPS芯片啓用或配備Android智能手機有準確的位置位置並充分利用GPS衛星。

地理編碼

地理編碼是轉化街道地址或位置的其他描述成(緯度,經度)座標的過程。

以下鏈接將幫助您學習

1)https://developers.google.com/maps/documentation/directions/
2)http://blog.synyx.de/2010/06/routing-driving-directions-on-android-part-1-get-the-route/
3)http://eagle.phys.utk.edu/guidry/android/mappingDemo.html
4)Google Maps API Version difference