はじめに
前回は指定した緯度経度を中心に地図を表示するところまでを実装しましたが
今回は表示した地図の指定した緯度経度にピンを立ててみます。
地図の表示方法が知りたいという方は前回の記事をご覧ください。
前回の記事はこちら(5分ほどで地図表示まではできると思います。)
環境
Xcode 9.3.1
Swift 4.1
実装
まずはピンを生成
let annotation = MKPointAnnotation()
表示する緯度と経度をCLLocationCoordinate2DMakeメソッドで指定して
annotation.coordinate = CLLocationCoordinate2DMake(35.681946,139.7637231
次にタイトルとサブタイトルを設定。
これはなくても構いません。
annotation.title = "タリーズコーヒー"
annotation.subtitle = "東京都千代田区丸の内1丁目2−1"
最後にmapViewに追加して完成!!
mapview.addAnnotation(annotation)
複数ピンを立てたい場合は上記を複数書けばOKです。
全体のソースコードはこんな感じ
import UIKit
import MapKit
class ViewController2: UIViewController {
@IBOutlet weak var mapview: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
// 緯度経度を指定
let initialCoordinate = CLLocationCoordinate2DMake(35.6811716,139.7648576)
// 表示する範囲を指定
let span = MKCoordinateSpanMake(0.003, 0.003)
// 領域を作成
let region = MKCoordinateRegionMake(initialCoordinate, span)
// 領域をmapViewに設定
mapview.setRegion(region, animated:true)
// ピンを複数立てる
addAnnotation(35.6815014,139.7636097, "タリーズコーヒー", "東京都千代田区丸の内1丁目2−1")
addAnnotation(35.6816773,139.7634722, "カフェ レクセル", "東京都千代田区丸の内2丁目4−1")
addAnnotation(35.6800494,139.7609786, "カフェ・ド・クリエ 丸の内MYPLAZA店", "東京都千代田区丸の内2丁目1−1")
}
func addAnnotation( _latitude: CLLocationDegrees,_ longitude: CLLocationDegrees, _title:String,_ subtitle:String) {
// ピンの生成
let annotation = MKPointAnnotation()
// 緯度経度を指定
annotation.coordinate = CLLocationCoordinate2DMake(latitude, longitude)
// タイトル、サブタイトルを設定
annotation.title = title
annotation.subtitle = subtitle
// mapViewに追加
mapview.addAnnotation(annotation)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}