어느 분 글을 보고 지도의 내 위치 찾기 관련 기능을 구현하려고 하고 있습니다,
그런데 소스 상으로는 문제가 없는데
자꾸 강종이 뜨네요ㅠ
이유를 좀 알려주세요~
main.java
package ex.myMap;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class main extends MapActivity {
/** Called when the activity is first created. */
public static MapView mMapView;
public static MapController mMapController;
mapManager mM;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mMapView = (MapView)findViewById(R.id.mapView);
mMapController = mMapView.getController();
mMapController.setZoom(18); // 기본줌 18
mMapView.setBuiltInZoomControls(true); // 확대 축소 기능
// mMapView.setSatellite(true); // 위성모드
mMapView.setStreetView(true); // 지도모드
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
/* 옵션 추가 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 0, "내 위치");
menu.add(0, 2, 0, "위치 저장");
menu.add(0, 3, 0, "저장된 위치");
menu.add(0, 4, 0, "종료");
return true;
}
/* 옵션 기능 */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1: // 내 위치
mM.SearchLocation();
break;
case 2: // 위치 저장
break;
case 3: // 저장된 위치
break;
case 4: // 종료
finish();
}
return true;
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
mapmanager.java
package ex.myMap;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapController;
public class mapManager {
//private DialogManager mDialogManager;
private MapController mMapController;
private LocationManager mLocationManager;
private String mProvider; // 공급자
public mapManager(Context context) {
//mDialogManager = new DialogManager(context);
mMapController = main.mMapController;
mLocationManager = (LocationManager)context.getSystemService(context.LOCATION_SERVICE);
mProvider = mLocationManager.NETWORK_PROVIDER; // NETWO PS
}
/* 위치 찾기 */
public void SearchLocation() {
mLocationManager.requestLocationUpdates(mProvider, 1000, 0, mListener);
//mDialogManager.Loading();
}
LocationListener mListener = new LocationListener() {
public void onLocationChanged(Location location) {
GeoPoint point = new GeoPoint((int)(location.getLatitude()*1E6), (int)(location.getLongitude()*1E6));
mMapController.animateTo(point); // 위치로 이동
mLocationManager.removeUpdates(mListener); // 해제
//mDialogManager.LoadingEnd();
}
public void onProviderDisabled(String provider) {
// 추가 : 공급자 사용불가 처리
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}; // mListener
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
이상입니다.
자꾸 강종이 떠버리니까 미쳐버리겠네요ㅠㅋ