2011-08-13 3 views
0

방금 ​​내지도를 사용자에게 보여주는 앱 내에서 활동을 수행했습니다. 이지도에 사용자 위치를 어떻게 넣을 수 있습니까? 조금이라도 혼란에 빠지면 도움이 될 것입니다!Android : Google지도 활동에 사용자 위치 설정

또한지도를 설정할 때 다음을 포함해야했습니다. MapView mapView = (MapView) findViewById (R.id.mapview); 아직 가지고 있지 않으므로 이것을 포함해야하는 이유는 무엇입니까? setContentView (R.layout.main); - 멍청한 질문처럼 들리지만 그저 궁금해하는 것!

답변

0

다음은 작업을 수행하는 샘플 코드입니다. 간단한 설명, 당신은 먼저 locationService를 얻고 Criteria API를 사용하여 Criteria의 설정에 따라 시스템을 선택하고 Provider로부터 Location Update를 요청하고 LocationListener 인터페이스를 구현하도록 할 수 있습니다. getLastKnownLocation를 호출하지만 오래되었거나 널 (null) 결과

 String contenxt = Context.LOCATION_SERVICE; 
     locationManager = (LocationManager) getSystemService(contenxt); 

     /* 
     * trying to get the best provider 
     * with given conditions 
     */ 
     Criteria criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     criteria.setAltitudeRequired(false); 
     criteria.setCostAllowed(true); 
     criteria.setSpeedRequired(false); 
     criteria.setBearingRequired(false); 
     criteria.setPowerRequirement(Criteria.POWER_LOW); 

     String provider = locationManager.getBestProvider(criteria, true); 
     Log.d(GAL, provider); 

     locationManager.requestLocationUpdates(provider, 3000, 30, locationListener); 
     location = locationManager.getLastKnownLocation(provider); 

참고로 이어질 수에 계산을 wouldnt : 그나마 주목하는 위치 수신기

대답을 구현하는 것을 잊지 : 당신은 findViewById를 (R.id와지도보기 포함되지 않습니다. mapView)가 레이아웃에 이미 포함되어 있습니다. setZoom, animateTo 등과 같은 내장 메소드를 사용하기 위해 mapView에 대한 참조 만 얻고 있습니다.

1

MyLocationOverlay를 사용하는 것이 좋습니다. 그러면 사용자의 현재 위치가 표시되고 파란색 점을 통해지도에 표시됩니다. 다음과 같이 입력하면됩니다.

List<Overlay> overlays = mMaps.getOverlays(); 
overlays.clear(); 

MyLocationOverlay myLocOverlay = new MyLocationOverlay(this, mMaps); 
myLocOverlay.enableMyLocation(); 
overlays.add(myLocOverlay); 
myLocOverlay.runOnFirstFix(new Runnable() { public void run() { 
    mMaps.getController().animateTo(myLocOverlay.getMyLocation()); 
}}); 
관련 문제