2012-07-11 3 views
1

내 에뮬레이터가지도 위에있는 위치를 표시하려고합니다. 문제는 실제 위치 나 나침반을 얻지 못합니다. 컴퓨터에서 에뮬레이터 만 사용 중입니다. Google에 정수를 입력했습니다. 지도, 키, manifest.xml 여기 기계가 수입은 코드입니다 :android와 함께 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 

       } 


       } 

u를 감사

당신은 DDMS 관점과 '에뮬레이터 제어'를 열어 에뮬레이터에 시뮬레이션 GPS 수정을 보낼 수 있습니다

답변

0

탭이 있습니다. 이 탭에는 에뮬레이터에 위도/경도를 전송하는 '위치 제어'옵션이 있습니다.

+0

감사합니다. howerver 이전 위도/경도로 작업하는 동안 나침반 또는 포인트를 무시하는 지점에 표시하지 마십시오. 내가 새로운 let/lon을 추가 할 때 나는 흰 화면 만 얻는다. 도울 수 있습니다. – sigway