私はuserdataを使用してGoogleマップマーカーにカスタムデータを追加しています。私は、作成したクラスを通して、marker.userdataを設定しています。私は多くのマーカーを持っているので、クラスに辞書変数を割り当てて、その情報をuserdataに割り当てています。特定のタップされたmarker.userdata値を特定のキーに更新します。
私の質問は、マーカーをタップしてラベルにユーザーデータを表示すると、ユーザーはそのラベルを設定するテキストフィールドを変更できます。そのタップしたマーカーに特定のユーザーデータ値を更新/更新/リセットするにはどうすればよいですか?
class markerUserData{
var nameUserData: String
var tags: String
init(Name: String, Tags: String) {
self.nameUserData = Name
self.tags = Tags
}
は、私が提案することができますどのような
for p in STOREDPlaces {
let name = p["StoredPlaceName"] as? String
let tags = p["Tags"] as? Strin
markers.map = self.vwGMap
self.vwGMap.setNeedsDisplay()
let storedPlaceUserData = markerUserData(Name: name!, Tags: tags!)
markers.userData = storedPlaceUserData
}
タップ機能
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
detailsName.text = (marker.userData as! markerUserData).nameUserData
tagsMarker = (marker.userData as! markerUserData).tags
}
@IBAction func editingTextField(_ sender: Any) {
//So in here i want something which will update (marker.userData as! markerUserData).tags and set it to whatever has been edited
}
お世話になりましたが、これらのドキュメントを何度も読んでいます。私が混乱しているのは、上記の例ではplaceIDがわかっています(「ChIJV4k8_9UodterU5KXbkYpSYs」)。一方、autocompleteメソッドではplaceID変数が常に変化しているので、varID = GMSPlace.placeIDまたはhow ?または、私はフェッチャーでオートコンプリートを行う必要がありましたか? –