Skip to content
S004_강현준 edited this page Nov 29, 2021 · 2 revisions

MapKit

왜 사용했나요?

  • Map과 관련된 API로는 카카오맵, 구글맵 등의 대안이 존재했습니다.
  • 그 중에서 애플의 MapKit을 사용한 이유는 다음과 같습니다.
    • 자체적인 라이브러리로, 높은 신뢰성과 주기적인 업데이트를 제공합니다.
    • 횟수 제한이나 요금을 지불해야하는 다른 API와는 달리 무료입니다.


MapKit

어떻게 적용했나요?

  • 사용자가 게시물을 추가하거나 관광명소를 추가하면 이를 Map 상에서 한번에 볼 수 있도록 Map이 보여지는 영역을 바꾸도록 구현할 필요가 있었습니다. 이 때 MKMapRect를 활용하여 union을 통해 보여주고 싶은 영역을 간단히 계산할 수 있었습니다.
  • 사용자가 게시물이나 관광명소를 추가하면 이를 지도상에 핀 형태로 표시해줄 수 있습니다. 이를 구현하기 위해서 MKAnnotationView를 활용하였습니다. 또한 핀을 클릭했을 때 게시물과 관광명소의 이미지를 같이 보여주기 위해 detailCalloutAccessoryView를 커스텀하여 URL을 통해 이미지를 불러와 원하는 형태로 보여주도록 만들었습니다.
  • 게시물과 관광명소에 대한 MKAnnotation을 다른 class로 구현하여 MKAnnotation의 타입에 따라 맵에 2가지 종류의 핀이 등장할 수 있도록 구현하였습니다.
  • 사용자가 트래킹 기능을 키면 이동한 경로를 화면에 보여주기 위해 MKOverlay를 활용하였습니다. 선분 형태로 트래킹 경로를 그려주기 위해 MKPolyline을 활용해 Overlay를 그려주었습니다.
  • 게시물에 위치정보를 지정해주기 위해서 MKLocalSearch를 활용하였습니다. 이 때 자동완성 기능을 추가하여 사용자가 텍스트를 입력하면 연관성이 높은 지역들을 테이블뷰 형태로 보여주고 테이블 뷰에서 유저가 원하는 지역을 선택하면 해당 지역의 위도 & 경도 & Title 값을 얻어와 게시물 데이터에 추가해주는 방식으로 구현하였습니다.

수인분당선

규칙

프로젝트

기술 특장점

데일리 스크럼

1주차
2주차
3주차
4주차
5주차
6주차

회고

회의록

1주차
2주차
3주차
4주차
5주차
6주차

멘토링

기술 공유

트러블슈팅

더보기

데모 영상

Clone this wiki locally