MapKitとCore Locationを使用してアプリにマップを追加する方法–iOS Swift Guide

ステップ4:Locate Meボタン:マップ上の場所を表示

最初のステップでは、ユーザーがlocate-meボタ

location managerは、CLLocationオブジェクト内の現在の場所をlocationManager.locationで提供します。 このオブジェクトには、緯度と経度の座標値を含むさまざまな情報が含まれています。

マップに注釈を追加する

与えられた座標でマップに注釈を追加する新しい関数を作成しましょう。

次の関数は、新しいMKPointAnnotationオブジェクトを作成し、以前のすべての注釈を削除した後にマップに追加します。 また、マップをズームしてスクロールして、新しく追加された注釈を画面の中央に配置します。

マップに注釈を追加する

この関数ができたので、button IBAction関数で表示したい現在の位置情報を使用して呼び出すことができます。 現時点では、この情報がまだないため、タイトルとしてnilを配置します。

updateLocationOnMap(to: locationManager.location, with: nil)

注釈にタイトルとして場所の完全なアドレスを追加

さて、私たちは、注釈にタイトルとして場所の完全なアドレスを追加します。 CoreLocationはCLGeocoderで簡単に行うことができます。

CLLocationへの拡張機能を作成し、次の関数を追加します:

場所

の目印を取得すると、ジオコードの場所が逆になり、完全な郵便住所を抽出するために必要なすべての情報を含むCLPlacemarkが表示されます。

住所情報は、目印オブジェクトに以下のように格納されます。 完全なアドレスの文字列値を取得するには、必要なコンポーネントを連結する必要があります。 以下の表のApple HQアドレスの例を次に示します:

CLPlacemarkプロパティに対応する値

私たちに直接完全なアドレスを与える私たちのCLLocation拡張機能に関数を追加してみましょう。 便宜上、CLPlacemarkの拡張子に新しいプロパティを追加することができます。 この例では、このプロパティはstringValueと呼ばれます。

場所から完全な文字列アドレスを取得する

次に、新しいlookUpLocationName関数を使用してupdateLocationOnMapへの呼び出しを更新しましょう。

ボタンから地図上に現在の場所を表示

をタップしてアプリをビルドして実行します:locate-meボタンを押すと、現在の場所が地図上に追加され、現在の場所

文字列アドレスからマップに目印を追加する

ステップ3でlocate-meボタンについて書いた関数のほとんども、この部分で使用されます。 新しい関数updatePlaceMark(to address: String)を追加し、TextField検証時に呼び出すだけです。

この関数では、まずユーザーが入力した文字列値から目印を取得し、次に最初の目印でマップを更新します。

文字列address

に基づいて地図上の場所を表示するgeocodeAddressStringは場所検索機能ではないため、有効な住所と識別可能な場所、都市、州、または国のいずれかが必要で

ステップ6: マップ上のリアルタイムの位置を表示する

リアルタイムの位置を表示するには、すでに作成したCLLocationManagerDelegate拡張機能に次のデリゲート関数を追加します。

Location Managerは、最初に定義されたポリシーに従って、位置情報の更新時にこの関数を自動的に呼び出します。

マップ上にリアルタイムの場所を表示する

ステップ7:ビルド&実行

アプリをビルドして実行する: あなたは今、あなたの現在の場所を表示するマップアプリを持っています,リアルタイムで完全なアドレスを表示します,locate-meボタンタップであなたを



+