2012-02-21 11 views
1

屋外に行くことなく緯度を得ることは可能ですか&?私の現在の状況は、ユーザーが自分の場所を取得するためには屋外でなければならないということです。場所を取得するにはかなりの時間がかかります。私は自分のユーザーが自分の位置を屋内にできるようにしたい。Android:緯度と経度を取得する

+0

なぜユーザーは自分の場所を取得するために屋外である必要がありますか?それはネットワークの問題のためですか? – noob

+0

@Creator GPSはサテライトからデータを取得するには明確な経路が必要な屋外ビーコンで十分です。あなたが屋内にいるときは屋根と壁があるので、通路は閉鎖されており、サタリットからデータを得ることはできません。 – J1and1

答えて

0

はい、それは次のコードからヒントを取ることも可能である:

try { 
      gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
     } catch (Exception ex) { 
     } 
     try { 
      network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
     } catch (Exception ex) { 
     } 

     if (!gps_enabled && !network_enabled) { 
      // show alert 
     } 
     if (network_enabled) { 
      locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener); 
     } 
     if (gps_enabled) { 
      locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener); 
     } 
+0

ありがとう、よく説明されています。 – DroidMatt

0

はい、可能ですが、ドアの内側にネットワークがあります。 GPS座標を取得するのにLocationManager.NETWORK_PROVIDERを使用することができます。

このanswerをご覧ください。

0

あなたが使用しているGPSプロバイダに依存し、場所を修正するために利用可能な信号があるため、GPSプロバイダのみを使用していると思いますので、戸外で作業していません。

また、最後の既知の場所を使用して、時刻がgpsの場所を修正して、最も早く場所を取得するための良いブログがあります。

android-developers.blogspot.in/2011/06/deep-dive-into-location.html

0
LocationManager locManager; 
    Location location; 
double lat; 
double lng; 
    try { 
       gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
      } catch (Exception ex) { 
      } 
      try { 
       network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
      } catch (Exception ex) { 
      } 

      if (!gps_enabled && !network_enabled) { 
       // show alert 
      } 
      if (network_enabled) { 
        locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);     
       locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,1, locationListener); 
       location = locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
      lat = location.getLatitude(); 
      lng = location.getLongitude(); 
      } 
      if (gps_enabled) { 
       locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);    
       locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,1, locationListener); 
       location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
      lat = location.getLatitude(); 
      lng = location.getLongitude(); 
      } 
関連する問題