2016-11-17 12 views

答えて

0

他の人にとって参考になった場合は、これを理解しました。これを実行する最善の方法であるかどうかは分かりませんが、機能します。

1)私はオーバーレイが

をマッピングするために追加される前に、私は、オーバーレイ上のデータを渡す)

extension GMSGroundOverlay { 
 
    private struct customData { 
 
     static var userData:Any? = nil 
 
    } 
 
    var userData:Any? { 
 
     get { 
 
      return customData.userData 
 
     } 
 
     set { 
 
      customData.userData = newValue 
 
     } 
 
    } 
 
}

2.マップのメイン.swiftファイルにGMSGroundOverlayクラスを拡張

let overlayData:[String:Any] = ["id":id,"html":html,"picture":picture,"photos":photos] 
 
overlay.userData = overlayData

オーバーレイがクリックされたときに

3)私は、データを受信

func mapView(_ mapView: GMSMapView, didTapOverlay overlay: GMSGroundOverlay) -> Bool { 
 
     print("# You tapped overlay with data: ") 
 
     for (key,value) in overlay.userData as! [String:Any] { 
 
      print("# \(key) = \(value)") 
 
     } 
 
     return false 
 
    }

関連する問題