안드로이드 책이 있으면 자세히 설명되어있어요 시중에 많은 책들이 나왔는데 한권쯤 있으시면 큰 도움이 될겁니다.
안드로이드에서 gps를 사용하려면 해당 액티비티 클래스가 LocationListener 를 implements 해야합니다. 그리고 LocationManager를 생성합니다. LocationManager 를 이용해 gps 관련설정을 합니다. ( 어떠한 방법으로 수신을 하는지 설정. 세밀하게 수신헐꺼냐 배터리 신경쓰냐 등등..) LocationListener 를 implements 했으므로 public void onLocationChanged(Location location) 메서드를 반드시 구현합니다. 단말기의gps가 위도,경도 좌표를 수신하면 이 메서드의 아규먼트인 location <- 이놈이 위도,경도 정보를 가지고있습니다. gps는 위성으로부터 위도,경도를 계속 수신받으니까 location의 값은 계속 변합니다. 수신할 때마다 위의 매서드가 작동합니다. 수신한 좌표를 계속 저장하게끔 배열 변수에 저장합니다. 배열로 하지말고 전역변수로 List<OverlayItem> items이런식으로 static하게 선언합시다. 그렇다면 리스트변수인 items에있는 좌표를 하나씩 꺼내서 맵위에 그림을 그리면 될것입니다.
맵 위에 그림을 오버레이할 클래스를 만듭니다. 그리고 extends ItemizedOverlay<OverlayItem> 상속합니다. private class 오버레이클래스 extends ItemizedOverlay<OverlayItem> 이러케요 맵 위에 선을 긋거나 마커를 올려주는 클래스입니다.
구글맵을 사용하기 위해 MapActivity 를 상속받는 클래스를 만듭니다. 탠덤님이 구글 맵을 띄우는 방법은 알고있다고 생각하고 방법은 생략하겠습니다. 그러면 지금까지 총 3개의 클래스를 만들었네요
mapview가 속해있는 클래스는 당연히 MapActivity 를 extends 했을 것입니다. mapView.getOverlays().add(new 오버레이클래스(marker)); 이런식으로 오버레이클래스를 호출합니다. 파라미터로 마커를 넘겨줍니다. 마커를 생성하는 것은 소스를 참고. 이렇게 하면 오버레이클레스에서는 파라미터로 받은 마커를 가지고 또 !!!! 좌표정보를 가진 리스트도 필요하겠죠. 이 둘을 가지고 Draw 매서드에서 맵위에 그려려주게 됩니다.
대충 개념만 설명했고 자세한것은 소스를 보시면 쉽게 이해하실 수있을꺼에요.
2010.05.06 01:49:28
카아악퉤잇
달토끼님~ 지나가다 궁금해서 물어보는건데;;
단말기의 GPS가 자동으로 계속 위치좌표를 수신하는건가요??
내부적으로 리스너 객체를 인자로 해서 update를 조건에 따라 실행시켜야 되는걸로 알고있었는데..
http://www.wikibook.kr:8180/JSPWiki/Wiki.jsp?page=Android
여기서 소스코드 받으시고 11장 프로젝트 소스 참고하세요.
안드로이드 책이 있으면 자세히 설명되어있어요 시중에 많은 책들이 나왔는데 한권쯤 있으시면 큰 도움이 될겁니다.
안드로이드에서 gps를 사용하려면 해당 액티비티 클래스가 LocationListener 를 implements 해야합니다.
그리고 LocationManager를 생성합니다.
LocationManager 를 이용해 gps 관련설정을 합니다. ( 어떠한 방법으로 수신을 하는지 설정. 세밀하게 수신헐꺼냐 배터리 신경쓰냐 등등..)
LocationListener 를 implements 했으므로
public void onLocationChanged(Location location) 메서드를 반드시 구현합니다.
단말기의gps가 위도,경도 좌표를 수신하면 이 메서드의 아규먼트인 location <- 이놈이 위도,경도 정보를 가지고있습니다.
gps는 위성으로부터 위도,경도를 계속 수신받으니까 location의 값은 계속 변합니다.
수신할 때마다 위의 매서드가 작동합니다.
수신한 좌표를 계속 저장하게끔 배열 변수에 저장합니다.
배열로 하지말고 전역변수로 List<OverlayItem> items이런식으로 static하게 선언합시다.
그렇다면 리스트변수인 items에있는 좌표를 하나씩 꺼내서 맵위에 그림을 그리면 될것입니다.
맵 위에 그림을 오버레이할 클래스를 만듭니다. 그리고 extends ItemizedOverlay<OverlayItem> 상속합니다.
private class 오버레이클래스 extends ItemizedOverlay<OverlayItem> 이러케요
맵 위에 선을 긋거나 마커를 올려주는 클래스입니다.
구글맵을 사용하기 위해 MapActivity 를 상속받는 클래스를 만듭니다.
탠덤님이 구글 맵을 띄우는 방법은 알고있다고 생각하고 방법은 생략하겠습니다.
그러면 지금까지 총 3개의 클래스를 만들었네요
mapview가 속해있는 클래스는 당연히 MapActivity 를 extends 했을 것입니다.
mapView.getOverlays().add(new 오버레이클래스(marker));
이런식으로 오버레이클래스를 호출합니다. 파라미터로 마커를 넘겨줍니다. 마커를 생성하는 것은 소스를 참고.
이렇게 하면 오버레이클레스에서는 파라미터로 받은 마커를 가지고 또 !!!! 좌표정보를 가진 리스트도 필요하겠죠.
이 둘을 가지고 Draw 매서드에서 맵위에 그려려주게 됩니다.
대충 개념만 설명했고 자세한것은 소스를 보시면 쉽게 이해하실 수있을꺼에요.