Appleのマップ(MKMapKit)でアノテーションを間引いて表示する。

私が開発しているiPhone・iPadアプリStreetWatcherでは、Googleマップの利用料金の変更以来、Appleマップを利用しています。その際、MKMapKitを利用して開発をしているのですが、アノテーションを間引いて表示したいケースが出てきました。

以下のような具合で、アノテーションとして表示している経路上にある白丸を表示し過ぎて、経路が隠れてしまってます。。(余談ですが、白丸を押すとストリートビューが表示され、経路の目印を確認できるようになっています。)
これではせっかくの経路が見づらく、使いづらい状況です(^ ^;)


そこで便利なのが、MKAnnotationViewクラスのdisplayPriorityプロパティです。
displayPriorityプロパティは、名前の通り、アノテーション表示の優先度を決めるプロパティです。displayPriorityプロパティには、以下の値を設定できます。
  • MKFeatureDisplayPriorityRequired (アノテーションを常に表示)
  • MKFeatureDisplayPriorityDefaultHigh (アノテーションを優先度高で表示)
  • MKFeatureDisplayPriorityDefaultLow (アノテーションを優先度低で表示)
今回は、以下の通り、displayPriorityプロパティに MKFeatureDisplayPriorityDefaultLow を指定し、改善を図りました。ちなみに、displayPriorityプロパティはiOS11よりも前のiOSでは使用できないのでご注意ください。

if(@available(iOS 11.0, *)) {
    annotationView.displayPriority = MKFeatureDisplayPriorityDefaultLow;
}

対応後は、以下のように経路も見え、すっきりしています!
もし同じようなことで困った場合は、ぜひご活用ください(^o^)



コメント

お問い合わせ

名前

メール *

メッセージ *