돌아오신것을 환영합니다
거의 다 끝났습니다
실제로 이 쇼핑리스트 앱을 관리할 수 있을때까지 몇가지 단계만 남았습니다
정말로
영상이 많이 남지 않았습니다
이 다음으로 추가하고 싶은것은 인터페이스인데 이것이
주소를 로딩, 그러니까 좌표에서 주소를 가져오는것을 처리할 것 입니다
그러니 여기서 Get Request를 다시 써서 retrofit 기능을 사용하여 데이터를 로딩하겠습니다
좋아요
여기에 새로운 Kotlin 파일 클래스를 만들고 Interface를 선택하여 GeocodingAPIService라고 하겠습니다
여기 c는 대문자일 필요가 없고
GeocodingAPIService 입니다
이 인터페이스에 지금은 한가지 suspend function을 추가하고 getAddressFromCoordinates라고
합니다
이미 coordinates(좌표)는 보유하고 있습니다
사용자가 어딘가를 클릭하면 사용자가 클릭한 곳의 주소를 가져오게 됩니다
여기서는
몇가지를 패스하겠습니다
여기서 원하는 response는 GeocodingResponse입니다
GeocodingResponse가 무엇이나면
기존에 구축했었던 데이터 클래스인데 List〈GeocodingResult〉인 result를 얻었고
그리고 이 status도 있습니다 이것은
여기 구글 지도 API에서 우리에게 반환된 것입니다
이제 그것을 사용할것입니다
따라서 기본적으로 우리가 얻게되는 정보는 이 response 입니다
이것을 분해해보겠습니다
여기에 패스를 해야하는 정보들은 위도와 경도 값과 key도 패스 해야
합니다
여기에 query를 추가합니다 retrofit의 어노테이션이죠
query를 추가하고 latlng이라고 합니다 그러니까 위도와 경도를 말하는것이고
타입은 string 입니다
좋아요
이것과 query에 key도 패스 할것입니다
API key를 패스해야하는데
그러니 여기에 key라고 하고 string 타입의 apiKey를 추가합니다
이것을 어디서 가져올지도 추가해야 합니다
Retrofit의 어노테이션인 Get을 사용합니다
좋아요
그리고 여기엔 그 위치가 어딘지 얘기해야 합니다
maps/api/geocode/json는
여기 이 주소입니다
ㅤ
따라서 이 function이 가는 끝점이 어디인지 정보를 어디서 가지고 오는지
말합니다
우리가 방금 만든 인터페이스인 이 geocoding API 서비스는
URL의 일부를 만들어줍니다 그것은 여기 이것에 추가로 위도와 경도 그리고
Key가 있습니다
여기 latlng과 key가 보이시죠
이 두가지가 이 웹사이트에 패스해야 하는 것 입니다
여기에 제한을 잠시
꺼두겠습니다
이제 제한이 없으니 응답을 다시 볼 수 있습니다
여기있습니다
이런 응답이 나왔습니다
여기
Json코드가 우리가 원하는것 입니다
이를 얻기 위해선 이 URL과
이 부분이 필요하고
그리고 물음표 뒤에
말하자면 매개변수 뒤에 latlng과 key를 패스하는 것 입니다
Latlng과 key는 이 파일에는 없지만
여기 이 파일에는 있습니다 지금 했던것과 같습ㄴ디ㅏ
URL이 있고 latlng과 key가 있습니다
따라서 이 suspend function을 호출할 때마다 latlng을 string으로 패스하고
또 key를 string으로 패스해야 합니다
그러면 이 URL 일부를 만들어 주는것 입니다
그리고 이 함수를 호출하거나 사용하면 이 코드 전체, 혹은 이 Json파일 같은
Geocoding 응답이 반환됩니다
이로서 이제 됐습니다
이쯤에서 끊고 다음 시간에서 뵙겠습니다