메인 뷰의 오늘 날씨 구성을 마무리하고
주간 날씨도 만들어주기 위해 기상청 중기예보를 보았습니다!
제 생각에는 테이블뷰를 이용해서
1. 일주일간의 날짜
2. 기상 상태를 아이콘으로
3. 비가 온다면 강수확률을 아이콘 밑에
4. 최저 기온
5. 최대 기온
6. 최저, 최대 기온을 그래프로 표현
하려고 했습니다!
당연히 주간 데이터가 같이 있겠지~ 하고 문서를 찾아봤는데
중기육상예보조회에서는 주간 기상 상태를,
중기기온조회에서는 주간 최저, 최고 기온을
각각 따로 제공해주고 있어서
하나의 테이블뷰에 두 개의 API를 연동해야 했습니다..!
역시 쉬운일이 없쥬..
그리고 하나 더 해야할 일이 생겼습니다!
오늘날씨 같은 경우에는 CLLocation으로 현재 유저의 좌표를 가져온 뒤,
기상청 자체 기준에 따라 x,y축으로 위치를 변환하고
그 x, y축을 API로 호출했다면
주간날씨는 좌표가 아닌 예보구역 코드를 통해 API를 요청해야 했습니다.
(하나로 통일해주시면 감사할것 같아요 기상청!!)
그래서 예보구역 코드를 살펴보니
이런 식으로 행정구역에 따라 예보구역코드가 나누어져 있었습니다.
나머지는 기존의 CLGeocoder - CLPlacemark로 연동이 되었는데
강원도가 영서와 영동으로 또 나누어져 있었습니다
그냥 같은 강원도지 뭐.. 라고 타협하면서 그냥 강원도로 통합시킬까라는 나쁜 생각을 잠시 했었는데...!
고등학교 시절 배운 한국지리가 불현듯 머리를 스쳐지나갔습니다.
태백산맥 때문에 강원도 영동과 영서의 날씨가 완전히 다르다..??정도로 기억을 스쳐지나가
강원도도 영동과 영서로 분기처리 해줘야겠다고 마음먹었습니다!
그래서 강원도 영동과 영서를 찾아보고
배열을 만들어 두었습니다!
그리고 CLPlacemark를 다시 살펴보았는데요,
https://developer.apple.com/documentation/corelocation/clplacemark
저같은 경우에는 서울에 살고 있는데
placemarks의
locality도 서울특별시,
administrativeArea도 서울특별시로 나와서 무엇을 기준으로 분기처리를 해야할 지 조금 헷갈리고 있었습니다!
그래서 다른 지역의 주소를 넣어보고 싶었는데
당장 다른지역으로 떠나서 확인해보기는 힘들고 해서
CLGeocoder를 다시 살펴보았는데요,
https://developer.apple.com/documentation/corelocation/clgeocoder
역시 애플!
라는 함수가 있었습니다.
주소를 넣으면 확인이 가능할 것 같았습니다!
그래서 테스트를 위해 플레이그라운드를 켜서 함수를 만들었습니다.
이렇게 주소를 넣으면 Locality와 Sublocality, Administrative Area를 한 눈에 확인할 수 있었습니다.
이제 이 정보를 바탕으로 시,도는 Administravive Area로,
시,군,구는 Locality로 하면 될 것 같은데
서울의 Locality는 중구가 나와야 될 것 같은데 서울특별시가 나오네요..? 예전에 행정학과에서 배운걸 이렇게 써먹을 줄이야..
위의 한국지리도 그렇고 역시 뭐든 배워두면 유용하게 써먹는거 같아요!ㅋㅋㅋ
그래서 강원도는 Locality를 기준으로 분기처리, 나머지는 administrativaArea를 기준으로 분기처리하면 될 것 같습니다!
기존의 앱에 이렇게 만들어서 테스트를 해보았는데요,
주소에 대한민국 강원도 동해시~(지도앱에서 영동부분을 랜덤으로 하나 찍었습니다)
를 넣고,
분기처리 코드를 작성한 뒤 앱을 빌드했습니다!
그렇게 하니
이렇게 강원도 영동인
11D20000으로 분기처리가 되서 나오는 결과를 확인할 수 있었습니다!
앱에 지도가 나오는 것은 아니지만 날씨앱을 만들다보니
CoreLocation에 대해 깊게 알아갈 수 있어서 더 재미있고 뿌듯한 것 같습니다.
앞으로도 출시일까지 화이팅!!