1. 준비물
구글맵을 넣기 위해선 Activity 에서 해줘야 할 작업이 있습니다. 구글맵은 com.google.android.gms.maps.GoogleMap; 의 형태로 지원됩니다.
import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapView; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; | cs |
그 후 작업을 하면 됩니다. 이 경우에도 변수에 유의해야 합니다.
public class BlueFragment extends Fragment implements OnMapReadyCallback { public GoogleMap googleMap; } | cs |
이렇게 구글맵을 따로 잡아줘야 합니다. GoogleMap이라는 변수를 사용했습니다.
레이아웃을 불러오겠습니다.
2. 레이아웃 불러오기
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_blue, container, false); MapView mapview = (MapView) view.findViewById(R.id.map_blue); mapview.onCreate(savedInstanceState); mapview.onResume(); mapview.getMapAsync(this); mCoordinatesTextMap = (TextView) view.findViewById(R.id.tv_coordinates_map); return view; } | cs |
이렇게 onCreateView를 구현합니다. 단순히 mapview를 view.findViewById로 가져오는 것이 아닙니다.
인자로 R.layout.fragment_blue, container, false를 사용했다는 것을 명심해야 합니다.
3. 구글맵 사용자 권한 설정
@Override public void onMapReady(final GoogleMap googleMap) { int permissionCheck = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE); if (permissionCheck == PackageManager.PERMISSION_GRANTED) { googleMap.setMyLocationEnabled(true); } else { ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 2000); } } | cs |
권한 획득을 하는 곳까지 구현했습니다.
구글맵 사용시 위치정보 사용권한을 사용자에게 묻는 코드입니다. 더 궁금하다면 Manifest.permission.READ_EXTERNAL_STORAGE에서 추가 내용을 확인합니다.
'Java' 카테고리의 다른 글
[android] 구글맵 3 (0) | 2018.02.03 |
---|---|
[android] 구글맵 2 (0) | 2018.02.03 |
[android] Fragment 만들기 2-2 (0) | 2018.02.03 |
[android] Fragment 만들기 2-1 (0) | 2018.02.03 |
[android] Fragment 만들기1 (0) | 2018.02.03 |