マップからマーカーを削除するには、nil
にmap
を設定します。あなたはUIAlertAction
を初期化するとき
marker.map = nil
をあなたはhandler
閉鎖に上記のコードを置くことができます。
let cancelAction = UIAlertAction(title: "Remove",
style: .default) {
_ in marker.map = nil
}
へマーカーを保存するのは少し複雑です。一度に1つのマーカーのみを保存する場合は、UserDefaults
を使用できます。
let latitude = UserDefaults.standard.double(forKey: "lat")
let longitude = UserDefaults.standard.double(forKey: "lon")
また、新しいGMSMarker
を構築するために値を使用します。
if let latitude = marker.latitude?.doubleValue, let longitude = marker.longitude?.doubleValue {
UserDefaults.standard.set(latitude, forKey: "lat")
UserDefaults.standard.set(longitude, forKey: "lon")
}
は、最初に保存された緯度と経度を取得し、
viewDidLoad
に地図上に保存されたマーカーを表示するには。
マップに複数のマーカーを保存する場合は、コアデータを使用する必要があります。これはUserDefaults
よりやや難解です。私は最初にいくつかのチュートリアルを読むことをお勧めします。そして、私が行った同様のプロジェクトのコードを読むことができます - LongLatMap。
パーフェクト。コアデータを掘り下げる必要があるようで、ユーザーが複数のマーカーを保存できるようにするためにはどのように使用するかのように見えます。正しい方向に私を指してくれてありがとう。 –