我正在使用userdata向我的google地图标记添加自定义数据。我正在通过创建的类设置marker.userdata。因为我有很多标记,所以我将字典变量分配给类,然后将该信息分配给userdata。
我的问题是,一旦我点击了标记并在标签中显示了我的用户数据,用户就可以更改我希望设置该标签的文本字段。如何更新/刷新/重置特定于该点击标记的用户数据值?
设置类

    class markerUserData{
var nameUserData: String
var tags: String

init(Name: String, Tags: String) {
    self.nameUserData = Name
    self.tags = Tags
}

创建markers.userdata
    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
}

最佳答案

我的建议是阅读Places API for IOS的官方Google文档,Google place s API for IOS提供了关于地点的信息,包括地点的名称和地址。
场所ID是唯一标识场所的文本标识符。在Google Places API for iOS中,您可以从GMSPlace对象检索一个位置的ID。您可以存储place ID,然后使用它再次检索GMSPlace对象。
要按ID获取place,请调用GMSPlacesClient lookUpPlaceID:callback:,传递place ID和回调方法。
API调用指定的回调方法,传入GMSPlace对象。如果找不到位置,则place对象为nil。

let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

GMSPlacesClient.shared().lookUpPlaceID(placeID, callback: { (place: GMSPlace?, error: NSError?) -> Void in
  if let error = error {
    print("lookup place id query error: \(error.localizedDescription)")
    return
  }

  if let place = place {
    print("Place name \(place.name)")
    print("Place address \(place.formattedAddress)")
    print("Place placeID \(place.placeID)")
    print("Place attributions \(place.attributions)")
  } else {
    print("No place details for \(placeID)")
  }
})

关于ios - 更新给定键的特定轻击的marker.userdata值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40850061/

10-11 19:57
查看更多