23

iOSの地図をタッチしてアノテーションを付けて、それぞれの場所の詳細な住所(Placemark)を取得したいです。Swiftでこれを達成するにはどうすればよいですか?

前もって感謝します。

4

7 に答える 7

27

マップ上のタッチに反応するには、mapView のタップ認識を設定する必要があります

viewDidLoad:

let gestureRecognizer = UITapGestureRecognizer(
                              target: self, action:#selector(handleTap))
    gestureRecognizer.delegate = self
    mapView.addGestureRecognizer(gestureRecognizer)

タップを処理し、タップされた位置座標を取得します。

func handleTap(gestureRecognizer: UITapGestureRecognizer) {
    
    let location = gestureRecognizer.location(in: mapView)
    let coordinate = mapView.convert(location, toCoordinateFrom: mapView)
    
    // Add annotation:
    let annotation = MKPointAnnotation()
    annotation.coordinate = coordinate
    mapView.addAnnotation(annotation)
}

これで、MKMapView デリゲート関数を実装して注釈を描画するだけで済みます。簡単なグーグル検索で残りの部分が得られるはずです。

于 2015-12-23T08:45:33.897 に答える