0

地下室でエミュレータを使用しています。このコードは実行されていますが、地図に現在の場所が表示されていません。また、エミュレーターコントロールから緯度経度を送信しようとしましたが、エミュレーターコントロールが間違った緯度経度を示しています。

     package com.maps;
     import com.google.android.maps.GeoPoint;
     import com.google.android.maps.MapActivity;
     import com.google.android.maps.MapController;
     import com.google.android.maps.MapView;
     import android.content.Context;
     import android.location.Location;
     import android.location.LocationListener;
       @Override
       public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MapView view= (MapView) findViewById(R.id.mapView) ;
        view.setBuiltInZoomControls(true);
        final MapController control=view.getController();
        LocationManager manager=(LocationManager)            this.getSystemService(Context.LOCATION_SERVICE);     
        LocationListener listener=new LocationListener() {          
    public void onStatusChanged(String provider, int status, Bundle extras) {   
            }           
            public void onProviderEnabled(String provider) {
                        }
        public void onProviderDisabled(String provider) {
                // TODO Auto-generated method stub
            }       
    };   
        manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
    }
    @Override
    protected boolean isRouteDisplayed()
    {
        return true;
    }
}
4

2 に答える 2

1

GPSを取得するには、アプリケーションの起動時に初めてオープンフィールドにいる必要があります。地下室は完全に覆われているため、携帯電話などのGPSハードウェアがGPS位置を取得するのは困難です。ただし、車に搭載されているGPSハードウェアは、地下室からもGPS信号を取得できます。

この要件の別の方法は、セルIDを取得し、それをGoogleの逆APIに渡すことです。これにより、結果に緯度経度が表示されます。どこからでもcell-idを取得でき、地下室にもカバレッジがあることがわかります。また、エミュレーターのGPSに関する詳細については、最近の回答を参照してください。また、ここからサンプルのGPXファイルをダウンロードできます。

于 2012-05-31T13:27:25.213 に答える
0

アプリケーションにAccessMockLocation権限を付与していない可能性があります。

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">
于 2012-05-31T13:25:36.003 に答える