2012-07-11 94 views
1

我想讓我的模擬器指示我在地圖上的位置,問題是我沒有得到我的真實位置也沒有指南針 我只在計算機上使用模擬器 我交織了谷歌地圖,鑰匙,進口在礦井的manifest.xml 這裏是代碼:geolocalisation與安卓

 package com.training.surveyproject; 
    import android.location.Location; 
    import android.location.LocationListener; 
    import android.location.LocationManager; 
    import android.os.Bundle; 
    import android.view.KeyEvent; 
    import android.widget.Toast; 

    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 com.google.android.maps.MyLocationOverlay; 

    public class SurveyActivity extends MapActivity implements LocationListener 
    { 

     private MapView mapView = null; 
     private LocationManager lm = null; 
     private double lat = 0; 
     private double lng = 0; 
     private MapController mc = null; 
     private MyLocationOverlay myLocation = null; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_survey); 
     mapView = (MapView) this.findViewById(R.id.mapView); 
     mapView.setBuiltInZoomControls(true); 

     lm = (LocationManager) this.getSystemService(LOCATION_SERVICE); 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this); 
     lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, this); 

     mc = mapView.getController(); 
     mc.setZoom(12); 
     myLocation = new MyLocationOverlay(getApplicationContext(),mapView); 
     myLocation.runOnFirstFix(new Runnable(){ 
    public void run(){ 
    mc.animateTo(myLocation.getMyLocation()); 
    mc.setZoom(17); 
     } 
     }); 
     mapView.getOverlays().add(myLocation); 
     myLocation.enableMyLocation(); 
     myLocation.enableCompass(); 
      } 

     @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) 
       { 
       if (keyCode == KeyEvent.KEYCODE_S) 
       { 
     mapView.setSatellite(!mapView.isSatellite()); 
     return true; 
      } 
     return super.onKeyDown(keyCode, event); 
     } 

     @Override 
     public void onLocationChanged(Location location) 
     { 
      lat = location.getLatitude(); 
      lng = location.getLongitude(); 
      Toast.makeText(getBaseContext(), 
      "Location change to : Latitude = " + lat + " Longitude = " + lng, 
      Toast.LENGTH_SHORT).show(); 
      GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); 
      mc.animateTo(p); 
      mc.setCenter(p); 
      } 

      @Override 
      protected boolean isRouteDisplayed() 
       { 
        return false; 
       } 

      @Override 
      public void onProviderDisabled(String provider) 
       { 
      // TODO Auto-generated method stub 

       } 

      @Override 
      public void onProviderEnabled(String provider) 
       { 
      // TODO Auto-generated method stub 

       } 

      @Override 
      public void onStatusChanged(String provider, int status, Bundle extras) 
       { 
      // TODO Auto-generated method stub 

       } 


       } 

感謝ü

回答

0

您可以通過打開DDMS透視圖和「仿真器控制」發送模擬GPS定點到模擬器在那裏標籤。該選項卡有一個'位置控制'選項,它將把緯度/經度發送給模擬器​​。

+0

謝謝 howerver在處理舊的經緯度時,不會顯示指南針或點在排除點。當我添加新的讓/我只會得到一個白色的屏幕。 可以幫助你 – sigway 2012-07-12 10:17:56