구글맵 2탄 내 위치 가져오기
구글맵을 띄울 엑티비티는 Activity를 상속 받는것이 아니라 MapActivity를 상속 받습니다.
그리고 인터페이스를 하나 구현해 줍니다.
public class 클래스명 extends MapActivity implements LocationListener {
...
Location을 구현하기 위해서는 4개의 메소드가 필요하다.
public void onLocationChanged(Location location) {} // 위치값이 변경될 시 , 지역변수는 위치 값을 말한다. public void onProviderDisabled(String provider) {} // 위치 제공이 안될 시 public void onProviderEnabled(String provider) {} // 위치 제공이 가능한 경우 public void onStatusChanged(String provider, int status, Bundle extras) {} // 상태가 변경되었을 시 ( ex. gps->3g ) |
이 내용물들을 잘 골라가며 그때 그때 맞추어 사용하면 된다.
가장 많이 사용하는 것이 onLocationChanged() 일텐데, 이것을 관리하기 위해 LocationManager 을 선언과 생성을 해줍니다.
public class Test_Activity extends MapActivity implements LocationListener { LocationManager locManager; // 선언 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 생성 // GPS 사용시 //locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 0, this); // 3G,4G,WIFI 사용시 // locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, this); } }
이런식으로 지정해주시면 됩니다.
requestLocationUpdates(GPS,네트워크 방식지정 , 시간(ms) , 거리(m) , 객체리스너) 로 이루어져 있고
이 설정에 따라서 onLocationChanged() 이 작동하기 때문에 이 설정을 잘 이해해주시는게 좋습니다.