public class testMap extends AppCompatActivity {
/*
private GoogleMap map;
static final LatLng SEOUL = new LatLng(37.56, 126.97);
*/
private GoogleMap map;
private LocationListener manager;
@Override
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.testmap);
// 지도 객체 참조
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
// 위치 확인하여 위치 표시 시작
startLocationService();
}
/**
* 현재 위치 확인을 위해 정의한 메소드
*/
private void startLocationService() {
// 위치 관리자 객체 참조
manager = (LocationListener) getSystemService(Context.LOCATION_SERVICE);
// 리스너 객체 생성
GPSListener gpsListener = new GPSListener();
long minTime = 10000;
float minDistance = 0;
// GPS 기반 위치 요청
manager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, minTime,
minDistance,
gpsListener);
// 네트워크 기반 위치 요청
manager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
minTime,
minDistance,
gpsListener);
Toast.makeText(getApplicationContext(), "위치 확인 시작함. 로그를 확인하세요.", Toast.LENGTH_SHORT).show();
}
/**
* 리스너 정의
*/
private class GPSListener implements LocationListener {
/**
* 위치 정보가 확인되었을 때 호출되는 메소드
*/
public void onLocationChanged(Location location) {
Double latitude = location.getLatitude();
Double longitude = location.getLongitude();
String msg = "Latitude : " + latitude + "\nLongitude:" + longitude;
Log.i("GPSLocationService", msg);
// 현재 위치의 지도를 보여주기 위해 정의한 메소드 호출
showCurrentLocation(latitude, longitude);
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
/**
* 현재 위치의 지도를 보여주기 위해 정의한 메소드
*
* @param latitude
* @param longitude
*/
private void showCurrentLocation(Double latitude, Double longitude) {
// 현재 위치를 이용해 LatLon 객체 생성
LatLng curPoint = new LatLng(latitude, longitude);
map.animateCamera(CameraUpdateFactory.newLatLngZoom(curPoint, 15));
// 지도 유형 설정. 지형도인 경우에는 GoogleMap.MAP_TYPE_TERRAIN, 위성 지도인 경우에는 GoogleMap.MAP_TYPE_SATELLITE
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
}
저기서
.requestLocationUpdates 부분이 오류가 뜨는데 문제가 뭘까요.. ㅠㅠ
매니페스트에서 권한은 다 줬는데 흠... 아시는분 답 변 부탁 드려요 ㅠㅠ