5

location.getAltitude() メソッドから現在の高度を取得しようとしています。しかし、常にゼロを返します。現在の高度値を取得するにはどうすればよいですか。経度と緯度を正しく取得します。私にアドバイスしてください。私はグーグルで検索し、いくつかのサンプルを作成しましたが、すべてゼロのみが返されます。

私が使用したコード:

作成時に =getMyCurrentLocation(); を呼び出しました。この方法。

void getMyCurrentLocation() {
        LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        LocationListener locListener = new MyLocationListener();
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){

                locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);

            }

            if(network_enabled){
                locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener);

            }


        if(gps_enabled){
                location=locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);



            }

            if(network_enabled && location==null)   {
                location=locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);  

            }

        if (location != null) {

            MyLat = location.getLatitude();
            MyLong = location.getLongitude();
    Toast.makeText(this,"My Lat : " + MyLat + "\n" + "My Long : " + MyLong, Toast.LENGTH_SHORT).show();

        } else {

        }


        System.out.println(" LATTITUDE " + MyLat);
        System.out.println("Longitude " + MyLong);

    }


public class MyLocationListener implements LocationListener

        {

        @Override

        public void onLocationChanged(Location loc)

        {

        MyLat =loc.getLatitude();
        MyLong=   loc.getLongitude();
       gooalt=getElevationFromGoogleMaps(MyLat,MyLong) ;
      double alt=loc.getAltitude(); **==>>> This one returns ZERO**

        String Text = "Longitud = " + (loc.getLongitude()) +"Latitud = " + loc.getLatitude()+"Altitude "+gooalt+"feet";

        Toast.makeText( getApplicationContext(),Text,Toast.LENGTH_SHORT).show();


        }

        @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

3 に答える 3

1

場所を取得するためにどのような方法を使用しましたか? 代わりにhttp://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation(java.lang.String ) を試すことができるかもしれませんが、それは私にとってはうまくいきました。

そうでない場合は、別のアプローチを試してみてください。いくつかのアプローチがあります: http://developer.android.com/guide/topics/location/index.html

ところで:コードを教えていただけますか?どのデバイスでテストしていますか?

于 2012-04-27T11:49:05.107 に答える
1

ネットワークの場所には高度がありません。GPS は動作しますが、常に 0 になる場合は、おそらく GPS ハードウェアが壊れています。携帯電話のネットワーク位置設定をオフにして、地図アプリを試して、GPS から修正が得られるかどうかを確認してください。

于 2012-05-23T07:31:28.073 に答える
0

なぜ高度の値が取得されないのでしょうか。コードは正しいです。ネットワーク プロバイダーを削除して、GPS でのみコードをテストしてみてください。何らかの値が取得されていることを確認してください。問題に直面している場合は、表示している場所をコードでお知らせください高度をハイライトしていただけますか? 高度については、gooalt .. の代わりに loc.getAltitude() を使用してみてください。

于 2012-12-05T07:10:52.997 に答える