iOS 11에서 대폭 강화된 MapKit

7918 단어 WWDCiOS
※ 본 기사는 공개된 정보를 토대로 작성되었습니다.보도의 이미지는 WWDC의 슬라이드를 참조합니다.
WWDC가 2017년 발표한 iOS 11에서도 맵킷이 많이 강화됐다.나는 다음에 그 내용을 총결산하겠다.

Map Type에서mutedStandard 추가


MKMapType이 추가mutedStandard되었습니다.

표준 지도 응용에서 말하는 교통수단처럼 보인다.

나침반, 색표시줄 등을 제어할 수 있다


세 단계 새로 추가되었습니다.
  • MKUserTrackingButton
  • MKCompassButton
  • MKScaleView

  • MKUserTrackingButton


    추적 모드(현재 값 추적)의 버튼으로 전환합니다.
    사용 예:
    let button = MKUserTrackingButton(mapView: mapView)
    self.view.addSubview(button)
    
    iOS 5MKUserTrackingBarButtonItem는 UIBARButtonItem 기반이기 때문에 도구 모음에만 배치할 수 있습니다.다른 한편MKUserTrackingButton은 UIView 기반의 것으로 지도에서 좋아하는 곳에 설치할 수 있다.
  • 참조: [MapKit] 사용자 추적 모드에서 사용자의 현재 값을 추적합니다.
  • MKCompassButton


    나침반 버튼.지금까지 컴퍼스는 오른쪽으로 고정됐지만 iOS 11에서 원하는 곳에 설치할 수 있다.
    사용 예:
    let compass = MKCompassButton(mapView: mapView)
    compass.compassVisibility = .visible
    navigationItem.rightBarButtonItem = UIBarButtonItem(customView: compass)
    mapView.showsCompass = false
    
    compassVisibility 속성은 다음 세 가지 값을 설정할 수 있습니다.
  • .Hidden - 항상 숨기기
  • .뷰 - 항상 표시
  • .adaptive - 지도의 방향을 이동할 때만(북쪽은 위의 상태가 아님) 표시됩니다.클릭 후 원래 상태로 돌아가며 나침반 숨기기
  • MKScaleView


    맵 크기 조정 표시줄 보이기
    사용 예:
    let scale = MKScaleView(mapView: mapView)
    scale.legendAlignment = .trailing
    view.addSubview(scale)
    
    legendAlignment 속성은 다음 두 값을 설정할 수 있습니다.
  • .Leading-0을 왼쪽으로 시작
  • .trailing-0을 오른쪽 기점으로
  • ※ 단, 아랍어는 좌우 상반

    Marker Annotation View의 등장

    MKMarkerAnnotationView 추가되었습니다.

    이전MKPinAnnotationView과 비교하면 상당히 크다.

    Title, Subtitle은 titleVisibility, subtitleVisibility에서 "필요할 때만 표시/숨기기/표시"를 설정할 수 있습니다.
    물론 색상도 지정할 수 있습니다.(iOS 11을 통해 named에서 지정할 수 있음)
    glyphText 속성에 문자를 설정하여 Annotation의 내용을 자유롭게 바꿀 수 있습니다.기본값(nil)을 지정하면 바인딩 아이콘이 됩니다.
    glyphImage를 사용하여 이미지를 설정할 수도 있습니다.

    WebAPI에서 POI 이미지를 가져오고 Annotation에서 동적 설정을 하면 간단해집니다.

    Annotation에서 우선순위를 설정할 수 있도록


    다음 그림에서 보듯이 Annotation이 밀집되어 있어 잘 보이지 않을 수 있습니다.

    이 경우 우선순위를 설정하여 표시할 Annotation 우선순위를 설정할 수 있습니다.
    (녹색 Annotation 우선순위를 High로 설정한 경우)
    displayPriority를 통해 우선 순위를 설정할 수 있습니다.
  • required - 표시해야 함
  • defaultHigh - 우선 순위가 높음
  • defaultLow-낮은 우선 순위
  • Annotation을 정리할 수 있습니다.


    아래의 예와 같이 지도의 축척에 따라 Annotation을 정리할 수 있습니다!(개인적으로 가장 기쁜 업데이트)
    clusteringIdentifier 단위는 하나로 요약된다.
    모든 clusteringIdentifier에서 설정identifier의 예:

    이 밖에 충돌 판정(원형 또는 직사각형)도 collisionMode을 통해 설정할 수 있다.
    .circle:

    .rectangle

    감상


    iOS 10에서 별다른 움직임이 없었던 맵킷은 iOS 11에서 반가운 업데이트가 많았다.
    iOS 11이 얼마나 빠른 속도로 보급되는지는 알 수 없지만 반드시 효과적으로 사용해야 한다.

    링크

  • What's New in MapKit - WWDC 2017 - Videos - Apple Developer
  • iOS 9로 강화된 MapKit-Qiita
  • 좋은 웹페이지 즐겨찾기