【Swift】MapView で Map を表示するだけの記事
本日もタイトルの通り短い内容になりますが、初学者向けに Swift
の MapView
で Map
を表示する方法を紹介したいと思います🏃🏻♂️
それではやっていく
今回は下記のように、特定の地点で固定表示できるようにするサンプルを実装してみます。
MKMapView
の実装は下記のようになります。CLLocationCoordinate2DMake
で latitude
(緯度) と longitude
(経度) を元に座標を取得し、マップのズームレベルを表す MKCoordinateSpan
と共に MKCoordinateRegion
を初期化します。あとは、MKMapView
のインスタンスメソッド setRegion()
でマップの表示領域を変更させることができます。MKCoordinateSpan
はドキュメントに記載の通り、0
に近づく程ズームレベルが高くなり、1
に近づく程ズームレベルが低くなります。
let coordinate = CLLocationCoordinate2DMake(latitude, longitude) let span = MKCoordinateSpan(latitudeDelta: 0.065, longitudeDelta: 0.065) let region = MKCoordinateRegion(center: coordinate, span: span) mapView.setRegion(region, animated: false) mapView.isZoomEnabled = false mapView.isScrollEnabled = false mapView.isUserInteractionEnabled = false
たまに、下記のように setCenter
と setRegion
の両方のメソッドを使ってるサンプルを目にしますが、基本的には setRegion
で完結するので setCenter
の記述は必要ありません。setCenter
はズームレベルを気にせずに、マップの中心を座標に移動する時に使用します。
let coordinate = CLLocationCoordinate2DMake(field.point.latitude, field.point.longitude) mapView.setCenter(coordinate, animated: false) let span = MKCoordinateSpan(latitudeDelta: 0.065, longitudeDelta: 0.065) let region = MKCoordinateRegion(center: coordinate, span: span) mapView.setRegion(region, animated: false) mapView.isZoomEnabled = false mapView.isScrollEnabled = false mapView.isUserInteractionEnabled = false
参考
- https://developer.apple.com/documentation/mapkit/mkmapview/1452768-setregion
- https://developer.apple.com/documentation/corelocation/1423838-cllocationcoordinate2dmake?language=objc