Skip to content

W2 Weekly Meeting

kyungpyoda edited this page Nov 23, 2020 · 2 revisions

Week 2 회의

이번 주 : 위도, 경도 받아와서 음식점 fetch한 다음 클러스터링 마커 띄우기

초기

  1. 초기 줌 레벨에 따른 화면에 보이는 위도 경도 계산
  2. 거기에 맞는 데이터를 fetch
  3. clustering 과정
  4. map에 mark 띄우기

사용자가 줌 인아웃:

  1. 초기 줌 레벨에 따른 화면에 보이는 위도 경도 계산
  2. 거기에 맞는 데이터를 fetch
  3. clustering 과정
  4. map에 mark 띄우기
  5. 반복

좀 더 고려해 볼 만한 것

  • 1단계: 현재 보여지는 지도의 화면이 변할때 (줌, 이동), 델리게이트 이벤트수신 (begin, end에서 fetch)

  • 초기에 음식점을 다 보여줘야하나.. 초기 20개 ? 30개? 50개

  • filtering 나중에 필요하다면 UX를 위해

  • 2단계: cache? fetch 할때 갖고 있는 데이터는 안가져오게 ? , core data request 만들기

  • 3단계: 클러스터링

    • 줌 인 할때: 가지고 있는 데이터중 안쓰는 데이터를 버림
    • 줌 아웃할때: 새로운 데이터 가져옴?

대략적인... 구조

protocol Markable {
    ...
}
struct Pin: Markable {
    ...
}
struct Cluster: Markable {
    ...
}

func clustering(places: [Place], level: Double) -> [Markable] {
    ...
}

let places = getPlace() // CoreData에서 가져옴
let marks = clustering(places: places, level: zoomLevel)
for mark in marks {
    let view = mark is Pin ? PinView() : ClusterView()
}
Clone this wiki locally