我的位置未显示在地图中

时间:2012-05-31 13:23:02

标签: android gps

我在地下室使用我的模拟器。此代码正在运行。但地图未显示当前位置。我还尝试从模拟器控件发送lat long,但模拟器控件显示错误的lat lon。

     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;
    }
}

2 个答案:

答案 0 :(得分:1)

要获取GPS,您必须在启动应用程序时首次进入开放区域。地下室是完全覆盖的区域,因此像移动设备这样的GPS硬件很难获取GPS位置。然而,汽车中的GPS硬件也可以从地下室获取GPS信号。

此要求的替代方法是获取 cell-id 并将其传递给google的反向Api,这会在结果中为您提供lat-lon。你可以从任何地方获得cell-id,你也可以看到你在地下室也有覆盖。您还可以访问我最近的answer,了解有关仿真器中GPS的详细信息。您也可以从here

下载示例GPX文件

答案 1 :(得分:0)

您可能尚未向应用程序授予Access Mock Location权限。

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">