web-dev-qa-db-ja.com

MapKitを使用してピンをマップに追加する-Swift 3.0

MapKitの使用方法を理解しようとする新しいコーダー。目標は、ユーザーが自分のアドレスを使用してピンを追加できるマップを作成することです。ただし、現在の手順では、ピンをマップに追加する方法をまったく理解できません。

地図にピンを追加するにはどうすればよいですか?これまで、注釈の使用方法を見つけるのに苦労してきました。

それが私が助け/指示を望んでいることです。ありがとう!

import UIKit
import MapKit
import CoreLocation

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate

{
    @IBOutlet weak var bigMap: MKMapView!

    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.locationManager.delegate = self
        self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
        self.locationManager.requestWhenInUseAuthorization()
        self.locationManager.startUpdatingLocation()
        self.bigMap.showsUserLocation = true

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        let location = locations.last
        let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
        let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.02, longitudeDelta: 0.02))

        self.bigMap.setRegion(region, animated: true)
        self.locationManager.stopUpdatingLocation()

    }

    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
        print("Errors " + error.localizedDescription)
    }
}
23
roguephillips

MapKitではannotationsと呼ばれ、次のようにインスタンス化します。

let annotation = MKPointAnnotation()

次に、viewDidLoad()メソッドで座標を設定し、次のようにマップに追加します。

annotation.coordinate = CLLocationCoordinate2D(latitude: 11.12, longitude: 12.11)
mapView.addAnnotation(annotation)

数字はあなたの座標です

58
Mislav Javor

これを行う方法を学んだ方法は次のとおりです。

  1. ViewDidLoad()と同じ関数に、次のコード行を配置します。

     let annotation = MKPointAnnotation()
     annotation.title = "Your text here"
     //You can also add a subtitle that displays under the annotation such as
     annotation.subtitle = "One day I'll go here..."
     annotation.coordinate = center 
    

これは、他のすべてが失敗した場合に座標がある場所を見ることができる唯一の場所です。座標を追加するだけです(Googleで検索します
座標の作成方法を知っておく必要があります)、それを
"annotation.coordinate"変数

map.addAnnotation(annotation)
  1. ダッシット!
14
danner.tech