돌아오신 것을 환영합니다
이번 영상에선 위치 선택 화면을 설정해 보겠습니다
우리가 원하는것은 추가하는 상품마다 어디서 살건지
선택할 기능을 만드는것입니다
좋아요
우선 이 Gradle을 치우겠습니다
새로운 Kotlin class/file에서 file을 만들고 이것을 LocationSelectionScreen(위치선택화면)이라
하겠습니다
이것은 팝업창이 될것이고
여기에 셋업하겠습니다
이것은 composable이 되어야 하고
이 컴포저블의 이름은 locationSelectionScreen입니다
이 locationSelectionScreen은 두가지 parameter(매개변수)가 필요합니다
한가지는 실제 위치 그러니까
화면이나 지도에서 선택하여 얻는 위도와 경도입니다
말하자면 항상 위도와 경도는 자동을 할당되는것입니다
이것이 데이터의 한부분이고
그리고 위치를 선택했을때
ㅤ
무엇인가 실행하고 싶습니다
여기 location: locationData를 넣고
그리고 여기 onLocationSelected라는 이벤트가 들어가고 이것은 위치 정보의 일부가 필요하며
아무것도 반환하지 않습니다
ㅤ
이것이 위치선택화면의 기본적인 셋업입니다
이것은 위치도 필요하고
이 선택된 위치로 어떤것을 해야하는지
알려주거나 패스 해야합니다
좋아요
이제 이것이 있으니
이 안에 변수를 추가해서 실제 사용자 위치를 고려하게 하겠습니다
사용자 위치를 remember(기억)하는것이고 이것은 mutableStateOfLatLng입니다
안드로이드 지도 모델안에는 latlng혹은 latitude(위도) longitude(경도)라는 클래스가 있는데
이것은 이 위에 있는 location에서 얻은 위도 그리고 경도가 필요합니다
그러니까 LatLng은 이 두가지 디테일이 필요합니다 이 위로 커서를 올려보면
여기 double latitude double longitude에 대한 contract가 있습니다
그래서 remember을 쓰고
여기에 remember을 import시켜야 합니다
그리고 cameraPositionState도 사용하고 싶습니다
그러니까 그 선택 화면 혹은 구글 지도 선택지에서
내가 어디에 있는지 알아야합니다
그러니 여기에 rememberCameraPositionState을 씁니다
그러니까 cameraPositionState라는것을 우리가 remember할 수 있고
어떤식으로 기억할지는 우리가 정의할것 입니다
. 여기 position을 가지고 이것을 CameraPosition.from
LatLngZoom으로 설정하고 여기에 userLocation과 value를 사용하고
이것을 10의 인수로 zoom 합니다
이게 무엇이냐면
제가 구글지도를 열어보겠습니다 구글지도를 보시면
ㅤ
우선 구글 지도를 열겠습니다
조금 더 크게 열어서
여기 구글지도가 있습니다
여기서 확대 축소를 해보면
여기 10f가 바뀌는걸 볼 수 있습니다
그러니까 10f 는 확대와 축소하는것의 레벨입니다
이 숫자는 여러개로 변경해보실 수 있습니다
18정도 까지 올라가는것으로 알고있습니다
이 값을 가지고 여러가지 실험을 해보시면 다른 레벨의 줌을 보실 수 있습니다
그게 한가지고
그리고 userLocation은 기본적으로 핸드폰이 있는 위치입니다
지도의 카메라 위치를 지정하는것입니다
구글맵에게 사용자가 있는 위치를 확대하라고 시키는것입니다
캘리포니아처럼 현재 디폴트값을 보여주지말고
사용자가 어디있는지를 특정 줌 레벨로 보고싶다는 뜻 입니다
이것이 이 CameraPositionState이 하는일 입니다
신기한 부분은 우리가 remember와 state를 사용했기때문이 이것이 동적으로 발생하는것입니다
사용자위치가 바뀌면 cameraPositionState도 바뀌고
지도상에 보여지는 화면도 바뀌게 됩니다
이 부분은 실제로 지도를 구현하고 어떻게 보이는지 확인되면 훨씬
이해하기 편하실 것 입니다
그리고 그것은 다음 영상에서 하겠습니다 최소한 구글맵 컴포저블 까지는
할수있겠습니다
거기서 뵙겠습니다