티스토리 뷰
안드로이드에서 내 위치를 출력 하기 위해선 MyLocationOverlay를 사용하라고 여기 저기 써져있는데..
난 아무리 해도 안되더라.. 계속 getMyLocation에서 GeoPoint값이 null값으로 나온다.
그래서 LocationManager랑 LocationListener를 사용해서 내 위치 정보를 구해왔다.
//현재 내 위치를 GeoPoint로 리턴한다. private GeoPoint getMyLocation(){ LocationManager myLocationManager; LocationListener myLocationListener; //GPS가 켜져있는지 확인한다. myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location loc = myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if(loc == null) { Log.i("HONEYMAP", "GPS OFF"); return null; } myLocationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } //위치 정보가 변경 됐을 때 위치 정보를 가져온다. @Override public void onLocationChanged(Location location) { Log.i("HONEYMAP","Lat:"+location.getLatitude()+"Lng:"+location.getLongitude()); myLat = location.getLatitude()*1E6; myLng = location.getLongitude()*1E6; } }; //쥐피에스로 부터 위치 변경이 올 경우 업데이트 하도록 설정 myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0, 0, myLocationListener); //가장 최근 위치를 저장한다. myLat = myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLatitude()*1E6; myLng = myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLongitude()*1E6; Log.i("HONEYMAP","LAT:"+myLat.intValue()+ "Lng:"+myLng.intValue()); //현재 위치 정보를 GeoPoint에 리턴한다. GeoPoint p = new GeoPoint(myLat.intValue(), myLng.intValue()); return p; }
myLat랑 myLng는 클래스 멤버 변수로 Double myLat, myLng 이렇게 선언 돼있음.
사용은 이런 식으로 한다.
if(getMyLocation() != null){ Log.i("HoneyMap", "Lat:"+getMyLocation().getLatitudeE6()); Log.i("HoneyMap", "Lng:"+getMyLocation().getLongitudeE6()); mapView.getController().animateTo(getMyLocation()); }
getMyLocation() != null 이부분이 없다면, GPS가 꺼져있을 경우에 에러나서 프로그램이 꺼진다.
내용 추가(101016)
MyLocationOverlay를 사용해도 된다. null이 나왔던 이유는 값을 가져오는데 시간이 걸리기 때문이다.
'Development > Mobile' 카테고리의 다른 글
[Android] 배포용 keystore 제작 및 싸인 하기(구글맵 쓰는 경우 포함) (9) | 2010.10.01 |
---|---|
[Android] 폰 부팅시 어플리케이션 실행 (3) | 2010.09.30 |
[Android] 한글 초성 검색 (27) | 2010.09.28 |
[Android] HttpPut으로 서버에 Entity 보내기 (1) | 2010.09.25 |
[Android] SD Card 사용하기 (0) | 2010.09.21 |
[Android] SAX Parsing시 쓸데없는 공백이 많이 포함 되는 경우 (0) | 2010.09.12 |
[Android] SAX사용시 startElement가 Override가 안될 때! (0) | 2010.09.12 |
[Android] Google API Key 발급 받고 MAP 사용하기 (0) | 2010.09.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- gcc
- 안드로이드
- 드라이버
- linux
- jni강좌
- algorithm
- Quiz
- it
- android
- kering
- 프로그래밍
- Python
- AWS
- driver
- API
- jni
- winapi
- db
- NDK
- MFC
- source
- Troubleshooting
- C
- 음악
- Visual C++
- database
- java
- 리눅스
- C++
- Cloud
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함