このエントリーをはてなブックマークに追加

2017年1月13日金曜日

Swift3でMapKitの複数のピンを一括で表示・削除する方法

こんにちは、onukiです。

今回はMapKitでピンを一括で表示・削除する方法について、
例えばカテゴリーごとにピンを表示したい、
カテゴリー切り替え時にピンをごっそり入れ替えたいみたいな使い方がしたかったのですが
以外と調べても出てこなかったので備忘録がてら書いておきます。

やり方

大体、ピンの表示方法を調べると以下のような書き方が出てきます。
let annotation = MKPointAnnotation()
annotation.coordinate = CLLocationCoordinate2DMake(37.331652997806785, -122.03072304117417)
self.mapView.addAnnotation(annotation)
これだと入れ替えが面倒なので今回は以下のようにします。
まず、グローバル変数にMKAnnotationの配列を用意します。
var annotationArray: [MKAnnotation] = []
マップにMKAnnotationを追加します。
for coordinate in coordinateArray! {
    let annotation = MKPointAnnotation()
    annotation.coordinate = CLLocationCoordinate2DMake(coordinate.latitude, coordinate.longitude)
    annotationArray.append(annotation)
}
self.mapView.addAnnotations(annotationArray)
設定したピンを削除したい時は、こうすると先ほど設定したピンを全削除できます。
self.mapView.removeAnnotations(annotationArray)

これで複数のMKAnnotation配列を用意してやり、
用途に応じてremoveとaddをしてやれば
複数のピンの入れ替えが出来るようになります。

0 件のコメント:

コメントを投稿